Skip to content

fix: reject block syntax for unknown fields inside Dep - #980

Merged
huydo862003 merged 3 commits into
masterfrom
fix/forbid-complex-custom-field-in-deps
Sep 23, 2026
Merged

huydo862003 merged 3 commits into
masterfrom
fix/forbid-complex-custom-field-in-deps

Conversation

@huydo862003

Copy link
Copy Markdown
Contributor

Summary

  • Reject block syntax (key {}, key name {}) for unknown custom fields inside Dep, which previously silently passed validation
  • Still allows simple key: value custom field.

@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown

Benchmark Result

dbml-parse

suite 🏠 master 🔀 this branch change
18k 1208.562ms ±2.98% 1322.247ms ±3.68% 🔴 +9.4%
25k 1769.683ms ±3.15% 1821.742ms ±4.18% ⚪ +2.9%

@huydo862003
huydo862003 force-pushed the fix/forbid-complex-custom-field-in-deps branch from c46a554 to 0375495 Compare September 16, 2026 04:29
@huydo862003
huydo862003 force-pushed the fix/forbid-complex-custom-field-in-deps branch from 0375495 to 8117c9c Compare September 16, 2026 04:29
@github-actions

github-actions Bot commented Sep 16, 2026

Copy link
Copy Markdown

Coverage Report

Commit: 30d87e5

Overall Coverage

Metric Coverage
Lines ✅ 85.48% (9888/11568)
Statements ✅ 82.43% (10757/13050)
Functions ✅ 88.05% (2056/2335)
Branches ⚠️ 73.35% (6474/8826)

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.33% ✅ 83.94% ✅ 90.32% ⚠️ 74.26%

⚠️ 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

97 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/core/global_modules/program/utils/records.ts 0.00% 0.00% 0.00% 0.00%
src/services/code_actions/provider.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 10.52% 12.19% 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/queries/legacy/parse.ts 53.84% 46.66% 50.00% 25.00%
src/compiler/projectLayout/layout.ts 54.16% 53.84% 75.00% 52.63%
src/core/local_modules/dep/index.ts 59.37% 58.82% 100.00% 53.57%
src/core/local_modules/ref/index.ts 62.50% 61.76% 100.00% 57.14%
src/core/types/report.ts 62.96% 56.66% 76.92% 57.14%
src/core/global_modules/records/utils/data/values.ts 63.30% 55.71% 72.72% 49.28%
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/types/symbol/symbols.ts 67.36% 59.51% 61.71% 52.43%
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/project/index.ts 69.23% 69.23% 100.00% 63.63%
src/compiler/queries/utils.ts 73.17% 73.43% 84.61% 52.17%
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/tablePartial/validate.ts 73.91% 73.04% 81.33% 58.42%
src/core/local_modules/use/index.ts 73.91% 75.00% 75.00% 78.12%
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% 62.06%
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/local_modules/custom/index.ts 76.47% 76.19% 80.00% 75.00%
src/core/global_modules/records/utils/data/sqlTypes.ts 76.59% 80.64% 82.35% 72.22%
src/core/local_modules/metadata/index.ts 77.77% 76.92% 75.00% 75.00%
src/core/local_modules/note/validate.ts 78.00% 75.92% 82.35% 67.64%
src/core/global_modules/tablePartial/interpret.ts 78.12% 70.90% 78.94% 53.84%
src/core/types/relation.ts 79.31% 73.52% 58.33% 80.00%
src/core/types/filepath.ts 79.48% 78.57% 77.77% 70.37%
src/core/global_modules/program/utils/external.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/global_modules/utils.ts 80.24% 77.27% 72.72% 65.51%
src/core/local_modules/records/validate.ts 80.28% 80.55% 93.75% 72.30%
src/core/global_modules/ref/bind.ts 80.64% 80.64% 90.00% 70.00%
src/core/global_modules/records/utils/constraints/helper.ts 81.08% 80.48% 82.35% 76.47%
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%
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.49% 83.80% 98.50% 75.21%
src/core/local_modules/enum/validate.ts 83.87% 80.30% 81.25% 73.68%
__tests__/utils/compiler.ts 84.39% 81.91% 100.00% 57.98%
src/compiler/queries/transform/syncDep.ts 84.84% 84.21% 100.00% 63.33%
src/services/suggestions/provider.ts 85.51% 81.77% 92.64% 73.63%
__tests__/utils/mocks.ts 85.71% 86.20% 75.00% 100.00%
src/compiler/queries/transform/updateElementSetting.ts 86.79% 86.88% 100.00% 71.92%
src/core/local_modules/dep/validate.ts 86.81% 82.00% 93.33% 76.23%
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/local_modules/metadata/validate.ts 87.50% 85.41% 100.00% 71.87%
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/core/global_modules/tableGroup/interpret.ts 89.58% 89.58% 100.00% 77.27%
src/core/utils/note.ts 89.65% 87.14% 100.00% 78.33%
src/compiler/index.ts 90.90% 90.97% 73.68% 80.00%
src/core/global_modules/records/index.ts 90.90% 87.15% 100.00% 79.16%
src/core/types/symbol/metadata.ts 91.00% 79.34% 95.83% 63.74%
src/core/global_modules/table/index.ts 91.75% 89.86% 100.00% 77.29%
src/core/global_modules/schema/index.ts 92.26% 82.46% 91.66% 70.07%
src/core/global_modules/table/interpret.ts 92.68% 84.73% 96.55% 66.66%
src/core/local_modules/table/validate.ts 92.77% 93.33% 100.00% 78.48%
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/ref/interpret.ts 95.83% 94.11% 100.00% 78.84%
src/core/utils/interpret.ts 95.89% 92.00% 100.00% 75.64%
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/core/global_modules/note/interpret.ts 96.29% 96.29% 100.00% 75.00%
src/core/global_modules/dep/interpret.ts 96.93% 92.72% 100.00% 76.19%
src/compiler/queries/canonicalName.ts 96.96% 92.10% 100.00% 76.66%
src/core/global_modules/metadata/utils.ts 97.01% 90.58% 100.00% 75.55%
src/core/global_modules/program/interpret.ts 97.52% 92.60% 100.00% 70.42%
src/core/global_modules/records/utils/constraints/pk.ts 97.61% 92.18% 96.66% 67.85%
src/compiler/queries/transform/renameTable.ts 99.05% 90.47% 100.00% 78.82%
src/compiler/queries/transform/utils/dep.ts 100.00% 87.50% 100.00% 73.68%
src/compiler/queries/transform/utils/ref.ts 100.00% 82.92% 100.00% 64.70%
src/core/global_modules/checks/interpret.ts 100.00% 88.88% 100.00% 60.00%
src/core/global_modules/dep/bind.ts 100.00% 81.96% 100.00% 73.17%
src/core/global_modules/metadata/bind.ts 100.00% 89.47% 100.00% 75.00%
src/core/global_modules/metadata/interpret.ts 100.00% 80.00% 100.00% 58.33%
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% 93.75% 100.00% 50.00%
src/core/utils/diagnostics_reporter/ref.ts 100.00% 100.00% 100.00% 70.83%
src/services/definition/provider.ts 100.00% 95.23% 100.00% 71.42%

@huydo862003
huydo862003 merged commit 222a6f1 into master Sep 23, 2026
7 checks passed
@huydo862003 huydo862003 added the PR: Bug Fix 🐛 A type of pull request used for changelog categories label Sep 23, 2026
@huydo862003
huydo862003 deleted the fix/forbid-complex-custom-field-in-deps branch September 23, 2026 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Bug Fix 🐛 A type of pull request used for changelog categories

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants