Repository navigation
Keep the catalog derivable from master after the E writers and the circular-buffer names - #179
Merged
estebanzimanyi merged 2 commits intoOct 5, 2026
Conversation
…ng both MobilityDB 2510e750d0 gives cbuffer, npoint, nsegment, pose, posechain, stbox and tpcbox an E writer beside the plain one, cbuffer_as_hexewkb beside cbuffer_as_hexwkb. One pattern of the encoding table, _as_hex_?e?wkb, matched both, so #keyed of parser/codecs.py ranked them alike, each serving one SQL type, and stopped the catalog: "type encodings that contradict themselves: Cbuffer: cbuffer written by cbuffer_as_hexewkb and cbuffer_as_hexwkb", and so for the six others. Every binding provisioning from master fails at that step, MobilitySpark main among them. The encoding tables of parser/enrich.py now state the plain hex-WKB pattern before the E one, for the writers and the readers alike, so a class having both keeps the plain pair as its codec, the one it stated before: the variant its send binds already decides whether the bytes carry the SRID. A class having only the E pair, GSERIALIZED, keeps it. Each function is classified under the same encoding as before; only the rank of the two patterns differs. Witness: over the installed headers of a libmeos built from MobilityDB master 881945dca9, run.py exits 1 with the seven contradictions above. Measured over the same headers: run.py derives the catalog, 5149 functions; the seven classes state their plain *_as_hexwkb writer and *_from_hexwkb reader, with the variant their send binds, and GSERIALIZED its HexEWKB readers and writer. tests/test_codecs.py states the rank over a class having both pairs, failing without the change.
MobilityDB 881945dca9 names the six relationships between two circular buffers by their class, as every other static function of a base type is named: contains_cbuffer_cbuffer is cbufferContains, declared as CREATE FUNCTION cbufferContains(cbuffer, cbuffer) in mobilitydb/sql/cbuffer/200_cbuffer.in.sql. test_sqlfn_deployed.py reads that name over the catalog generated from master, where it read cbuffer_contains. Measured over the catalog derived from master 881945dca9: the suite passes, 484 tests, 25 skipped for want of a MobilityDB source tree or installed headers, which CI provides.
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.
Keep the plain hex-WKB reader and writer as the codec of a class having both
MobilityDB 2510e750d0 gives cbuffer, npoint, nsegment, pose, posechain, stbox and tpcbox an
E writer beside the plain one, cbuffer_as_hexewkb beside cbuffer_as_hexwkb. One pattern of the
encoding table, as_hex?e?wkb, matched both, so #keyed of parser/codecs.py ranked them alike,
each serving one SQL type, and stopped the catalog: "type encodings that contradict
themselves: Cbuffer: cbuffer written by cbuffer_as_hexewkb and cbuffer_as_hexwkb", and so for
the six others. Every binding provisioning from master fails at that step, MobilitySpark main
among them.
The encoding tables of parser/enrich.py now state the plain hex-WKB pattern before the E one,
for the writers and the readers alike, so a class having both keeps the plain pair as its
codec, the one it stated before: the variant its send binds already decides whether the bytes
carry the SRID. A class having only the E pair, GSERIALIZED, keeps it. Each function is
classified under the same encoding as before; only the rank of the two patterns differs.
Witness: over the installed headers of a libmeos built from MobilityDB master 881945dca9,
run.py exits 1 with the seven contradictions above.
Measured over the same headers: run.py derives the catalog, 5149 functions; the seven classes
state their plain *_as_hexwkb writer and *_from_hexwkb reader, with the variant their send
binds, and GSERIALIZED its HexEWKB readers and writer. tests/test_codecs.py states the rank
over a class having both pairs, failing without the change.
Read the class-prefixed name of the static circular-buffer containment
MobilityDB 881945dca9 names the six relationships between two circular buffers by their class,
as every other static function of a base type is named: contains_cbuffer_cbuffer is
cbufferContains, declared as CREATE FUNCTION cbufferContains(cbuffer, cbuffer) in
mobilitydb/sql/cbuffer/200_cbuffer.in.sql. test_sqlfn_deployed.py reads that name over the
catalog generated from master, where it read cbuffer_contains.
Measured over the catalog derived from master 881945dca9: the suite passes, 484 tests, 25
skipped for want of a MobilityDB source tree or installed headers, which CI provides.