Generate the temporal pointcloud families (tpcpoint, tpcpatch) - #236
Merged
estebanzimanyi merged 1 commit intoJul 31, 2026
Merged
Conversation
estebanzimanyi
force-pushed
the
feat/duck-pointcloud-generated
branch
5 times, most recently
from
July 30, 2026 19:06
93f6e20 to
8cbfc1a
Compare
Register the tpcpoint and tpcpatch families in the UDF generator so their temporal surface is emitted from the MEOS catalog like every other family: add the tokens to REGISTERED_FAMILIES, reg_scope rules, and TO_TYPE/ SIG_TEMPORAL_ACC entries mapping the temporal types, plus a self-contained blob<->Pcpoint/Pcpatch value marshaller (both are varlena, mirroring the Cbuffer marshalling) and the pointcloud type includes. Canonicalize the hand type registration to the lowercase catalog names (meos_catalog.c: pcpoint, tpcpoint, pcpatch, tpcpatch), replacing the non-canonical uppercase TPCPOINT/TPCPATCH aliases, and add the base pcpoint/pcpatch value types as BLOB aliases mirroring cbuffer. This emits the generic temporal accessors for both types; the value accessors (startValue/atValue/getValues/constructor) wire through the Pcpoint/Pcpatch marshaller and generate once the corresponding MEOS temporal-value functions are exposed.
estebanzimanyi
force-pushed
the
feat/duck-pointcloud-generated
branch
from
July 31, 2026 06:08
8cbfc1a to
cf7f6f8
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.
Registers the
tpcpointandtpcpatchfamilies in the UDF generator so their temporal surface is emitted from the MEOS catalog like every other family, instead of being hand-written.Generator (
tools/codegen_duck_udfs.py)tpcpoint/tpcpatch/pcpoint/pcpatchtokens toREGISTERED_FAMILIES, reg_scope rules, andTO_TYPE/SIG_TEMPORAL_ACCentries mapping the temporal types.Pcpoint/Pcpatchvalue marshaller (both are varlena, mirroring the existingCbuffermarshalling) plus the pointcloud type includes.This emits the generic temporal accessors for both types with the canonical bare SQL names.
Type registration (
src/pointcloud/)meos_catalog.c:pcpoint,tpcpoint,pcpatch,tpcpatch), replacing the non-canonical uppercaseTPCPOINT/TPCPATCHaliases.pcpoint/pcpatchvalue types as BLOB aliases (mirroringcbuffer).Value surface:
startValue/endValue/atValue/getValues/constructor fortpcpoint/tpcpatchroute through thePcpoint/Pcpatchmarshaller and generate automatically once the correspondingTemporal<T>value functions are exposed in MEOS (the pointcloud temporal types do not yet carry them, unliketjsonb). The binding side is complete and wired.The generated surface coexists with the existing hand registrations (DuckDB resolves the generated overloads).