Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,39 @@ include extension-ci-tools/makefiles/duckdb_extension.Makefile
# both MEOS (meos_initialize_timezone) and DuckDB (DBConfig::SetOptionByName
# "TimeZone") to Europe/Brussels. Tests pass on any OS timezone — the
# extension is the single source of truth, no TZ env var needed.
#
# LoadInternal also calls ExtensionHelper::AutoLoadExtension(db, "icu") so
# the timezone option is honoured. Autoload looks for the extension on disk
# at $HOME/.duckdb/extensions/<duckdb_version>/<platform>/icu.duckdb_extension
# and falls back to a hub download. That fails both inside the linux_amd64
# test docker container (empty path, no network egress) and on the macOS
# osx_arm64 test runner (hub icu not reliably resolvable). We copy the
# icu.duckdb_extension that was built locally as part of this extension's
# build (declared in extension_config.cmake) into the expected path,
# matched to the DuckDB platform string, before running the unittester.
DUCKDB_VERSION_TAG := v1.4.4

define stage_icu
@if [ -f ./build/$(1)/extension/icu/icu.duckdb_extension ]; then \
case "$$(uname -s)-$$(uname -m)" in \
Linux-x86_64) platform=linux_amd64 ;; \
Linux-aarch64) platform=linux_arm64 ;; \
Darwin-arm64) platform=osx_arm64 ;; \
Darwin-x86_64) platform=osx_amd64 ;; \
*) platform=$$(uname -m) ;; \
esac; \
target=$$HOME/.duckdb/extensions/$(DUCKDB_VERSION_TAG)/$$platform; \
mkdir -p "$$target" && cp -f ./build/$(1)/extension/icu/icu.duckdb_extension "$$target/" && \
echo "Staged icu.duckdb_extension at $$target/"; \
fi
endef

test_release_internal:
$(call stage_icu,release)
./build/release/$(TEST_PATH) "$(PROJ_DIR)test/*"
test_debug_internal:
$(call stage_icu,debug)
./build/debug/$(TEST_PATH) "$(PROJ_DIR)test/*"
test_reldebug_internal:
./build/reldebug/$(TEST_PATH) "$(PROJ_DIR)test/*"
$(call stage_icu,reldebug)
./build/reldebug/$(TEST_PATH) "$(PROJ_DIR)test/*"
26 changes: 21 additions & 5 deletions src/include/tydef.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,27 @@ extern "C" {
#include <meos_internal.h>
}

// Forward-compat alias for the meosType → MeosType rename (MobilityDB
// pr785-sync-script). Vcpkg's MEOS exposes `MeosType`; existing
// MobilityDuck code still uses `meosType`. This alias bridges the two
// without touching every reference site.
using meosType = MeosType;
// MEOS naming history: `meosType` is the **pre-consolidation** spelling
// and `MeosType` is the **post-consolidation** target (the rename is
// part of the upstream consolidation sweep, not yet reached by the
// vcpkg pin). The current pin
// (`vcpkg_ports/meos/portfile.cmake` REF f11b7443ee98…) is still
// pre-consolidation and exposes `meosType` — see
// meos/include/temporal/meos_catalog.h, where line 121 declares
// `} meosType;`. MobilityDuck's source consistently uses
// `meosType` (verified via `grep -rn '\bmeosType\b' src/`), which
// matches the pin, so no alias is needed today.
//
// An earlier version of this file added `using meosType = MeosType;`
// as a forward-looking bridge for the eventual consolidation bump.
// That alias references `MeosType`, which the current pin does NOT
// yet expose, so it broke the build:
// "'MeosType' does not name a type; did you mean 'meosType'?".
//
// When the MEOS pin is bumped past the consolidation point, restore
// a bridge here (`using meosType = MeosType;` becomes valid then) or
// sweep the source `meosType → MeosType` in one PR — whichever the
// project prefers at that time.

namespace duckdb {

Expand Down
2 changes: 1 addition & 1 deletion src/mobilityduck_extension.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ inline void MobilityduckOpenSSLVersionScalarFun(DataChunk &args, ExpressionState
// MEOS does not expose a runtime version symbol, so the build-time pin
// is the most precise version stamp the extension can report.
#ifndef MOBILITYDUCK_MEOS_PIN
#define MOBILITYDUCK_MEOS_PIN "f11b7443e"
#define MOBILITYDUCK_MEOS_PIN "80c24f46d (1.4-integration)"
#endif

inline std::string MobilityduckShortVersion() {
Expand Down
20 changes: 17 additions & 3 deletions vcpkg_ports/meos/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
# MEOS-1.4 integration branch on the user's fork — combines all 15 open
# MEOS-1.4 bump PRs into one buildable commit:
# #1075 portable bare-name aliases #1090 geog_in fall-through fix
# #1081 tcbuffer accessors #1094 tolerance fix (0.0)
# #1082 tnpoint accessors #1095 meos_error contract doc (Wave 1)
# #1083 tcbuffer/tpose ctors #1096 meos_error CI ratchet (Wave 2)
# #1084 from_base time ctors #1097 per-site fall-through fixes (Wave 3)
# #1085 tpose_from_mfjson #1098 math/aggfuncs/datagen fixes (Wave 4)
# #1088 geodetic spatialrels #1100 ea_* geodetic completion (closes #1092)
# #1101 signature uniformization (closes #1079)
# Branch: https://github.com/estebanzimanyi/MobilityDB/tree/integration/meos-1.4-bump
# Both libmeos and libMobilityDB-1.4 built green from this SHA (Linux x86_64,
# 2026-05-20). Once the 15 PRs land on MobilityDB master, switch the REPO line
# back to `MobilityDB/MobilityDB` and update REF/SHA512 to that master tip.
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO MobilityDB/MobilityDB
REF f11b7443ee985dc1ffb778c325e62f0edaf255ec
SHA512 ae8589acc86016c601f9c3c157e94b35e6e8fc50d6194d26db510d51e65a6e751279a3ced258a6bb6e56a22e083993aaeab92f20b9d18d41c7a2c8c73b7dc9df
REPO estebanzimanyi/MobilityDB
REF 80c24f46d042baa2613515b0f5b82255f21fb522
SHA512 c21d978270bcd2e996506bc692abd3c3a8e57f31032443e07107cdc25ac8b7ebed7df42f71ad8b740e732ea35317524d3b14089277038efabb774a2dd53c0b23
)

vcpkg_replace_string(
Expand Down
Loading