timescaledb/test/expected/cluster.out
Erik Nordström 1f2d27671b Fix and improve show_indexes test support function
This fixes the show_indexes test support function to properly show the
columns of the indexes instead of the table. The function now also
shows the expressions of expression indexes.
2018-08-03 09:51:28 +02:00

157 lines
8.0 KiB
Plaintext

CREATE TABLE cluster_test(time timestamptz, temp float, location int);
SELECT create_hypertable('cluster_test', 'time', chunk_time_interval => interval '1 day');
NOTICE: adding not-null constraint to column "time"
create_hypertable
-------------------
(1 row)
-- Show default indexes
SELECT * FROM test.show_indexes('cluster_test');
Index | Columns | Expr | Unique | Primary | Exclusion | Tablespace
-----------------------+---------+------+--------+---------+-----------+------------
cluster_test_time_idx | {time} | | f | f | f |
(1 row)
-- Create two chunks
INSERT INTO cluster_test VALUES ('2017-01-20T09:00:01', 23.4, 1),
('2017-01-21T09:00:01', 21.3, 2);
-- Run cluster
CLUSTER VERBOSE cluster_test USING cluster_test_time_idx;
INFO: clustering "_timescaledb_internal._hyper_1_2_chunk" using index scan on "_hyper_1_2_chunk_cluster_test_time_idx"
INFO: "_hyper_1_2_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_1_chunk" using index scan on "_hyper_1_1_chunk_cluster_test_time_idx"
INFO: "_hyper_1_1_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "public.cluster_test" using sequential scan and sort
INFO: "cluster_test": found 0 removable, 0 nonremovable row versions in 0 pages
-- Create a third chunk
INSERT INTO cluster_test VALUES ('2017-01-22T09:00:01', 19.5, 3);
-- Show clustered indexes
SELECT indexrelid::regclass, indisclustered
FROM pg_index
WHERE indisclustered = true;
indexrelid | indisclustered
--------------------------------------------------------------+----------------
_timescaledb_internal._hyper_1_2_chunk_cluster_test_time_idx | t
_timescaledb_internal._hyper_1_1_chunk_cluster_test_time_idx | t
cluster_test_time_idx | t
(3 rows)
-- Recluster just our table
CLUSTER VERBOSE cluster_test;
INFO: clustering "_timescaledb_internal._hyper_1_3_chunk" using index scan on "_hyper_1_3_chunk_cluster_test_time_idx"
INFO: "_hyper_1_3_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_2_chunk" using sequential scan and sort
INFO: "_hyper_1_2_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_1_chunk" using sequential scan and sort
INFO: "_hyper_1_1_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "public.cluster_test" using sequential scan and sort
INFO: "cluster_test": found 0 removable, 0 nonremovable row versions in 0 pages
-- Show clustered indexes, including new chunk
SELECT indexrelid::regclass, indisclustered
FROM pg_index
WHERE indisclustered = true;
indexrelid | indisclustered
--------------------------------------------------------------+----------------
_timescaledb_internal._hyper_1_2_chunk_cluster_test_time_idx | t
_timescaledb_internal._hyper_1_1_chunk_cluster_test_time_idx | t
cluster_test_time_idx | t
_timescaledb_internal._hyper_1_3_chunk_cluster_test_time_idx | t
(4 rows)
-- Recluster all tables (although will only be our test table)
CLUSTER VERBOSE;
INFO: clustering "_timescaledb_internal._hyper_1_3_chunk" using sequential scan and sort
INFO: "_hyper_1_3_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "public.cluster_test" using sequential scan and sort
INFO: "cluster_test": found 0 removable, 0 nonremovable row versions in 0 pages
INFO: clustering "_timescaledb_internal._hyper_1_1_chunk" using sequential scan and sort
INFO: "_hyper_1_1_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_2_chunk" using sequential scan and sort
INFO: "_hyper_1_2_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
-- Change the clustered index
CREATE INDEX ON cluster_test (time, location);
CLUSTER VERBOSE cluster_test using cluster_test_time_location_idx;
INFO: clustering "_timescaledb_internal._hyper_1_3_chunk" using sequential scan and sort
INFO: "_hyper_1_3_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_2_chunk" using sequential scan and sort
INFO: "_hyper_1_2_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_1_chunk" using sequential scan and sort
INFO: "_hyper_1_1_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "public.cluster_test" using sequential scan and sort
INFO: "cluster_test": found 0 removable, 0 nonremovable row versions in 0 pages
-- Show updated clustered indexes
SELECT indexrelid::regclass, indisclustered
FROM pg_index
WHERE indisclustered = true;
indexrelid | indisclustered
----------------------------------------------------------+----------------
_timescaledb_internal._hyper_1_3_chunk_time_location_idx | t
_timescaledb_internal._hyper_1_2_chunk_time_location_idx | t
_timescaledb_internal._hyper_1_1_chunk_time_location_idx | t
cluster_test_time_location_idx | t
(4 rows)
--check the setting of cluster indexes on hypertables and chunks
ALTER TABLE cluster_test CLUSTER ON cluster_test_time_idx;
SELECT indexrelid::regclass, indisclustered
FROM pg_index
WHERE indisclustered = true
ORDER BY 1,2;
indexrelid | indisclustered
--------------------------------------------------------------+----------------
cluster_test_time_idx | t
_timescaledb_internal._hyper_1_1_chunk_cluster_test_time_idx | t
_timescaledb_internal._hyper_1_2_chunk_cluster_test_time_idx | t
_timescaledb_internal._hyper_1_3_chunk_cluster_test_time_idx | t
(4 rows)
CLUSTER VERBOSE cluster_test;
INFO: clustering "_timescaledb_internal._hyper_1_3_chunk" using sequential scan and sort
INFO: "_hyper_1_3_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_2_chunk" using sequential scan and sort
INFO: "_hyper_1_2_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "_timescaledb_internal._hyper_1_1_chunk" using sequential scan and sort
INFO: "_hyper_1_1_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
INFO: clustering "public.cluster_test" using sequential scan and sort
INFO: "cluster_test": found 0 removable, 0 nonremovable row versions in 0 pages
ALTER TABLE cluster_test SET WITHOUT CLUSTER;
SELECT indexrelid::regclass, indisclustered
FROM pg_index
WHERE indisclustered = true
ORDER BY 1,2;
indexrelid | indisclustered
------------+----------------
(0 rows)
\set ON_ERROR_STOP 0
CLUSTER VERBOSE cluster_test;
ERROR: there is no previously clustered index for table "cluster_test"
\set ON_ERROR_STOP 1
ALTER TABLE _timescaledb_internal._hyper_1_1_chunk CLUSTER ON _hyper_1_1_chunk_cluster_test_time_idx;
SELECT indexrelid::regclass, indisclustered
FROM pg_index
WHERE indisclustered = true
ORDER BY 1,2;
indexrelid | indisclustered
--------------------------------------------------------------+----------------
_timescaledb_internal._hyper_1_1_chunk_cluster_test_time_idx | t
(1 row)
CLUSTER VERBOSE _timescaledb_internal._hyper_1_1_chunk;
INFO: clustering "_timescaledb_internal._hyper_1_1_chunk" using sequential scan and sort
INFO: "_hyper_1_1_chunk": found 0 removable, 1 nonremovable row versions in 1 pages
ALTER TABLE _timescaledb_internal._hyper_1_1_chunk SET WITHOUT CLUSTER;
SELECT indexrelid::regclass, indisclustered
FROM pg_index
WHERE indisclustered = true
ORDER BY 1,2;
indexrelid | indisclustered
------------+----------------
(0 rows)
\set ON_ERROR_STOP 0
CLUSTER VERBOSE _timescaledb_internal._hyper_1_1_chunk;
ERROR: there is no previously clustered index for table "_hyper_1_1_chunk"
\set ON_ERROR_STOP 1