Skip to content

Advance the MEOS pin to e9883a1e51 - #248

Merged
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:feat/duck-meos-pin-bump
Aug 7, 2026
Merged

Advance the MEOS pin to e9883a1e51#248
estebanzimanyi merged 1 commit into
MobilityDB:mainfrom
estebanzimanyi:feat/duck-meos-pin-bump

Conversation

@estebanzimanyi

Copy link
Copy Markdown
Member

Advances the pinned MobilityDB commit, which carries the MEOS raster sampling
entry points (raster_value_gdal and its at/minus/ever/always siblings) and,
with them, four upstream changes the fixtures follow.

minusStbox is the complement of the corresponding at restriction
(080e218bba). Removing a box covering [2000-01-01, 2000-01-02] from a
three-instant trajectory leaves the fragment after 2000-01-02.

An h3index text literal is hexadecimal, as in h3-pg and in MobilityDB's own
288_th3index_compops test, and a numeric cell reaches the type through a
bigint cast. The fixtures use those two canonical forms. One point for the MEOS
side: a decimal string of more than sixteen digits is also valid hexadecimal, so
stringToH3 overflows and saturates to ffffffffffffffff with E_SUCCESS
every such literal is the same invalid cell, and unrelated cells compare equal.
Direct libh3 output:

612544986753269759   err=0 cell=ffffffffffffffff valid=0
590464338553208831   err=0 cell=ffffffffffffffff valid=0
8928308280fffff      err=0 cell=08928308280fffff valid=1

The pointcloud literals carry their reserved tail (63f974c5f4,
c3a16200c0). pgpointcloud sizes a serialized point as
sizeof(SERIALIZED_POINT) - 1 + schema point size and a serialized patch from
the buffer-aligned header, both reserving bytes past the written content — three
for a point (12 - 1 + 24 = 35 bytes total), fifteen for a patch
(64 - 1 - 48 = 15). MEOS emits that tail as zeros instead of uninitialized heap.
The fixtures' hand-written literals now include the tail, so the rule stays out
of the last coordinate and every coordinate round-trips.

Full suite green on this commit: 1798 assertions in 77 test cases.

The pin carries the MEOS raster sampling entry points and, with them, four
upstream changes the fixtures have to follow.

minusStbox returns the complement of the corresponding at restriction, so
removing a box that covers [2000-01-01, 2000-01-02] from a three-instant
trajectory leaves the fragment after 2000-01-02 rather than nothing.

An h3index text literal is hexadecimal, as in h3-pg and in MobilityDB's own
288_th3index_compops test; a numeric cell reaches the type through a bigint
cast. A decimal string of more than sixteen digits parses as hexadecimal,
overflows and saturates, so every such literal collapses to the same invalid
cell and unrelated cells compare equal.

pgpointcloud sizes a serialized point as sizeof(SERIALIZED_POINT) - 1 plus the
schema point size, and a serialized patch from the buffer-aligned header, both
of which reserve bytes past the written content: three for a point (12 - 1 + 24
= 35), fifteen for a patch (64 - 1 - 48 = 15). MEOS emits that reserved tail as
zeros, so the literals carry it; without it the tail rule reaches into the last
coordinate.
@estebanzimanyi
estebanzimanyi merged commit 7c02e8a into MobilityDB:main Aug 7, 2026
9 checks passed
@estebanzimanyi
estebanzimanyi deleted the feat/duck-meos-pin-bump branch August 7, 2026 17:47
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