62 lines
2.3 KiB
SQL
62 lines
2.3 KiB
SQL
# name: test/geoparquet/mixed.test
|
|
# group: [geoparquet]
|
|
|
|
require spatial
|
|
|
|
require parquet
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Create a table
|
|
#------------------------------------------------------------------------------
|
|
|
|
statement ok
|
|
CREATE TABLE t1 (col INT, geom GEOMETRY);
|
|
|
|
statement ok
|
|
INSERT INTO t1 VALUES
|
|
(1, 'POINT(0 0)'),
|
|
(2, 'POINT Z(1 1 1)'),
|
|
(3, 'LINESTRING(0 0, 1 1)'),
|
|
(4, 'POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'),
|
|
(5, 'MULTIPOINT(0 0, 1 1)'),
|
|
(6, 'MULTILINESTRING((0 0, 1 1), (2 2, 3 3))'),
|
|
(7, 'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)))'),
|
|
(8, 'GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0, 1 1))');
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Test parquet output
|
|
#------------------------------------------------------------------------------
|
|
|
|
statement ok
|
|
COPY (SELECT * FROM t1) TO '__TEST_DIR__/t1.parquet' (FORMAT 'parquet');
|
|
|
|
# Now read it back
|
|
statement ok
|
|
CREATE TABLE t2 AS SELECT * FROM '__TEST_DIR__/t1.parquet';
|
|
|
|
query II rowsort result_1
|
|
SELECT * FROM t2;
|
|
|
|
query II rowsort result_2
|
|
SELECT * FROM t1;
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Inspect the parquet file
|
|
#------------------------------------------------------------------------------
|
|
|
|
query I
|
|
SELECT (decode(value)) as col
|
|
FROM parquet_kv_metadata('__TEST_DIR__/t1.parquet');
|
|
----
|
|
{"version":"1.0.0","primary_column":"geom","columns":{"geom":{"encoding":"WKB","geometry_types":["Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection","Point Z"],"bbox":[0.0,0.0,1.0,3.0,3.0,1.0]}}}
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Write with RETURN_STATS
|
|
#------------------------------------------------------------------------------
|
|
query IIIIII
|
|
COPY (SELECT * FROM t1) TO '__TEST_DIR__/t1.parquet' (FORMAT 'parquet', RETURN_STATS);
|
|
----
|
|
<REGEX>:.*t1.parquet 8 <REGEX>:\d+ <REGEX>:\d+ <REGEX>:{'"col"'={column_size_bytes=\d+, max=8, min=1, null_count=0}, '"geom"'={bbox_xmax=3.0, bbox_xmin=0.0, bbox_ymax=3.0, bbox_ymin=0.0, bbox_zmax=1.0, bbox_zmin=1.0, column_size_bytes=\d+, geo_types='\[point, linestring, polygon, multipoint, multilinestring, multipolygon, geometrycollection, point_z\]', null_count=0}} NULL
|