Skip to content

DBX-6874 DBX-6875 DBX-6868 Missing column in index tuples are not reported & improve URI handling in compiler services#916

Merged
huydo862003 merged 9 commits into
masterfrom
fix/missing-column-in-indexes-not-reported
Jun 1, 2026
Merged

DBX-6874 DBX-6875 DBX-6868 Missing column in index tuples are not reported & improve URI handling in compiler services#916
huydo862003 merged 9 commits into
masterfrom
fix/missing-column-in-indexes-not-reported

Conversation

@huydo862003
Copy link
Copy Markdown
Contributor

@huydo862003 huydo862003 commented Jun 1, 2026

Summary

  • Previously, non-existent column in indexes tuples are not reported in dbml/parse
Table T {
  id int
  Indexes {
    (id, non_existent_column)
  }
}

@dbml/core then trigger a runtime error here.

  • Root cause:
    When binding the indexes, we skip fields that have field.variables.length + field.tupleElements.length > 1, essentially, skipping all tuples with more than 1 elements -> non-existent column is not reported.

  • Also, fix a bug where tablepartial's indexes are not being resolved.

  • Improve Uri handling in services provider

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

@linear-code
Copy link
Copy Markdown

linear-code Bot commented Jun 1, 2026

DBX-6874

DBX-6875

DBX-6868

@huydo862003 huydo862003 force-pushed the fix/missing-column-in-indexes-not-reported branch from 03367fc to 05cb81b Compare June 1, 2026 04:47
@huydo862003 huydo862003 changed the title DBX-6874 Fix/missing column in indexes not reported DBX-6874 DBX-6875 DBX-6868 Fix/missing column in indexes not reported Jun 1, 2026
@huydo862003 huydo862003 changed the title DBX-6874 DBX-6875 DBX-6868 Fix/missing column in indexes not reported DBX-6874 DBX-6875 DBX-6868 Missing column in index tuples are not reported & improve URI handling in compiler services Jun 1, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 1, 2026

Coverage Report

Commit: 8666ad1

Overall Coverage

Metric Coverage
Lines ✅ 85.00% (8562/10073)
Statements ✅ 82.39% (9298/11285)
Functions ✅ 87.47% (1794/2051)
Branches ⚠️ 73.50% (5562/7567)

Package Coverage

Package Lines Statements Functions Branches
@dbml/dbml-cli ✅ 100.00% ✅ 100.00% ✅ 100.00% ✅ 100.00%
@dbml/dbml-connector ⚠️ 64.62% ⚠️ 64.36% ⚠️ 59.53% ⚠️ 59.09%
@dbml/dbml-core N/A N/A N/A N/A
@dbml/dbml-parse ✅ 87.10% ✅ 84.16% ✅ 90.03% ⚠️ 74.59%

⚠️ Coverage Warnings

The following packages have coverage below 80%:

  • @dbml/dbml-connector: 64.62% line coverage

Files with Coverage Below 80%

@dbml/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/dbml-parse

79 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/symbol/symbols.ts 62.54% 55.03% 59.83% 45.77%
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.10% 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/project/index.ts 69.23% 69.23% 100.00% 63.63%
src/core/local_modules/custom/index.ts 70.58% 71.42% 80.00% 68.75%
src/core/types/report.ts 70.83% 66.66% 83.33% 71.42%
src/core/local_modules/tablePartial/validate.ts 73.01% 71.83% 79.22% 57.67%
src/compiler/queries/utils.ts 73.10% 73.38% 90.90% 51.11%
src/core/global_modules/project/bind.ts 73.33% 75.00% 100.00% 50.00%
src/core/local_modules/note/validate.ts 73.52% 70.27% 76.92% 66.66%
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/note/index.ts 75.00% 75.86% 75.00% 72.72%
src/core/local_modules/project/validate.ts 75.00% 75.86% 100.00% 56.25%
src/services/suggestions/utils/index.ts 75.00% 75.00% 100.00% 60.71%
src/core/local_modules/indexes/validate.ts 75.36% 76.00% 90.90% 58.00%
src/core/local_modules/records/index.ts 75.60% 76.19% 100.00% 68.08%
src/core/global_modules/indexes/bind.ts 75.67% 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.65% 70.64% 78.94% 53.73%
__tests__/utils/compiler.ts 79.28% 77.95% 100.00% 56.41%
src/core/global_modules/tableGroup/bind.ts 79.31% 80.00% 100.00% 57.14%
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/ref/bind.ts 80.00% 80.64% 90.00% 70.00%
src/core/local_modules/records/validate.ts 80.00% 80.55% 93.75% 72.30%
src/core/local_modules/checks/validate.ts 81.25% 82.69% 93.75% 70.00%
src/core/local_modules/diagramView/validate.ts 81.33% 78.04% 84.21% 72.72%
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/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.71% 83.94% 98.38% 75.51%
src/core/local_modules/table/validate.ts 84.50% 85.14% 90.24% 73.04%
src/core/global_modules/records/utils/constraints/pk.ts 84.61% 81.42% 92.59% 56.52%
src/core/local_modules/enum/validate.ts 85.24% 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.31% 82.92% 100.00% 78.22%
src/core/global_modules/tablePartial/bind.ts 86.79% 87.27% 100.00% 71.42%
src/services/suggestions/utils/useMerger.ts 86.95% 81.13% 100.00% 46.34%
src/core/global_modules/tableGroup/interpret.ts 88.09% 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/compiler/index.ts 89.74% 89.91% 75.00% 75.00%
src/services/suggestions/provider.ts 89.80% 85.59% 100.00% 76.77%
src/core/global_modules/table/interpret.ts 90.62% 84.72% 95.45% 67.70%
src/core/global_modules/records/index.ts 90.90% 87.15% 100.00% 79.16%
src/core/global_modules/schema/index.ts 92.26% 82.46% 91.66% 70.07%
src/core/types/symbol/metadata.ts 92.34% 78.24% 97.61% 63.15%
src/core/utils/interpret.ts 92.98% 89.47% 100.00% 73.13%
src/core/global_modules/diagramView/interpret.ts 94.54% 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.23% 95.45% 100.00% 66.66%
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.44% 98.46% 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 merged commit f47060d into master Jun 1, 2026
5 checks passed
@huydo862003 huydo862003 deleted the fix/missing-column-in-indexes-not-reported branch June 1, 2026 05:25
@huydo862003 huydo862003 added the PR: Bug Fix 🐛 A type of pull request used for changelog categories label Jun 1, 2026
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