Files
email-tracker/external/duckdb/test/geoparquet/disabled.test
2025-10-24 19:21:19 -05:00

99 lines
3.5 KiB
SQL

# name: test/geoparquet/disabled.test
# group: [geoparquet]
require spatial
require parquet
#------------------------------------------------------------------------------
# Test reading geoparquet when conversion is disabled
#------------------------------------------------------------------------------
query II rowsort
SELECT col, st_astext(geometry) FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-encoding_wkb.parquet'
----
0 POINT (30 10)
1 POINT EMPTY
2 NULL
3 POINT (40 40)
statement ok
SET enable_geoparquet_conversion = false;
query II rowsort
SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-encoding_wkb.parquet'
----
0 \x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00>@\x00\x00\x00\x00\x00\x00$@
1 \x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xF8\x7F\x00\x00\x00\x00\x00\x00\xF8\x7F
2 NULL
3 \x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00D@\x00\x00\x00\x00\x00\x00D@
#------------------------------------------------------------------------------
# Test writing geoparquet when conversion is disabled
#------------------------------------------------------------------------------
statement ok
SET enable_geoparquet_conversion = true;
statement ok
COPY (SELECT col, ST_GeomFromText(geometry) as geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-wkt.csv')
TO '__TEST_DIR__/data-point-out-enabled.parquet' (FORMAT PARQUET)
query II rowsort
SELECT col, st_astext(geometry) FROM '__TEST_DIR__/data-point-out-enabled.parquet'
----
0 POINT (30 10)
1 POINT EMPTY
2 NULL
3 POINT (40 40)
# Check that we wrote GeoParquet metadata to the footer
query I
SELECT (decode(value)) as col
FROM parquet_kv_metadata('__TEST_DIR__/data-point-out-enabled.parquet');
----
{"version":"1.0.0","primary_column":"geometry","columns":{"geometry":{"encoding":"WKB","geometry_types":["Point"],"bbox":[30.0,10.0,40.0,40.0]}}}
# Now disable conversion
statement ok
SET enable_geoparquet_conversion = false;
statement ok
COPY (SELECT col, ST_GeomFromText(geometry) as geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-wkt.csv')
TO '__TEST_DIR__/data-point-out-disabled.parquet' (FORMAT PARQUET)
# The bytes differ because this is serialized GEOMETRY, not WKB
query II rowsort
SELECT col, geometry FROM '__TEST_DIR__/data-point-out-disabled.parquet'
----
0 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00>@\x00\x00\x00\x00\x00\x00$@
1 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
2 NULL
3 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00D@\x00\x00\x00\x00\x00\x00D@
# Check that we didnt write any GeoParquet metadata to the footer
query I
SELECT (decode(value)) as col
FROM parquet_kv_metadata('__TEST_DIR__/data-point-out-disabled.parquet');
----
# Now also do the same but when writing WKB directly
statement ok
COPY (SELECT col, ST_AsWKB(ST_GeomFromText(geometry)) as geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-wkt.csv')
TO '__TEST_DIR__/data-point-out-disabled-wkb.parquet' (FORMAT PARQUET)
query II rowsort
SELECT col, geometry FROM '__TEST_DIR__/data-point-out-disabled-wkb.parquet'
----
0 \x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00>@\x00\x00\x00\x00\x00\x00$@
1 \x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xF8\x7F\x00\x00\x00\x00\x00\x00\xF8\x7F
2 NULL
3 \x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00D@\x00\x00\x00\x00\x00\x00D@
query I
SELECT (decode(value)) as col
FROM parquet_kv_metadata('__TEST_DIR__/data-point-out-disabled-wkb.parquet');
----