Skip to content

Advance the MEOS commit and regenerate the UDF surface - #494

Merged
estebanzimanyi merged 2 commits into
mainfrom
tooling/refresh-generated-surface
Oct 24, 2026
Merged

estebanzimanyi merged 2 commits into
mainfrom
tooling/refresh-generated-surface

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

The committed src/generated/ drifted from a fresh derivation against
MobilityDB/MobilityDB master; this regenerates it and moves
_MEOS_REF in vcpkg_ports/meos/portfile.cmake to the commit it is
derived from, so libmeos and the surface stay one commit.

Opened by the Refresh generated surface from MobilityDB master workflow.

@estebanzimanyi
estebanzimanyi force-pushed the tooling/refresh-generated-surface branch from 2bb3f70 to 461c8fb Compare October 24, 2026 11:53
The functions of a temporal JSON value, each the computation of one operation since MobilityDB #3153, are generated from the catalog: the group meos_json_json is retired. At the MobilityDB commit this branch pins, tjsonbObjectField, tjsonbPathExists, tjsonbPathMatch, tjsonbPathQueryArray and tjsonbPathQueryFirst reached no shape, shape_bound_tail reading only a function of four or more parameters whose whole shape binds a literal, and test/sql/parity/027_tjsonb.test failed on tjsonbObjectField.

shape_sig_call places them on their C parameters as the catalog states:
- a SQL text fills a const text * through MakeText, as base_operand reads a text base value;
- a pointer is filled by the SQL type its own DuckDB type is named after, jsonpath for JsonPath;
- the default order of the C parameters leaves out those the signature binds to a literal, tz of tjsonbPathExists and tjsonbPathExistsTz, one C function under two names.

project_signature_forms checks every form of a function before it records any: a form it left in FN_BY_NAME while answering the function itself, as for tjsonbPathExists, whose jsonb default '{}' no literal forwards, claimed the signature the function keeps, and a signature two public functions claim registers nothing. The ten forwarding wrappers such abandoned forms left in the preamble, none of them called (tgeo_space_boxes_bitmatrix_border_inc and its siblings), leave it. A temporal pair registers under the name its signature declares, as #container_scalar_sigs reads it: contains_tjsonb_tjsonb answers tjsonbContains(tjsonb, tjsonb) and, its operands swapped, tjsonbContained(tjsonb, tjsonb), which takes that name alone and not the operator @> of the name it computes. A binary kernel declared over a type in the commuted order alone registers that order only: the form of concat_tjsonb_jsonb binding invert to INVERT answers tConcat(jsonb, tjsonb), not tConcat(tjsonb, jsonb), the other form's. tjsonbSet and tjsonbSetLax stay in RETIRE_UNCOVERED_OK: tjsonb_set reads its keys as a text ** and a count no marshalling fills, and tjsonbSet binds no literal for handle_null; neither registers before this change.

Measured: over the catalog of MobilityDB 3c25b6966f the registrations go up by 49 and none is lost: tjsonbObjectField, tjsonbObjectFieldText and tjsonObjectField with and without their mode, the eight path functions with and without their silent flag, ->>(tjsonb, text), tjsonbContains and tjsonbContained over a jsonb and a temporal value in both orders and tjsonbContained(tjsonb, tjsonb), tConcat, || and @> with the jsonb on either side, tfloat, tgeompoint and tgeogpoint over a tjsonb and a key, tjsonArrayElement, tjsonArrayLength, tjsonExtractPath and tjsonStripNulls. No (name, argument types) pair is registered twice beyond those registered twice before. A second run reproduces src/generated byte for byte. 027_tjsonb.test reads the path functions without their silent flag and through their Tz twins, the key functions without their mode, ->>, both orders of tjsonbContained and tjsonbContains, and the concatenation with the jsonb first.
@estebanzimanyi
estebanzimanyi merged commit 3934afa into main Oct 24, 2026
9 checks passed
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