Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
040830b
added st_interiorringn
pinkerltm Dec 9, 2025
535a3dd
Add ST_InteriorRingN
pinkerltm Dec 10, 2025
b50c9e2
fix ring orientation for ST_AsMVTGeom and add orientation tests
hafenkran Jan 3, 2026
de91661
st_fromhexwkb fix, add function error setting
Maxxen Jan 8, 2026
eed1dc7
use expression executor to vectorize bbox computation
Maxxen Jan 8, 2026
fbd5681
Merge pull request #726 from pinkerltm/feature/st_interiorringn
Maxxen Jan 8, 2026
a58746c
Merge pull request #732 from hafenkran/fix/mvt-ring-orientation
Maxxen Jan 8, 2026
f71c203
make join more generic
Maxxen Jan 9, 2026
8360645
flag most functions as CAN_THROW_RUNTIME_ERRORS
Maxxen Jan 10, 2026
5412c16
Merge branch 'fix/mvt-ring-orientation' of https://github.com/hafenkr…
Maxxen Jan 10, 2026
cb03cd5
update CI tools
Maxxen Jan 10, 2026
806bd50
Pin extension_ci_tools to 1.4 in 1.4 branch
staticlibs Jan 10, 2026
7a47179
Merge pull request #737 from staticlibs/ext_ci_pin
Maxxen Jan 10, 2026
e34c2b3
Merge branch 'v1.4-andium' of https://github.com/duckdb/duckdb-spatia…
Maxxen Jan 10, 2026
f129b24
Merge pull request #736 from Maxxen/v1.4-andium-dev
Maxxen Jan 10, 2026
8a546c8
fix: Fix patch of gdal
geoyee Jan 13, 2026
d0e248c
Remove repeat word
szarnyasg Jan 16, 2026
ec4c511
Fix typos in descriptions
szarnyasg Jan 16, 2026
9a77a8e
Merge pull request #741 from szarnyasg/nits-20260116
Maxxen Jan 16, 2026
46b4ecc
Merge pull request #740 from geoyee/v1.4-andium-dev
Maxxen Jan 17, 2026
6837cea
fix non-const vector output
Maxxen Jan 19, 2026
14cc57b
Merge pull request #745 from Maxxen/v1.4-andium-dev
Maxxen Jan 19, 2026
10e6fe3
update to duckdb v1.5-variegata
Maxxen Jan 20, 2026
696af2d
apply patches
Maxxen Jan 20, 2026
d1292b1
merge with v1.4-branch
Maxxen Jan 20, 2026
b435a56
exclude musl for now
Maxxen Jan 21, 2026
ec613cd
update duckdb
Maxxen Jan 21, 2026
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
14 changes: 8 additions & 6 deletions .github/workflows/MainDistributionPipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ name: Main Extension Distribution Pipeline
on:
pull_request:
branches:
- main
- v1.5-variegata
paths-ignore:
- '**/README.md'
- 'doc/**'
push:
branches:
- main
- v1.5-variegata
paths-ignore:
- '**/README.md'
- 'doc/**'
Expand All @@ -27,18 +27,20 @@ jobs:
name: Build extension binaries
uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main
with:
duckdb_version: main
extension_name: spatial
duckdb_version: v1.5-variegata
ci_tools_version: main
vcpkg_commit: ce613c41372b23b1f51333815feb3edd87ef8a8b
extension_name: spatial
vcpkg_commit: 84bab45d415d22042bd0b9081aea57f362da3f35
exclude_archs: 'linux_amd64_musl'

duckdb-latest-deploy:
name: Deploy extension binaries
needs: duckdb-latest-build
uses: duckdb/extension-ci-tools/.github/workflows/_extension_deploy.yml@main
secrets: inherit
with:
duckdb_version: main
duckdb_version: v1.5-variegata
ci_tools_version: main
extension_name: spatial
deploy_latest: ${{ startsWith(github.ref, 'refs/heads/v') || github.ref == 'refs/heads/main' }}
exclude_archs: 'linux_amd64_musl'
2 changes: 1 addition & 1 deletion duckdb
Submodule duckdb updated 1149 files
2 changes: 2 additions & 0 deletions extension_config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ duckdb_extension_load(spatial
INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/src/spatial
${DO_TESTS}
)

duckdb_extension_load(json)
21 changes: 12 additions & 9 deletions src/spatial/index/rtree/rtree_index_plan_scan.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
#include "spatial/geometry/bbox.hpp"
#include "spatial/index/rtree/rtree_index.hpp"
#include "spatial/index/rtree/rtree_index_create_logical.hpp"
#include "spatial/index/rtree/rtree_index_scan.hpp"
#include "spatial/index/rtree/rtree_module.hpp"
#include "spatial/spatial_types.hpp"
#include "spatial/geometry/geometry_serialization.hpp"
#include "spatial/util/math.hpp"

