timescaledb/tsl/test/shared/expected/with_clause_parser.out
Sven Klemm 7b67f72f86 Move timestamp_limits and with_clause_parser test
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.
2021-06-23 14:51:09 +02:00

359 lines
17 KiB
Plaintext

-- 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"}
}');
namespace | name | value | filtered
-------------+-------------+-------+----------
timescaledb | bar | baz | t
timescaledb | baz | bar | t
baz | bar | foo | f
bar | timescaledb | baz | f
(4 rows)
SELECT * FROM test_with_clause_filter(
'{
{"baz", "bar", "foo"},
{"bar", "timescaledb", "baz"},
{"bar", "timescaledb", "baz"}
}');
namespace | name | value | filtered
-----------+-------------+-------+----------
baz | bar | foo | f
bar | timescaledb | baz | f
bar | timescaledb | baz | f
(3 rows)
SELECT * FROM test_with_clause_filter(
'{
{"bar", "timescaledb"},
{"baz", "bar"},
{"timescaledb", "bar"},
{"timescaledb", "baz"}
}');
namespace | name | value | filtered
-------------+-------------+-------+----------
timescaledb | bar | | t
timescaledb | baz | | t
bar | timescaledb | | f
baz | bar | | f
(4 rows)
SELECT * FROM test_with_clause_filter(
'{
{"timescaledb"},
{"bar"},
{"baz"}
}');
namespace | name | value | filtered
-----------+-------------+-------+----------
| timescaledb | | f
| bar | | f
| baz | | f
(3 rows)
\set ON_ERROR_STOP 0
-- unrecognized argument
SELECT * FROM test_with_clause_parse('{{"timescaledb", "fakearg", "bar"}}');
ERROR: unrecognized parameter "timescaledb.fakearg"
SELECT * FROM test_with_clause_parse('{{"timescaledb", "fakearg"}}');
ERROR: unrecognized parameter "timescaledb.fakearg"
-- unimplemented handled gracefully
SELECT * FROM test_with_clause_parse('{{"timescaledb", "unimplemented", "bar"}}');
ERROR: argument "timescaledb.unimplemented" not implemented
SELECT * FROM test_with_clause_parse('{{"timescaledb", "unimplemented", "true"}}');
ERROR: argument "timescaledb.unimplemented" not implemented
SELECT * FROM test_with_clause_parse('{{"timescaledb", "unimplemented"}}');
ERROR: argument "timescaledb.unimplemented" not implemented
\set ON_ERROR_STOP 1
-- bool parsing
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "true"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | t | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "false"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | f | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "on"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | t | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "off"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | f | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "1"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | t | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool", "0"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | f | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "bool"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | t | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
-- int32 parsing
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "1"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | 1 | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "572"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | 572 | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "-10"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | -10 | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | |
(6 rows)
\set ON_ERROR_STOP 0
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "true"}}');
ERROR: invalid value for timescaledb.int32 'true'
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32", "bar"}}');
ERROR: invalid value for timescaledb.int32 'bar'
SELECT * FROM test_with_clause_parse('{{"timescaledb", "int32"}}');
ERROR: parameter "timescaledb.int32" must have a value
\set ON_ERROR_STOP 1
-- name parsing
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "1"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | 1 |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "572"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | 572 |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "-10"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | -10 |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "true"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | true |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "bar"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | bar |
regclass | | | | | |
(6 rows)
\set ON_ERROR_STOP 0
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name"}}');
ERROR: parameter "timescaledb.name" must have a value
\set ON_ERROR_STOP 1
-- REGCLASS parsing
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "pg_type"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+---------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | | pg_type
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "1"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -100 | |
name | | | | | |
regclass | | | | | | 1
(6 rows)
\set ON_ERROR_STOP 0
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "-10"}}');
ERROR: invalid value for timescaledb.regclass '-10'
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "true"}}');
ERROR: invalid value for timescaledb.regclass 'true'
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass", "bar"}}');
ERROR: invalid value for timescaledb.regclass 'bar'
SELECT * FROM test_with_clause_parse('{{"timescaledb", "regclass"}}');
ERROR: parameter "timescaledb.regclass" must have a value
\set ON_ERROR_STOP 1
-- defaults get overridden
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "1"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+-----+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | 1 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "572"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+-----+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | 572 | |
name | | | | | |
regclass | | | | | |
(6 rows)
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "-10"}}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+-----+----------+------
unimplemented | | | | | |
bool | | | | | |
int32 | | | | | |
default | | | | -10 | |
name | | | | | |
regclass | | | | | |
(6 rows)
\set ON_ERROR_STOP 0
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "true"}}');
ERROR: invalid value for timescaledb.default 'true'
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default", "bar"}}');
ERROR: invalid value for timescaledb.default 'bar'
SELECT * FROM test_with_clause_parse('{{"timescaledb", "default"}}');
ERROR: parameter "timescaledb.default" must have a value
\set ON_ERROR_STOP 1
\set ON_ERROR_STOP 0
-- duplicates error
SELECT * FROM test_with_clause_parse('{{"timescaledb", "name", "1"}, {"timescaledb", "name", "572"}}');
ERROR: duplicate parameter "timescaledb.name"
\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"}
}');
name | unimpl | bool | int32 | def | name_arg | regc
---------------+--------+------+-------+------+----------+---------
unimplemented | | | | | |
bool | | t | | | |
int32 | | | 572 | | |
default | | | | -100 | |
name | | | | | bar |
regclass | | | | | | pg_type
(6 rows)