mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-16 18:43:18 +08:00
Move the timestamp_limits and with_clause_parser test to regresscheck-shared since those tests don't need a private database incurring less overhead to run those tests. Also add missing ORDER BY clauses to some of the queries in timestamp_limits to make the output more stable.
121 lines
4.8 KiB
SQL
121 lines
4.8 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.
|
|
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
CREATE OR REPLACE FUNCTION test_with_clause_filter(with_clauses TEXT[][])
|
|
RETURNS TABLE(namespace TEXT, name TEXT, value TEXT, filtered BOOLEAN)
|
|
AS :MODULE_PATHNAME, 'ts_test_with_clause_filter' LANGUAGE C VOLATILE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION test_with_clause_parse(with_clauses TEXT[][])
|
|
RETURNS TABLE(name TEXT, unimpl INT8, bool BOOLEAN, int32 INT4, def INT4, name_arg NAME, regc REGCLASS)
|
|
AS :MODULE_PATHNAME, 'ts_test_with_clause_parse' LANGUAGE C VOLATILE STRICT;
|
|
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER
|
|
|
|
|
|
SELECT * FROM test_with_clause_filter(
|
|
'{
|
|
{"baz", "bar", "foo"},
|
|
{"timescaledb", "bar", "baz"},
|
|
{"bar", "timescaledb", "baz"},
|
|
{"timescaledb", "baz", "bar"}
|
|
}');
|
|
|
|
SELECT * FROM test_with_clause_filter(
|
|
'{
|
|
{"baz", "bar", "foo"},
|
|
{"bar", "timescaledb", "baz"},
|
|
{"bar", "timescaledb", "baz"}
|
|
}');
|
|
|
|
SELECT * FROM test_with_clause_filter(
|
|
'{
|
|
{"bar", "timescaledb"},
|
|
{"baz", "bar"},
|
|
{"timescaledb", "bar"},
|
|
{"timescaledb", "baz"}
|
|
}');
|
|
|
|
SELECT * FROM test_with_clause_filter(
|
|
'{
|
|
{"timescaledb"},
|
|
{"bar"},
|
|
{"baz"}
|
|
}');
|
|
|
|
\set ON_ERROR_STOP 0
|
|
-- unrecognized argument
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "fakearg", "bar"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "fakearg"}}');
|
|
|
|
-- unimplemented handled gracefully
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "unimplemented", "bar"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "unimplemented", "true"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "unimplemented"}}');
|
|
\set ON_ERROR_STOP 1
|
|
|
|
-- bool parsing
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "true"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "false"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "on"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "off"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "1"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "0"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool"}}');
|
|
|
|
-- int32 parsing
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "1"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "572"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "-10"}}');
|
|
\set ON_ERROR_STOP 0
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "true"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "bar"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32"}}');
|
|
\set ON_ERROR_STOP 1
|
|
|
|
|
|
-- name parsing
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "1"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "572"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "-10"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "true"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "bar"}}');
|
|
\set ON_ERROR_STOP 0
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name"}}');
|
|
\set ON_ERROR_STOP 1
|
|
|
|
-- REGCLASS parsing
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "pg_type"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "1"}}');
|
|
\set ON_ERROR_STOP 0
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "-10"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "true"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "bar"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass"}}');
|
|
\set ON_ERROR_STOP 1
|
|
|
|
|
|
-- defaults get overridden
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "1"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "572"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "-10"}}');
|
|
\set ON_ERROR_STOP 0
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "true"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "bar"}}');
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default"}}');
|
|
\set ON_ERROR_STOP 1
|
|
|
|
|
|
\set ON_ERROR_STOP 0
|
|
-- duplicates error
|
|
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "1"}, {"timescaledb", "name", "572"}}');
|
|
\set ON_ERROR_STOP 1
|
|
|
|
-- multiple args
|
|
SELECT * FROM test_with_clause_parse('{
|
|
{"a", "bool", "true"},
|
|
{"b", "int32", "572"},
|
|
{"c", "name", "bar"},
|
|
{"d", "regclass", "pg_type"}
|
|
}');
|