Skip to content

Generate the array-set relationships instead of marshalling them by hand - #29

Merged
estebanzimanyi merged 2 commits into
MobilityDB:mainfrom
estebanzimanyi:regen/kafka-nxn
Aug 31, 2026
Merged

estebanzimanyi merged 2 commits into
MobilityDB:mainfrom
estebanzimanyi:regen/kafka-nxn

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

The NxN kernels answer which element of one array relates to which of the other, taking
(TYPE **, int) argument pairs and writing the count through an out-parameter. The facade
forwards them in their C shape, so a caller had to build the native arrays, allocate the
count and decode the flattened pairs, and MeosSetSetJoin did that by hand for three of
the twelve.

The catalog states the shape: arrayReturn.groupSize marks the flattened index-pair
return, outParams names the count and the parallel span-set array, and sqlfn gives the
name the SQL surface answers to. The facade emits a folded form from those, beside the
forwarder rather than in place of it, so the canonical dialect keeps its C shape and the
Java form is the additive one. It covers all twelve kernels under their canonical names,
eDwithinPairs through tDisjointPairs, and the buffers stay reachable across the call.

The shared runtime carries the marshalling and the free, and is public, so a consumer
reads it directly. MeosSetSetJoin is gone and the package holds generated code only.

The refresh composed ${SKIP_TESTS:+-DskipTests} into the build command, and the shared
script left that variable set to 0 rather than unset, so the flag was always passed. It
skips the run and not the compilation, so the refresh reported the binding as refreshed
while its suite had not executed once.

The build command no longer composes it, and the shared script no longer offers the
option to compose.
The NxN kernels answer which element of one array relates to which of the other, taking
(TYPE **, int) argument pairs and writing the count through an out-parameter. The facade
forwards them in their C shape, so a caller had to build the native arrays, allocate the
count and decode the flattened pairs, and MeosSetSetJoin did that by hand for three of
the twelve.

The catalog states the shape: arrayReturn.groupSize marks the flattened index-pair
return, outParams names the count and the parallel span-set array, and sqlfn gives the
name the SQL surface answers to. The facade emits a folded form from those, beside the
forwarder rather than in place of it, so the canonical dialect keeps its C shape and the
Java form is the additive one. It covers all twelve kernels under their canonical names,
eDwithinPairs through tDisjointPairs, and the buffers stay reachable across the call.

The shared runtime carries the marshalling and the free, and is public, so a consumer
reads it directly. MeosSetSetJoin is gone and the package holds generated code only.
@estebanzimanyi
estebanzimanyi merged commit 792fbe5 into MobilityDB:main Aug 31, 2026
1 check passed
@estebanzimanyi
estebanzimanyi deleted the regen/kafka-nxn branch September 1, 2026 07:11
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