141 lines
5.3 KiB
SQL
141 lines
5.3 KiB
SQL
# name: test/geoparquet/roundtrip.test
|
|
# group: [geoparquet]
|
|
|
|
require spatial
|
|
|
|
require parquet
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test points
|
|
#------------------------------------------------------------------------------
|
|
|
|
query II nosort point_result
|
|
SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-wkt.csv'
|
|
|
|
query II nosort point_result
|
|
SELECT col, st_astext(geometry) FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-encoding_wkb.parquet'
|
|
|
|
# Now write it back to parquet
|
|
statement ok
|
|
COPY (SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-point-wkt.csv')
|
|
TO '__TEST_DIR__/data-point-out.parquet' (FORMAT PARQUET)
|
|
|
|
# Test that the data is the same
|
|
query II nosort point_result
|
|
SELECT col, geometry FROM '__TEST_DIR__/data-point-out.parquet'
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test linestrings
|
|
#------------------------------------------------------------------------------
|
|
|
|
query II nosort linestring_result
|
|
SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-linestring-wkt.csv'
|
|
|
|
query II nosort linestring_result
|
|
SELECT col, st_astext(geometry) FROM '__WORKING_DIRECTORY__/data/geoparquet/data-linestring-encoding_wkb.parquet'
|
|
|
|
# Now write it back to parquet
|
|
statement ok
|
|
COPY (SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-linestring-encoding_wkb.parquet')
|
|
TO '__TEST_DIR__/data-linestring-out.parquet' (FORMAT PARQUET)
|
|
|
|
# Test that the data is the same
|
|
query II nosort linestring_result
|
|
SELECT col, geometry FROM '__TEST_DIR__/data-linestring-out.parquet'
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test polygons
|
|
#------------------------------------------------------------------------------
|
|
|
|
query II nosort polygon_result
|
|
SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-polygon-wkt.csv'
|
|
|
|
query II nosort polygon_result
|
|
SELECT col, st_astext(geometry) FROM '__WORKING_DIRECTORY__/data/geoparquet/data-polygon-encoding_wkb.parquet'
|
|
|
|
# Now write it back to parquet
|
|
statement ok
|
|
COPY (SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-polygon-encoding_wkb.parquet')
|
|
TO '__TEST_DIR__/data-polygon-out.parquet' (FORMAT PARQUET)
|
|
|
|
# Test that the data is the same
|
|
query II nosort polygon_result
|
|
SELECT col, geometry FROM '__TEST_DIR__/data-polygon-out.parquet'
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test multipoints
|
|
#------------------------------------------------------------------------------
|
|
|
|
query II nosort multipoint_result
|
|
SELECT col, ST_GeomFromText(geometry) FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multipoint-wkt.csv'
|
|
|
|
query II nosort multipoint_result
|
|
SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multipoint-encoding_wkb.parquet'
|
|
|
|
# Now write it back to parquet
|
|
statement ok
|
|
COPY (SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multipoint-encoding_wkb.parquet')
|
|
TO '__TEST_DIR__/data-multipoint-out.parquet' (FORMAT PARQUET)
|
|
|
|
# Test that the data is the same
|
|
query II nosort multipoint_result
|
|
SELECT col, geometry FROM '__TEST_DIR__/data-multipoint-out.parquet'
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test multilinestrings
|
|
#------------------------------------------------------------------------------
|
|
|
|
query II nosort multilinestring_result
|
|
SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multilinestring-wkt.csv'
|
|
|
|
query II nosort multilinestring_result
|
|
SELECT col, st_astext(geometry) FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multilinestring-encoding_wkb.parquet'
|
|
|
|
# Now write it back to parquet
|
|
statement ok
|
|
COPY (SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multilinestring-encoding_wkb.parquet')
|
|
TO '__TEST_DIR__/data-multilinestring-out.parquet' (FORMAT PARQUET)
|
|
|
|
# Test that the data is the same
|
|
query II nosort multilinestring_result
|
|
SELECT col, geometry FROM '__TEST_DIR__/data-multilinestring-out.parquet'
|
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test multipolygons
|
|
#------------------------------------------------------------------------------
|
|
|
|
query II nosort multipolygon_result
|
|
SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multipolygon-wkt.csv'
|
|
|
|
query II nosort multipolygon_result
|
|
SELECT col, st_astext(geometry) FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multipolygon-encoding_wkb.parquet'
|
|
|
|
# Now write it back to parquet
|
|
statement ok
|
|
COPY (SELECT col, geometry FROM '__WORKING_DIRECTORY__/data/geoparquet/data-multipolygon-encoding_wkb.parquet')
|
|
TO '__TEST_DIR__/data-multipolygon-out.parquet' (FORMAT PARQUET)
|
|
|
|
# Test that the data is the same
|
|
query II nosort multipolygon_result
|
|
SELECT col, geometry FROM '__TEST_DIR__/data-multipolygon-out.parquet'
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Inspect metadata
|
|
#------------------------------------------------------------------------------
|
|
|
|
query I
|
|
SELECT decode(value) as col
|
|
FROM parquet_kv_metadata('__TEST_DIR__/data-multipolygon-out.parquet') WHERE key = 'geo';
|
|
----
|
|
{"version":"1.0.0","primary_column":"geometry","columns":{"geometry":{"encoding":"WKB","geometry_types":["MultiPolygon"],"bbox":[5.0,5.0,45.0,45.0]}}} |