Add tests and docs for experimental Relations() table valued function - #9647
Open
khanaffan wants to merge 6 commits into
Open
Add tests and docs for experimental Relations() table valued function#9647khanaffan wants to merge 6 commits into
khanaffan wants to merge 6 commits into
Conversation
khanaffan
marked this pull request as ready for review
August 21, 2026 17:02
khanaffan
requested review from
markschlosseratbentley,
paulius-valiunas and
tcobbs-bentley
August 21, 2026 17:02
Adds TypeScript-side coverage and documentation for the new experimental `ECVLib.Relations()` ECSQL table valued function introduced natively in iTwin/imodel-native#1400. Tests (core/backend markdown ECSQL runner): - New RelationsVTTests.ecsql.md with 18 cases covering the experimental gate, traversal direction (default/forward/backward, case insensitivity, NULL), argument validation, NavPropertyName nullability, multi-hop chaining, CTE-supplied seeds and recursive traversal, plus BisCore oriented learning examples. - ECSqlDatasets.ts inserts one AllProperties:TestElementRefersToElements link table instance so NavPropertyName IS NULL can be asserted. It is inserted last so no existing element or aspect ids shift. - Misc.ecsql.md PRAGMA ecsql_ver expectation 2.0.4.0 -> 2.0.4.1. - JoinClause.ecsql.md notes why "JOIN on Empty Table" is still valid now that the relationship table holds one row with an unset `i`. Docs: - New ECSqlReference/Relations.md reference page, linked from the ECSqlReference index. - ECSQL.md gains a short pointer section. - Pragmas.md ecsql_ver sample refreshed from the stale 2.0.3.1. - NextVersion.md changelog entry. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
khanaffan
force-pushed
the
affan/relations-vtab-tests-docs
branch
from
August 21, 2026 17:03
ae4d20d to
c4fafdc
Compare
Contributor
|
This pull request is now in conflicts. Could you fix it @khanaffan? 🙏 |
rschili
approved these changes
Sep 4, 2026
Preserve the current master release notes and retain the experimental Relations documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Require SQL NULL for link-table navigation names, assert empty results for negative cases, join on complete instance keys, and clarify recursion and performance documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
khanaffan
enabled auto-merge (squash)
September 11, 2026 19:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
imodel-native: iTwin/imodel-native#1400
Summary
Adds tests and documentation for the experimental
ECVLib.Relations()ECSQL table valued function.Tests
core/backend/src/test/ecsql/queries/RelationsVTTests.ecsql.md— 18 cases in the markdown ECSQL runner covering direction, argument validation,NavPropertyName, multi-hop and recursive CTE traversal, plus BisCore examples.ECSqlDatasets.tsadds one link table relationship instance (inserted last, so no existing ids shift).PRAGMA ecsql_verexpectation updated2.0.4.0→2.0.4.1.Docs
docs/learning/ECSqlReference/Relations.mdreference page, linked from the ECSqlReference index.ECSQL.md, refreshedecsql_versample inPragmas.md, and aNextVersion.mdentry.