# 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]}}}