Repository navigation
State the null elements and the rows of a returned SQL array a wrapper lays out - #208
Merged
estebanzimanyi merged 1 commit intoOct 25, 2026
Conversation
…r lays out meta/sql-columns.json states under arrays, keyed by SQL name, the layout a wrapper gives the SQL array a function returns beyond the C array: nulls, the output array whose true elements are NULL elements, and rowLength, the public function and the parameters of the function answering the length of each row of a two-dimensional array whose rows the C array lays out one after the other. attach_array_shapes states it as the arrayShape of each signature of that name returning an array: dumpValues(raster, integer, boolean) answers the values of a band as a height by width array, NULL where the nodata output array of raster_dump_values is true, each row raster_width of the raster long, as raster_values_array lays them out. A statement naming no output array of its function, a call the catalog does not hold or parameters the function does not take, or a statement no signature returning an array takes, stops the catalog; run.py reads the statements when it reads MobilityDB's SQL, as it reads the compositions. Measured over MobilityDB master 1a7a1a0e11: the catalog differs from master's in raster_dump_values alone, whose one-band signature states its arrayShape, and the JVM generators of JMEOS main and MobilityDuck main's generator write the same files over it as over master's; run from the headers of a MobilityDB checkout without its source, as the OpenAPI job runs it, the catalog states no layout and its OpenAPI projection validates. tests/test_sqlfn_rows.py reads the layouts by SQL name, refuses a row length stated without its call, states the null mask and the row length on the signature, and stops on a null mask naming no output array, on a call the catalog does not hold and on a statement no signature takes; the suite passes, 599 tests and none skipped.
estebanzimanyi
force-pushed
the
catalog/array-null-mask-and-rows
branch
from
October 25, 2026 22:52
bebb368 to
5ccd4bd
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.
meta/sql-columns.json states under arrays, keyed by SQL name, the layout a wrapper gives the SQL array a function returns beyond the C array: nulls, the output array whose true elements are NULL elements, and rowLength, the public function and the parameters of the function answering the length of each row of a two-dimensional array whose rows the C array lays out one after the other. attach_array_shapes states it as the arrayShape of each signature of that name returning an array: dumpValues(raster, integer, boolean) answers the values of a band as a height by width array, NULL where the nodata output array of raster_dump_values is true, each row raster_width of the raster long, as raster_values_array lays them out. A statement naming no output array of its function, a call the catalog does not hold or parameters the function does not take, or a statement no signature returning an array takes, stops the catalog; run.py reads the statements when it reads MobilityDB's SQL, as it reads the compositions.
Measured over MobilityDB master 1a7a1a0e11: the catalog differs from master's in raster_dump_values alone, whose one-band signature states its arrayShape, and the JVM generators of JMEOS main and MobilityDuck main's generator write the same files over it as over master's; run from the headers of a MobilityDB checkout without its source, as the OpenAPI job runs it, the catalog states no layout and its OpenAPI projection validates. tests/test_sqlfn_rows.py reads the layouts by SQL name, refuses a row length stated without its call, states the null mask and the row length on the signature, and stops on a null mask naming no output array, on a call the catalog does not hold and on a statement no signature takes; the suite passes, 599 tests and none skipped.