Skip to content

Add benchmark ci + optimize the validate records fk flow#925

Open
huydo862003 wants to merge 17 commits into
masterfrom
perf/add-benchmark
Open

Add benchmark ci + optimize the validate records fk flow#925
huydo862003 wants to merge 17 commits into
masterfrom
perf/add-benchmark

Conversation

@huydo862003

@huydo862003 huydo862003 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add benchmark ci.
  • Add script to run benchmark and profile for parser.
  • Optimize the validate records fk flow, which take 50% of the time doing nothing on large diagrams

Issue

(issue link here)

Lasting Changes (Technical)

(please list down: code changes/things that have wide-effect; new libraries/functions added that can be used by others; examples below)

  • (Added class EmailValidator to validate email address' validity)
  • (Added Tenant#is_trial? check)

Checklist

Please check directly on the box once each of these are done

  • Documentation (if necessary)
  • Lint Checks Passed
  • Unit Tests Passed
  • Coverage Tests Passed
  • Integration Tests Passed
  • Code Review

@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown

Coverage Report

Commit: ff13cda

Overall Coverage

Metric Coverage
Lines ✅ 84.93% (8602/10128)
Statements ✅ 82.26% (9301/11307)
Functions ✅ 87.45% (1797/2055)
Branches ⚠️ 73.42% (5558/7570)

Package Coverage

Package Lines Statements Functions Branches
dbml-cli ✅ 100.00% ✅ 100.00% ✅ 100.00% ✅ 100.00%
dbml-connector ⚠️ 64.62% ⚠️ 64.36% ⚠️ 59.53% ⚠️ 59.09%
dbml-core N/A N/A N/A N/A
dbml-parse ✅ 87.02% ✅ 84.01% ✅ 90.00% ⚠️ 74.50%

⚠️ Coverage Warnings

The following packages have coverage below 80%:

  • dbml-connector: 64.62% line coverage

Files with Coverage Below 80%

dbml-connector

9 file(s) below 80% coverage
File Lines Statements Functions Branches
src/connectors/bigquery/index.ts 0.00% 0.00% 0.00% 0.00%
src/utils/credential-loader.ts 0.00% 0.00% 0.00% 0.00%
src/utils/helpers.ts 0.00% 0.00% 0.00% 0.00%
src/connectors/snowflake/index.ts 10.56% 10.31% 0.00% 0.00%
src/utils/parseSchema.ts 46.15% 42.85% 28.57% 27.27%
src/connectors/connector.ts 66.66% 66.66% 100.00% 57.14%
src/connectors/oracle/tables.ts 71.25% 67.39% 100.00% 56.96%
src/connectors/oracle/index.ts 80.00% 80.76% 100.00% 25.00%
src/connectors/oracle/utils.ts 85.71% 85.71% 100.00% 71.42%

dbml-parse

80 file(s) below 80% coverage
File Lines Statements Functions Branches
src/compiler/queries/container/scope.ts 0.00% 0.00% 0.00% 0.00%
src/services/diagnostics/provider.ts 0.00% 0.00% 0.00% 0.00%
src/compiler/queries/pipeline/interpret.ts 11.76% 13.51% 66.66% 41.66%
src/services/suggestions/crossFile.ts 19.35% 19.44% 33.33% 10.00%
src/core/local_modules/enum/index.ts 48.00% 46.29% 57.14% 52.63%
src/core/global_modules/project/interpret.ts 52.50% 46.66% 83.33% 23.07%
src/compiler/projectLayout/layout.ts 54.16% 53.84% 75.00% 52.63%
src/compiler/queries/legacy/parse.ts 61.53% 53.33% 66.66% 25.00%
src/core/local_modules/ref/index.ts 62.50% 61.76% 100.00% 57.14%
src/core/types/report.ts 62.50% 55.55% 75.00% 57.14%
src/core/types/symbol/symbols.ts 62.54% 54.57% 59.50% 44.28%
src/core/global_modules/records/utils/data/values.ts 63.30% 55.71% 72.72% 49.28%
src/core/local_modules/tableGroup/validate.ts 64.55% 64.44% 71.42% 58.00%
src/compiler/queries/legacy/token.ts 66.66% 66.66% 66.66% 100.00%
src/core/global_modules/enum/bind.ts 66.66% 68.75% 83.33% 50.00%
src/core/local_modules/program/index.ts 66.66% 69.23% 75.00% 62.50%
src/core/global_modules/note/bind.ts 69.23% 71.42% 83.33% 50.00%
src/core/local_modules/checks/index.ts 69.23% 75.00% 100.00% 64.28%
src/core/local_modules/custom/index.ts 70.58% 71.42% 80.00% 68.75%
src/core/parser/utils.ts 72.89% 73.21% 100.00% 80.31%
src/core/local_modules/project/index.ts 73.07% 73.07% 100.00% 68.18%
src/compiler/queries/utils.ts 73.10% 73.38% 90.90% 51.11%
src/core/local_modules/tablePartial/validate.ts 73.12% 71.83% 79.22% 57.67%
src/core/global_modules/project/bind.ts 73.33% 75.00% 100.00% 50.00%
src/core/local_modules/indexes/index.ts 73.68% 69.35% 63.63% 64.28%
src/core/local_modules/use/index.ts 73.91% 75.00% 75.00% 81.25%
src/core/local_modules/indexes/validate.ts 74.28% 74.66% 90.90% 56.00%
src/core/local_modules/note/index.ts 75.00% 75.86% 75.00% 72.72%
src/services/suggestions/utils/index.ts 75.00% 75.00% 100.00% 60.71%
src/core/local_modules/records/index.ts 75.60% 76.19% 100.00% 68.08%
src/core/local_modules/project/validate.ts 75.86% 75.86% 100.00% 56.25%
src/core/global_modules/indexes/bind.ts 76.31% 74.35% 90.90% 68.96%
src/core/global_modules/records/utils/data/sqlTypes.ts 76.59% 80.64% 82.35% 72.22%
src/core/global_modules/utils.ts 76.92% 73.80% 62.50% 62.50%
src/core/global_modules/tablePartial/interpret.ts 77.89% 70.64% 78.94% 53.73%
src/core/local_modules/note/validate.ts 78.00% 76.36% 83.33% 71.05%
src/core/types/filepath.ts 79.48% 78.57% 77.77% 70.37%
src/core/global_modules/program/utils.ts 80.00% 80.00% 100.00% 70.00%
src/core/global_modules/tableGroup/bind.ts 80.00% 80.00% 100.00% 57.14%
src/core/local_modules/records/validate.ts 80.28% 80.55% 93.75% 72.30%
src/core/global_modules/indexes/interpret.ts 81.39% 72.00% 100.00% 56.66%
src/core/local_modules/tablePartial/index.ts 81.48% 81.48% 100.00% 77.27%
src/core/local_modules/diagramView/validate.ts 81.57% 78.04% 84.21% 72.72%
src/core/local_modules/checks/validate.ts 81.63% 82.69% 93.75% 70.00%
__tests__/utils/compiler.ts 82.14% 80.10% 100.00% 58.97%
src/core/global_modules/records/bind.ts 82.92% 83.72% 93.75% 67.30%
src/compiler/queries/container/token.ts 83.33% 85.71% 100.00% 75.00%
src/core/parser/parser.ts 83.55% 83.78% 98.38% 75.21%
src/core/global_modules/ref/bind.ts 83.87% 83.87% 90.00% 75.00%
src/core/global_modules/records/utils/constraints/pk.ts 84.61% 81.42% 92.59% 56.52%
src/core/local_modules/table/validate.ts 84.92% 85.47% 90.24% 73.75%
src/core/local_modules/enum/validate.ts 85.48% 81.81% 81.25% 76.31%
__tests__/utils/mocks.ts 85.71% 86.20% 75.00% 100.00%
src/core/global_modules/use/index.ts 86.59% 83.20% 100.00% 78.22%
src/services/suggestions/utils/useMerger.ts 86.95% 81.13% 100.00% 46.34%
src/core/global_modules/tablePartial/bind.ts 87.03% 87.27% 100.00% 71.42%
src/core/global_modules/tableGroup/interpret.ts 88.37% 88.37% 100.00% 77.27%
src/services/suggestions/recordRowSnippet.ts 88.46% 87.09% 100.00% 73.80%
src/compiler/queries/nodeAtPosition.ts 88.88% 90.00% 100.00% 75.00%
src/core/global_modules/diagramView/index.ts 89.16% 86.23% 83.33% 78.18%
src/services/suggestions/provider.ts 90.00% 85.83% 98.41% 78.02%
src/core/global_modules/table/interpret.ts 90.69% 84.72% 95.45% 67.70%
src/compiler/index.ts 90.76% 90.83% 75.00% 78.84%
src/core/global_modules/records/index.ts 90.90% 87.15% 100.00% 79.16%
src/core/types/symbol/metadata.ts 92.10% 77.58% 97.61% 62.72%
src/core/global_modules/schema/index.ts 92.26% 82.46% 91.66% 70.07%
src/core/utils/interpret.ts 93.33% 90.00% 100.00% 73.23%
src/core/global_modules/diagramView/interpret.ts 94.59% 90.40% 92.85% 75.75%
src/services/suggestions/use.ts 94.68% 87.61% 100.00% 77.45%
src/core/global_modules/note/interpret.ts 95.65% 95.65% 100.00% 75.00%
src/core/global_modules/records/interpret.ts 95.97% 92.59% 100.00% 79.54%
__tests__/examples/interpreter/multifile/utils.ts 96.00% 89.65% 100.00% 62.50%
src/compiler/queries/canonicalName.ts 96.96% 92.10% 100.00% 76.66%
src/core/global_modules/program/interpret.ts 97.07% 91.45% 100.00% 70.31%
src/core/types/errors.ts 98.48% 98.48% 66.66% 100.00%
src/compiler/queries/transform/renameTable.ts 99.05% 90.47% 100.00% 78.82%
src/core/global_modules/checks/interpret.ts 100.00% 88.88% 100.00% 60.00%
src/core/global_modules/program/index.ts 100.00% 85.71% 100.00% 75.00%
src/core/global_modules/records/utils/constraints/unique.ts 100.00% 95.00% 100.00% 62.50%
src/services/definition/provider.ts 100.00% 95.23% 100.00% 71.42%

@huydo862003 huydo862003 force-pushed the perf/add-benchmark branch 3 times, most recently from 9a44e2a to d0093f3 Compare June 10, 2026 11:05
@holistics holistics deleted a comment from github-actions Bot Jun 10, 2026
@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown

Benchmark Result

dbml-parse

suite 🏠 master 🔀 this branch change
18k 3292.225ms ±2.69% 1243.506ms ±5.8% 🟢 -62.2%
25k 6325.57ms ±1.13% 1702.119ms ±2.59% 🟢 -73.1%

@huydo862003 huydo862003 force-pushed the perf/add-benchmark branch 2 times, most recently from 0b35462 to 6ba1a4a Compare June 11, 2026 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant