Repository navigation
Commit 2b8e4fc
committed
fix(client): table_in_out_function(has_finalize=False) skips FINALIZE init()
Real cross-SDK interop bug found live against the vgi-open-meteo worker
(TypeScript SDK, https://vgi-open-meteo.rusty-bb6.workers.dev): every
table_in_out_function() call unconditionally sent a FINALIZE-phase init(),
even for a blended row-transform function, which never has a finalize stage
(enforced at resolve_metadata() -- overriding finish()/finalize() on a
RowTransformFunction is a TypeError). The Python fixture worker happens to
no-op that gracefully, so vgi-python's own test suite never caught it -- but
the TypeScript worker rejects it outright: "a blended row-transform function
has no FINALIZE phase (it is a per-row map; has_finalize is advertised
false)." Every literal or correlated-column call against that worker failed.
New has_finalize: bool = True parameter, defaulting to True so every existing
caller is unaffected. When False, the FINALIZE init() is never sent at all --
not just tolerated when a worker happens to no-op it -- mirroring the DuckDB
C++ extension's own approach of conditionally registering
in_out_function_final in the first place.
New tests/table_in_out/test_blended_exchange.py::TestHasFinalizeSkip proves
output equivalence with/without the flag on both transports (the cross-SDK
rejection itself is TypeScript-only, not reproducible against the Python
fixture worker locally).
Full suite: 2509 passed, 101 skipped.1 parent 55ea6a6 commit 2b8e4fc
2 files changed
Lines changed: 65 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
238 | 238 | | |
239 | 239 | | |
240 | 240 | | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1915 | 1915 | | |
1916 | 1916 | | |
1917 | 1917 | | |
| 1918 | + | |
1918 | 1919 | | |
1919 | 1920 | | |
1920 | 1921 | | |
| |||
1956 | 1957 | | |
1957 | 1958 | | |
1958 | 1959 | | |
| 1960 | + | |
| 1961 | + | |
| 1962 | + | |
| 1963 | + | |
| 1964 | + | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
| 1968 | + | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
| 1972 | + | |
| 1973 | + | |
1959 | 1974 | | |
1960 | 1975 | | |
1961 | 1976 | | |
| |||
2019 | 2034 | | |
2020 | 2035 | | |
2021 | 2036 | | |
2022 | | - | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
2023 | 2045 | | |
2024 | 2046 | | |
2025 | 2047 | | |
| |||
0 commit comments