test(c/validation): assert a null-typed (NA) bound parameter column is accepted - #25
Open
fornwall wants to merge 1 commit into
Open
test(c/validation): assert a null-typed (NA) bound parameter column is accepted#25fornwall wants to merge 1 commit into
fornwall wants to merge 1 commit into
Conversation
…s accepted AdbcStatementGetParameterSchema reports parameters whose type cannot be determined as NA (adbc.h), and clients like pyarrow infer a null-typed column for an all-None parameter list. A driver must therefore accept a bind batch containing a null-typed column, treating every value as NULL. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LGf8PVEe2tYkw8Q6Pd95tq
fornwall
force-pushed
the
validation/bind-null-type
branch
from
July 13, 2026 17:54
20855da to
69beb68
Compare
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.
Split out from #21 (4/5).
Adds
StatementTest.SqlBindNullTypeto the generic C++ validation suite: a driver must accept a bind batch containing a null-typed (NA, all-NULL) parameter column.adbc.hdoc forAdbcStatementGetParameterSchema(adbc.h:2284-2286): "If the type cannot be determined, the type of the corresponding field will be NA (NullType)" — a client that builds its bind batch from exactly the schema the driver advertises (or pyarrow inferringnullfor an all-None parameter list) produces NA columns, which the driver must accept.INVALID_ARGUMENT: cannot bind parameter "p0": unsupported Arrow type Null(verified by actual run on the Spanner emulator).supports_dynamic_parameter_binding().sqlite_flightsql_test.cc. The in-tree driver transmits the null-typed parameters correctly (verified against the server in-process), but the arrow-go example server'sSqlBatchReadercannot materialize result columns of unknown/dense-union type, soSELECT ?with a NULL parameter silently returns zero rows. This is an upstream apache/arrow-go example-server limitation, not a driver bug.The test is written against the generic
DriverQuirksfixtures, so it auto-enrolls for every driver usingADBCV_TEST_STATEMENT; candidate for later upstream submission to apache/arrow-adbc.Verified on this branch: full SQLite suite 123 passed / 15 skipped / 0 failed. FlightSQL suite verified locally against the arrow-go example server:
SqlBindpasses,SqlBindNullTypeskips.🤖 Generated with Claude Code
https://claude.ai/code/session_01EGHTnNywAfCfbe4DoNcfuz