feat(bindings): mobilityduck_version() / mobilityduck_full_version()#28
Merged
Merged
Conversation
Adds two SQL scalar functions mirroring MobilityDB's
`mobilitydb_version()` / `mobilitydb_full_version()` shape, but
reporting MobilityDuck's own brand and its own dependency stack
rather than MobilityDB's:
SELECT mobilityduck_version();
-> MobilityDuck <git-sha>
SELECT mobilityduck_full_version();
-> MobilityDuck <git-sha>, linked MEOS <pin>, DuckDB v1.4.4,
GEOS 3.13.1-CAPI-1.19.2, PROJ 9.1.1, OpenSSL 3.5.2 5 Aug 2025
The MEOS pin is exposed via a `MOBILITYDUCK_MEOS_PIN` macro
defaulting to the SHA in vcpkg_ports/meos/portfile.cmake's REF; a
build-system follow-up could thread the actual REF through CMake
so the two stay in sync automatically.
The corresponding query in the upstream MobilityDB regression file
022_temporal.test.sql:
SELECT mobilitydb_version() LIKE 'MobilityDB%';
ports to MobilityDuck's brand as:
SELECT mobilityduck_version() LIKE 'MobilityDuck%';
i.e. a brand divergence rather than a missing binding.
Full suite passes (747 assertions, 13 test cases).
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.
Summary
Adds two SQL scalar functions mirroring the shape of MobilityDB's
mobilitydb_version()/mobilitydb_full_version(), but reporting MobilityDuck's own brand and its own dependency stack rather than MobilityDB's:This matches the precedent of the existing
mobilityduck_openssl_version()SQL scalar (registered inLoadInternal) and theDUCKDB_EXTENSION_API mobilityduck_version()C-extern hook.Why brand-divergent
MEOS does not expose a runtime version symbol, and
mobilitydb_version()itself is a private MEOS internal symbol (declared inmeos/include/temporal/temporal.h, not in the installed public headers). The right answer is a MobilityDuck-side equivalent that reports what's actually linked into THIS distribution.The MEOS pin SHA is exposed via a
MOBILITYDUCK_MEOS_PINmacro defaulting to the SHA invcpkg_ports/meos/portfile.cmake'sREF; a build-system follow-up could thread the actualREFthrough CMake so the two stay in sync automatically.Parity-test consequence
The upstream MobilityDB regression query:
ports to MobilityDuck's brand as:
A brand divergence, not a missing binding. PR #22's
022_temporal.testparity-port skip block can be re-pointed to the duck-branded form when this lands.Test plan
make releasethenTZ=UTC ./build/release/test/unittest "<proj>/test/*"— full suite passes (747 assertions, 13 test cases).SELECT mobilityduck_full_version();returns the formatted string above.