Skip to content

State the null elements and the rows of a returned SQL array a wrapper lays out - #208

Merged
estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:catalog/array-null-mask-and-rows
Oct 25, 2026
Merged

estebanzimanyi merged 1 commit into
MobilityDB:masterfrom
estebanzimanyi:catalog/array-null-mask-and-rows

Conversation

@estebanzimanyi

@estebanzimanyi estebanzimanyi commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

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.

…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
estebanzimanyi force-pushed the catalog/array-null-mask-and-rows branch from bebb368 to 5ccd4bd Compare October 25, 2026 22:52
@estebanzimanyi
estebanzimanyi merged commit 90583fe into MobilityDB:master Oct 25, 2026
3 checks passed
@estebanzimanyi
estebanzimanyi deleted the catalog/array-null-mask-and-rows branch October 25, 2026 23:10
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.

1 participant