Conversation
|
The CI failure (Build extension binaries / linux_amd64) is a pre-existing build break between duckdb-spatial and duckdb core main, not caused by this PR. DuckDB core PR #24278 (merged 2026-08-05) changed The PR compiles and tests fine against the pinned submodule (2026-07-28). The CI workflow floats What's the preferred fix here — should I update the bind signatures in this PR, or is there a plan to pin |
|
Hello! Thanks for the PR Yeah this break is unrelated, if you want to fix it there's a bunch of patches in duckdb/.github/patches/extensions/spatial that need to be applied - but otherwise Il do it myself soon and rebase this PR after. You could also retarget to the |
b7e881a to
1ae1b23
Compare
|
No upstream issue exists — this defect was found via an adversarial review of the SGL trailing-data fix; this PR is the initial report.
The SGL WKB reader retained its mixed-Z/M flag between parses, even though
Spatial reuses one reader across every row in a vector. It also stopped
accumulating dimensions after the first child that differed from the root.
Together these behaviours could silently discard Z or M coordinates from a
mixed collection and from later rows.
Reset the mixed-dimension flag for every parse and accumulate Z/M presence from
the root and every descendant. This preserves the complete dimension union
when Spatial homogenises mixed WKB while keeping each row independent.
The SQL regression processes a mixed Z/M collection followed by an ordinary Z
point in one vector. A standalone SGL regression directly checks both the
dimension union and the reset state; it fails against the unfixed reader and
passes under Clang ASan/UBSan. The full Spatial
relassertbuild and adjacentWKB suites also pass.
Verified (2026-08-05):
test/sql/geometry/st_ashexwkb.testfails on unpatchedduckdb-spatial main
2b072abd2a(second row degrades toPOINT (1 2), mixedcollection keeps only Z) and passes with this branch (28 assertions).