#include "duckdb/catalog/catalog_entry/duck_table_entry.hpp"
#include "duckdb/function/table/table_scan.hpp"
#include "duckdb/optimizer/column_binding_replacer.hpp"
Expand All @@ -18,14 +27,6 @@
#include "duckdb/planner/filter/expression_filter.hpp"
#include "duckdb/main/database.hpp"

#include "spatial/geometry/bbox.hpp"
#include "spatial/index/rtree/rtree_index.hpp"
#include "spatial/index/rtree/rtree_index_create_logical.hpp"
#include "spatial/index/rtree/rtree_index_scan.hpp"
#include "spatial/index/rtree/rtree_module.hpp"
#include "spatial/spatial_types.hpp"
#include "spatial/geometry/geometry_serialization.hpp"
#include "spatial/util/math.hpp"

namespace duckdb {
//-----------------------------------------------------------------------------
Expand Down Expand Up @@ -313,7 +314,9 @@ class RTreeIndexScanOptimizer : public OptimizerExtension {
void RTreeModule::RegisterIndexPlanScan(ExtensionLoader &loader) {
// Register the optimizer extension
auto &db = loader.GetDatabaseInstance();
db.config.optimizer_extensions.push_back(RTreeIndexScanOptimizer());
RTreeIndexScanOptimizer optimizer;

OptimizerExtension::Register(db.config, optimizer);
}

} // namespace duckdb
9 changes: 5 additions & 4 deletions src/spatial/modules/gdal/gdal_module.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include "cpl_vsi.h"
#include "cpl_vsi_error.h"
#include "cpl_vsi_virtual.h"
#include "duckdb/main/settings.hpp"

namespace duckdb {
namespace {
Expand Down Expand Up @@ -209,7 +210,7 @@ class DuckDBFileSystemHandler final : public VSIFilesystemHandler {
}

// Fall back to GDAL instead (if external access is enabled)
if (!context.db->config.options.enable_external_access) {
if (!Settings::Get<EnableExternalAccessSetting>(context)) {
if (set_error) {
VSIError(VSIE_FileError, "%s", error_data.RawMessage().c_str());
}
Expand Down Expand Up @@ -410,7 +411,7 @@ class DuckDBFileSystemPrefix final : public ClientContextState {
string AddPrefix(const string &value) const {
// If the user explicitly asked for a VSI prefix, we don't add our own
if (StringUtil::StartsWith(value, "/vsi")) {
if (!context.db->config.options.enable_external_access) {
if (!Settings::Get<EnableExternalAccessSetting>(context)) {
throw PermissionException("Cannot open file '%s' with VSI prefix: External access is disabled", value);
}
return value;
Expand Down Expand Up @@ -1023,7 +1024,7 @@ static constexpr auto DOCUMENTATION = R"(
| `allowed_drivers` | VARCHAR[] | A list of GDAL driver names that are allowed to be used to open the file. If empty, all drivers are allowed. |
| `sibling_files` | VARCHAR[] | A list of sibling files that are required to open the file. E.g., the ESRI Shapefile driver requires a .shx file to be present. Although most of the time these can be discovered automatically. |
| `spatial_filter_box` | BOX_2D | If set to a BOX_2D, the table function will only return rows that intersect with the given bounding box. Similar to spatial_filter. |
| `keep_wkb` | BOOLEAN | If set, the table function will return geometries in a wkb_geometry column with the type WKB_BLOB (which can be cast to BLOB) instead of GEOMETRY. This is useful if you want to use DuckDB with more exotic geometry subtypes that DuckDB spatial doesnt support representing in the GEOMETRY type yet. |
| `keep_wkb` | BOOLEAN | If set, the table function will return geometries in a wkb_geometry column with the type WKB_BLOB (which can be cast to BLOB) instead of GEOMETRY. This is useful if you want to use DuckDB with more exotic geometry subtypes that DuckDB spatial doesn't support representing in the GEOMETRY type yet. |

Note that GDAL is single-threaded, so this table function will not be able to make full use of parallelism.

Expand Down Expand Up @@ -1778,7 +1779,7 @@ void RegisterGDALModule(ExtensionLoader &loader) {

// Set GDAL error handler
CPLSetErrorHandler([](CPLErr e, int code, const char *raw_msg) {
// DuckDB doesnt do warnings, so we only throw on errors
// DuckDB doesn't do warnings, so we only throw on errors
if (e != CE_Failure && e != CE_Fatal) {
return;
}
Expand Down
Loading
Loading