timescaledb/tsl/test/sql/include/transparent_decompression_systemcolumns.sql
Sven Klemm 32cb4a6af8 Add tableoid support for transparent decompression
This patch adds support for the tableoid system column to transparent
decompression. tableoid will be the relid of the uncompressed chunk.
All other system columns will still throw an error when queried.
2019-10-29 19:02:58 -04:00

39 lines
1.4 KiB
SQL

-- This file and its contents are licensed under the Timescale License.
-- Please see the included NOTICE for copyright information and
-- LICENSE-TIMESCALE for a copy of the license.
\set TEST_TABLE 'metrics'
-- test system columns
-- all system columns except for tableoid should error
\set ON_ERROR_STOP 0
SELECT xmin FROM :TEST_TABLE ORDER BY time;
SELECT cmin FROM :TEST_TABLE ORDER BY time;
SELECT xmax FROM :TEST_TABLE ORDER BY time;
SELECT cmax FROM :TEST_TABLE ORDER BY time;
SELECT ctid FROM :TEST_TABLE ORDER BY time;
-- test system columns in WHERE and ORDER BY clause
SELECT tableoid, xmin FROM :TEST_TABLE ORDER BY time;
SELECT FROM :TEST_TABLE ORDER BY cmin::text;
SELECT FROM :TEST_TABLE WHERE cmin IS NOT NULL;
\set ON_ERROR_STOP 1
-- test tableoid in different parts of query
SELECT pg_typeof(tableoid) FROM :TEST_TABLE ORDER BY time LIMIT 1;
SELECT FROM :TEST_TABLE ORDER BY tableoid LIMIT 1;
SELECT FROM :TEST_TABLE WHERE tableoid::int > 0 LIMIT 1;
SELECT tableoid::regclass FROM :TEST_TABLE GROUP BY tableoid ORDER BY 1;
SELECT count(distinct tableoid) FROM :TEST_TABLE WHERE device_id=1 AND time < now();
-- test prepared statement
PREPARE tableoid_prep AS SELECT tableoid::regclass FROM :TEST_TABLE WHERE device_id = 1 ORDER BY time LIMIT 1;
:PREFIX EXECUTE tableoid_prep;
EXECUTE tableoid_prep;
EXECUTE tableoid_prep;
EXECUTE tableoid_prep;
EXECUTE tableoid_prep;
EXECUTE tableoid_prep;
DEALLOCATE tableoid_prep;