Skip to content

Conversation

@rekhoff
Copy link
Contributor

@rekhoff rekhoff commented Jan 28, 2026

Description of Changes

This change implements the module bindings changes to Views that where updated with core in #3685 and the Rust module bindings implementation in #3819.
Updates the C# module bindings to use new header-first view ABI (ViewResultHeader) and updates the return codes for the __call_view__ and __call_view_anon__ module exports. This is a prerequsite for Query builder support being added to C# modules.

API and ABI breaking changes

Not breaking. Existing modules will continue to use the old ABI. New modules will use the new ABI. However previous host versions will not support modules built using this version of the bindings.

Expected complexity level and risk

2

Testing

This is an internal refactor. All existing tests should continue to pass. All existing tests should continue to pass. The only tests that needed updating were the C# codegen snapshot tests (Codegen.Tests) because the generated view dispatcher bodies changed (they now prefix ViewResultHeader.RowData before the existing row payload).

@rekhoff rekhoff self-assigned this Jan 28, 2026
@rekhoff rekhoff marked this pull request as ready for review January 28, 2026 00:28
@rekhoff rekhoff added this pull request to the merge queue Jan 31, 2026
Merged via the queue into master with commit 201970e Jan 31, 2026
28 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Feb 11, 2026
# Description of Changes
This is the implementation of the Typed Query Builder for C# modules
outlined in #3750.
This requires the changes from #4146 to be in place before it can
properly function.

This aligns the C# typed query builder SQL formatter with the Rust
implementation:
* Supports `And/Or` with same grouping styles as Rust.
* All comparison operators (`Eq/Neq/Lt/…`) wrap expressions in
parentheses so chained predicates produce byte-for-byte identical SQL.

# API and ABI breaking changes
Not breaking. Existing modules keep producing the same SQL semantics;
only redundant parentheses were added to match the Rust formatter.

# Expected complexity level and risk
2 — localized string-format updates plus parity harness tweaks. Low
functional risk; largest concern is ensuring every comparison path
gained parentheses.

# Testing
- [X] Tested against a local test harness validating output from these
changes match current Rust behavior.

---------

Signed-off-by: Ryan <r.ekhoff@clockworklabs.io>
Co-authored-by: joshua-spacetime <josh@clockworklabs.io>
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.

2 participants