mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 19:13:16 +08:00
This commit moves a lot of test setup logic to runner.sh. Also passes the right commands to the regression infrastructure to create appropriate users and run tests as a regular user.
56 lines
2.1 KiB
SQL
56 lines
2.1 KiB
SQL
-- DROP a table's column before making it a hypertable
|
|
CREATE TABLE alter_before(id serial, time timestamp, temp float, colorid integer);
|
|
ALTER TABLE alter_before DROP COLUMN id;
|
|
|
|
SELECT create_hypertable('alter_before', 'time', chunk_time_interval => 2628000000000);
|
|
|
|
INSERT INTO alter_before VALUES ('2017-03-22T09:18:22', 23.5, 1);
|
|
|
|
SELECT * FROM alter_before;
|
|
|
|
-- Show that deleted column is marked as dropped and that attnums are
|
|
-- now different for the root table and the chunk
|
|
SELECT c.relname, a.attname, a.attnum FROM pg_attribute a, pg_class c
|
|
WHERE a.attrelid = c.oid
|
|
AND (c.relname LIKE '_hyper_1%_chunk' OR c.relname = 'alter_before')
|
|
AND a.attnum > 0;
|
|
|
|
-- DROP a table's column after making it a hypertable and having data
|
|
CREATE TABLE alter_after(id serial, time timestamp, temp float, colorid integer);
|
|
SELECT create_hypertable('alter_after', 'time', chunk_time_interval => 2628000000000);
|
|
|
|
-- Create first chunk
|
|
INSERT INTO alter_after (time, temp, colorid) VALUES ('2017-03-22T09:18:22', 23.5, 1);
|
|
|
|
ALTER TABLE alter_after DROP COLUMN id;
|
|
|
|
-- Creating new chunks after dropping a column should work just fine
|
|
INSERT INTO alter_after VALUES ('2017-03-22T09:18:23', 21.5, 1),
|
|
('2017-05-22T09:18:22', 36.2, 2),
|
|
('2017-05-22T09:18:23', 15.2, 2);
|
|
|
|
-- Make sure tuple conversion also works with COPY
|
|
\COPY alter_after FROM 'data/alter.tsv' NULL AS '';
|
|
|
|
-- Data should look OK
|
|
SELECT * FROM alter_after;
|
|
|
|
-- Show that attnums are different for chunks created after DROP
|
|
-- column
|
|
SELECT c.relname, a.attname, a.attnum FROM pg_attribute a, pg_class c
|
|
WHERE a.attrelid = c.oid
|
|
AND (c.relname LIKE '_hyper_2%_chunk' OR c.relname = 'alter_after')
|
|
AND a.attnum > 0;
|
|
|
|
-- Add an ID column again
|
|
ALTER TABLE alter_after ADD COLUMN id serial;
|
|
|
|
INSERT INTO alter_after (time, temp, colorid) VALUES ('2017-08-22T09:19:14', 12.5, 3);
|
|
|
|
SELECT c.relname, a.attname, a.attnum FROM pg_attribute a, pg_class c
|
|
WHERE a.attrelid = c.oid
|
|
AND (c.relname LIKE '_hyper_2%_chunk' OR c.relname = 'alter_after')
|
|
AND a.attnum > 0;
|
|
|
|
SELECT * FROM alter_after;
|