mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-16 02:23:49 +08:00
This patch removes PG 9.6 and PG 10 test output files and merges the output files where PG11 output does not differ from PG12 output. Removing code support for these versions will be in a subsequent patch.
104 lines
3.6 KiB
SQL
104 lines
3.6 KiB
SQL
-- This file and its contents are licensed under the Apache License 2.0.
|
|
-- Please see the included NOTICE for copyright information and
|
|
-- LICENSE-APACHE for a copy of the license.
|
|
|
|
\ir include/insert_single.sql
|
|
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
|
|
-- make sure tablespace1 exists
|
|
-- since there is no CREATE TABLESPACE IF EXISTS we drop with if exists and recreate
|
|
SET client_min_messages TO error;
|
|
DROP TABLESPACE IF EXISTS tablespace1;
|
|
RESET client_min_messages;
|
|
CREATE TABLESPACE tablespace1 OWNER :ROLE_DEFAULT_PERM_USER LOCATION :TEST_TABLESPACE1_PATH;
|
|
|
|
--needed for ddl ops:
|
|
CREATE SCHEMA IF NOT EXISTS "customSchema" AUTHORIZATION :ROLE_DEFAULT_PERM_USER_2;
|
|
|
|
--needed for ROLE_DEFAULT_PERM_USER_2 to write to the 'one_Partition' schema which
|
|
--is owned by ROLE_DEFAULT_PERM_USER
|
|
GRANT CREATE ON SCHEMA "one_Partition" TO :ROLE_DEFAULT_PERM_USER_2;
|
|
|
|
--test creating and using schema as non-superuser
|
|
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER_2
|
|
\dt
|
|
|
|
\set ON_ERROR_STOP 0
|
|
SELECT * FROM "one_Partition";
|
|
SELECT set_chunk_time_interval('"one_Partition"', 1::bigint);
|
|
select add_dimension('"one_Partition"', 'device_id', 2);
|
|
select attach_tablespace('tablespace1', '"one_Partition"');
|
|
\set ON_ERROR_STOP 1
|
|
|
|
CREATE TABLE "1dim"(time timestamp, temp float);
|
|
SELECT create_hypertable('"1dim"', 'time');
|
|
INSERT INTO "1dim" VALUES('2017-01-20T09:00:01', 22.5);
|
|
INSERT INTO "1dim" VALUES('2017-01-20T09:00:21', 21.2);
|
|
INSERT INTO "1dim" VALUES('2017-01-20T09:00:47', 25.1);
|
|
SELECT * FROM "1dim";
|
|
|
|
|
|
\ir include/ddl_ops_1.sql
|
|
\ir include/ddl_ops_2.sql
|
|
|
|
--test proper denials for all security definer functions:
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
CREATE TABLE plain_table_su (time timestamp, temp float);
|
|
CREATE TABLE hypertable_su (time timestamp, temp float);
|
|
SELECT create_hypertable('hypertable_su', 'time');
|
|
CREATE INDEX "ind_1" ON hypertable_su (time);
|
|
INSERT INTO hypertable_su VALUES('2017-01-20T09:00:01', 22.5);
|
|
|
|
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER_2
|
|
--all of the following should produce errors
|
|
\set ON_ERROR_STOP 0
|
|
SELECT create_hypertable('plain_table_su', 'time');
|
|
CREATE INDEX ON plain_table_su (time, temp);
|
|
CREATE INDEX ON hypertable_su (time, temp);
|
|
DROP INDEX "ind_1";
|
|
ALTER INDEX "ind_1" RENAME TO "ind_2";
|
|
\set ON_ERROR_STOP 1
|
|
|
|
--test that I can't do anything to a non-owned hypertable.
|
|
\set ON_ERROR_STOP 0
|
|
CREATE INDEX ON hypertable_su (time, temp);
|
|
SELECT * FROM hypertable_su;
|
|
INSERT INTO hypertable_su VALUES('2017-01-20T09:00:01', 22.5);
|
|
ALTER TABLE hypertable_su ADD COLUMN val2 integer;
|
|
\set ON_ERROR_STOP 1
|
|
|
|
--grant read permissions
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
GRANT SELECT ON hypertable_su TO :ROLE_DEFAULT_PERM_USER_2;
|
|
|
|
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER_2
|
|
SELECT * FROM hypertable_su;
|
|
\set ON_ERROR_STOP 0
|
|
CREATE INDEX ON hypertable_su (time, temp);
|
|
INSERT INTO hypertable_su VALUES('2017-01-20T09:00:01', 22.5);
|
|
ALTER TABLE hypertable_su ADD COLUMN val2 integer;
|
|
\set ON_ERROR_STOP 1
|
|
|
|
--grant read, insert permissions
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
GRANT SELECT, INSERT ON hypertable_su TO :ROLE_DEFAULT_PERM_USER_2;
|
|
|
|
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER_2
|
|
INSERT INTO hypertable_su VALUES('2017-01-20T09:00:01', 22.5);
|
|
SELECT * FROM hypertable_su;
|
|
\set ON_ERROR_STOP 0
|
|
CREATE INDEX ON hypertable_su (time, temp);
|
|
ALTER TABLE hypertable_su ADD COLUMN val2 integer;
|
|
\set ON_ERROR_STOP 1
|
|
|
|
--change owner
|
|
\c :TEST_DBNAME :ROLE_SUPERUSER
|
|
ALTER TABLE hypertable_su OWNER TO :ROLE_DEFAULT_PERM_USER_2;
|
|
|
|
\c :TEST_DBNAME :ROLE_DEFAULT_PERM_USER_2
|
|
INSERT INTO hypertable_su VALUES('2017-01-20T09:00:01', 22.5);
|
|
SELECT * FROM hypertable_su;
|
|
CREATE INDEX ON hypertable_su (time, temp);
|
|
ALTER TABLE hypertable_su ADD COLUMN val2 integer;
|