mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 11:03:36 +08:00
Compare distributed gapfill test to single-node
The regression tests of gapfill on distributed hypertable compares their results to executing the same gapfill queries against non-distributed hypertable. The distributed gapfill test executes queries with partitionwise_aggregate disabled and enabled and compares both results. The tests were moved from the previous location to new, more appropriate files. The output was also moved with fixing the table name. This commit doesn't add new tests and doesn't include explain.
This commit is contained in:
parent
6729326c0a
commit
3db3fd921d
@ -216,278 +216,6 @@ _timescaledb_internal._dist_hyper_1_8_chunk
|
||||
|
||||
(1 row)
|
||||
|
||||
-- Simple tests of time_bucket_gapfill
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-02 18:00'),
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1;
|
||||
time_bucket_gapfill | first | avg
|
||||
------------------------------+-------+---------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 7.3 | 5.8
|
||||
Sun Jan 01 10:00:00 2017 PST | |
|
||||
Sun Jan 01 13:00:00 2017 PST | |
|
||||
Sun Jan 01 16:00:00 2017 PST | |
|
||||
Sun Jan 01 19:00:00 2017 PST | |
|
||||
Sun Jan 01 22:00:00 2017 PST | |
|
||||
Mon Jan 02 01:00:00 2017 PST | |
|
||||
Mon Jan 02 04:00:00 2017 PST | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 0.23 | 0.23
|
||||
Mon Jan 02 10:00:00 2017 PST | |
|
||||
Mon Jan 02 13:00:00 2017 PST | |
|
||||
Mon Jan 02 16:00:00 2017 PST | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 3.1 | 3.1
|
||||
Sun Jul 01 08:00:00 2018 PDT | 64 | 5183.56
|
||||
Mon Jul 02 08:00:00 2018 PDT | 0 | 0
|
||||
(16 rows)
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1,2;
|
||||
time_bucket_gapfill | device | first | avg
|
||||
------------------------------+--------+----------+----------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1 | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 1 | 7.3 | 7.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 2 | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 2 | 0.23 | 0.23
|
||||
Sun Jan 01 04:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 3 | 4.3 | 4.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 13 | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 13 | 3.1 | 3.1
|
||||
Sun Jan 01 04:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 29 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 29 | 64 | 64
|
||||
Sun Jan 01 04:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 87 | |
|
||||
Mon Jul 02 08:00:00 2018 PDT | 87 | 0 | 0
|
||||
Sun Jan 01 04:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 90 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 90 | 10303.12 | 10303.12
|
||||
(40 rows)
|
||||
|
||||
SELECT
|
||||
time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
lag(min(time)) OVER ()
|
||||
FROM disttable
|
||||
GROUP BY 1;
|
||||
time_bucket_gapfill | lag
|
||||
------------------------------+------------------------------
|
||||
Sun Jan 01 04:00:00 2017 PST |
|
||||
Sun Jan 01 07:00:00 2017 PST | Sun Jan 01 06:01:00 2017 PST
|
||||
Sun Jan 01 10:00:00 2017 PST | Sun Jan 01 08:01:00 2017 PST
|
||||
Sun Jan 01 13:00:00 2017 PST |
|
||||
Sun Jan 01 16:00:00 2017 PST |
|
||||
Mon Jan 02 07:00:00 2017 PST |
|
||||
Sun Jul 01 05:00:00 2018 PDT | Mon Jan 02 08:01:00 2017 PST
|
||||
Sun Jul 01 08:00:00 2018 PDT | Sun Jul 01 06:01:00 2018 PDT
|
||||
Mon Jul 02 08:00:00 2018 PDT | Sun Jul 01 08:01:00 2018 PDT
|
||||
(9 rows)
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 2,1;
|
||||
time_bucket_gapfill | device | first | avg
|
||||
------------------------------+--------+----------+----------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1 | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 1 | 7.3 | 7.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 2 | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 2 | 0.23 | 0.23
|
||||
Sun Jan 01 04:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 3 | 4.3 | 4.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 13 | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 13 | 3.1 | 3.1
|
||||
Sun Jan 01 04:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 29 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 29 | 64 | 64
|
||||
Sun Jan 01 04:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 87 | |
|
||||
Mon Jul 02 08:00:00 2018 PDT | 87 | 0 | 0
|
||||
Sun Jan 01 04:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 90 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 90 | 10303.12 | 10303.12
|
||||
(40 rows)
|
||||
|
||||
-- Test the same queries with enabled partitionwise aggregate
|
||||
SET enable_partitionwise_aggregate = 'on';
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-02 18:00'),
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1;
|
||||
time_bucket_gapfill | first | avg
|
||||
------------------------------+-------+---------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 7.3 | 5.8
|
||||
Sun Jan 01 10:00:00 2017 PST | |
|
||||
Sun Jan 01 13:00:00 2017 PST | |
|
||||
Sun Jan 01 16:00:00 2017 PST | |
|
||||
Sun Jan 01 19:00:00 2017 PST | |
|
||||
Sun Jan 01 22:00:00 2017 PST | |
|
||||
Mon Jan 02 01:00:00 2017 PST | |
|
||||
Mon Jan 02 04:00:00 2017 PST | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 0.23 | 0.23
|
||||
Mon Jan 02 10:00:00 2017 PST | |
|
||||
Mon Jan 02 13:00:00 2017 PST | |
|
||||
Mon Jan 02 16:00:00 2017 PST | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 3.1 | 3.1
|
||||
Sun Jul 01 08:00:00 2018 PDT | 64 | 5183.56
|
||||
Mon Jul 02 08:00:00 2018 PDT | 0 | 0
|
||||
(16 rows)
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1,2;
|
||||
time_bucket_gapfill | device | first | avg
|
||||
------------------------------+--------+----------+----------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1 | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 1 | 7.3 | 7.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 2 | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 2 | 0.23 | 0.23
|
||||
Sun Jan 01 04:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 3 | 4.3 | 4.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 13 | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 13 | 3.1 | 3.1
|
||||
Sun Jan 01 04:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 29 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 29 | 64 | 64
|
||||
Sun Jan 01 04:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 87 | |
|
||||
Mon Jul 02 08:00:00 2018 PDT | 87 | 0 | 0
|
||||
Sun Jan 01 04:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 90 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 90 | 10303.12 | 10303.12
|
||||
(40 rows)
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 2,1;
|
||||
time_bucket_gapfill | device | first | avg
|
||||
------------------------------+--------+----------+----------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1 | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 1 | 7.3 | 7.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 2 | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 2 | 0.23 | 0.23
|
||||
Sun Jan 01 04:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 3 | 4.3 | 4.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 13 | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 13 | 3.1 | 3.1
|
||||
Sun Jan 01 04:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 29 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 29 | 64 | 64
|
||||
Sun Jan 01 04:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 87 | |
|
||||
Mon Jul 02 08:00:00 2018 PDT | 87 | 0 | 0
|
||||
Sun Jan 01 04:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 90 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 90 | 10303.12 | 10303.12
|
||||
(40 rows)
|
||||
|
||||
SET enable_partitionwise_aggregate = 'off';
|
||||
-- Ensure that move_chunk() and reorder_chunk() functions cannot be used
|
||||
-- with distributed hypertable
|
||||
SET ROLE TO DEFAULT;
|
||||
|
194
tsl/test/expected/dist_gapfill.out
Normal file
194
tsl/test/expected/dist_gapfill.out
Normal file
@ -0,0 +1,194 @@
|
||||
-- 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.
|
||||
\set ECHO errors
|
||||
hypertable_id | schema_name | table_name | created
|
||||
---------------+-------------+------------+---------
|
||||
1 | public | conditions | t
|
||||
(1 row)
|
||||
|
||||
\ir :TEST_QUERY_NAME
|
||||
-- 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.
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-02 18:00'),
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM conditions
|
||||
GROUP BY 1;
|
||||
time_bucket_gapfill | first | avg
|
||||
------------------------------+-------+---------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 7.3 | 5.8
|
||||
Sun Jan 01 10:00:00 2017 PST | |
|
||||
Sun Jan 01 13:00:00 2017 PST | |
|
||||
Sun Jan 01 16:00:00 2017 PST | |
|
||||
Sun Jan 01 19:00:00 2017 PST | |
|
||||
Sun Jan 01 22:00:00 2017 PST | |
|
||||
Mon Jan 02 01:00:00 2017 PST | |
|
||||
Mon Jan 02 04:00:00 2017 PST | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 0.23 | 0.23
|
||||
Mon Jan 02 10:00:00 2017 PST | |
|
||||
Mon Jan 02 13:00:00 2017 PST | |
|
||||
Mon Jan 02 16:00:00 2017 PST | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 3.1 | 3.1
|
||||
Sun Jul 01 08:00:00 2018 PDT | 64 | 5183.56
|
||||
Mon Jul 02 08:00:00 2018 PDT | 0 | 0
|
||||
(16 rows)
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM conditions
|
||||
GROUP BY 1,2;
|
||||
time_bucket_gapfill | device | first | avg
|
||||
------------------------------+--------+----------+----------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1 | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 1 | 7.3 | 7.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 2 | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 2 | 0.23 | 0.23
|
||||
Sun Jan 01 04:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 3 | 4.3 | 4.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 13 | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 13 | 3.1 | 3.1
|
||||
Sun Jan 01 04:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 29 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 29 | 64 | 64
|
||||
Sun Jan 01 04:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 87 | |
|
||||
Mon Jul 02 08:00:00 2018 PDT | 87 | 0 | 0
|
||||
Sun Jan 01 04:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 90 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 90 | 10303.12 | 10303.12
|
||||
(40 rows)
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM conditions
|
||||
GROUP BY 2,1;
|
||||
time_bucket_gapfill | device | first | avg
|
||||
------------------------------+--------+----------+----------
|
||||
Sun Jan 01 04:00:00 2017 PST | 1 | 1.2 | 1.2
|
||||
Sun Jan 01 07:00:00 2017 PST | 1 | 7.3 | 7.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 1 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 2 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 2 | |
|
||||
Mon Jan 02 07:00:00 2017 PST | 2 | 0.23 | 0.23
|
||||
Sun Jan 01 04:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 3 | 4.3 | 4.3
|
||||
Sun Jan 01 10:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 3 | |
|
||||
Sun Jan 01 04:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 13 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 13 | |
|
||||
Sun Jul 01 05:00:00 2018 PDT | 13 | 3.1 | 3.1
|
||||
Sun Jan 01 04:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 29 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 29 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 29 | 64 | 64
|
||||
Sun Jan 01 04:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 87 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 87 | |
|
||||
Mon Jul 02 08:00:00 2018 PDT | 87 | 0 | 0
|
||||
Sun Jan 01 04:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 07:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 10:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 13:00:00 2017 PST | 90 | |
|
||||
Sun Jan 01 16:00:00 2017 PST | 90 | |
|
||||
Sun Jul 01 08:00:00 2018 PDT | 90 | 10303.12 | 10303.12
|
||||
(40 rows)
|
||||
|
||||
SELECT
|
||||
time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
lag(min(time)) OVER ()
|
||||
FROM conditions
|
||||
GROUP BY 1;
|
||||
time_bucket_gapfill | lag
|
||||
------------------------------+------------------------------
|
||||
Sun Jan 01 04:00:00 2017 PST |
|
||||
Sun Jan 01 07:00:00 2017 PST | Sun Jan 01 06:01:00 2017 PST
|
||||
Sun Jan 01 10:00:00 2017 PST | Sun Jan 01 08:01:00 2017 PST
|
||||
Sun Jan 01 13:00:00 2017 PST |
|
||||
Sun Jan 01 16:00:00 2017 PST |
|
||||
Mon Jan 02 07:00:00 2017 PST |
|
||||
Sun Jul 01 05:00:00 2018 PDT | Mon Jan 02 08:01:00 2017 PST
|
||||
Sun Jul 01 08:00:00 2018 PDT | Sun Jul 01 06:01:00 2018 PDT
|
||||
Mon Jul 02 08:00:00 2018 PDT | Sun Jul 01 08:01:00 2018 PDT
|
||||
(9 rows)
|
||||
|
||||
\set ECHO errors
|
||||
node_name | host | port | database | node_created | database_created | extension_created
|
||||
----------------+-----------+-------+----------------+--------------+------------------+-------------------
|
||||
dist_gapfill_1 | localhost | 55432 | dist_gapfill_1 | t | t | t
|
||||
(1 row)
|
||||
|
||||
node_name | host | port | database | node_created | database_created | extension_created
|
||||
----------------+-----------+-------+----------------+--------------+------------------+-------------------
|
||||
dist_gapfill_2 | localhost | 55432 | dist_gapfill_2 | t | t | t
|
||||
(1 row)
|
||||
|
||||
node_name | host | port | database | node_created | database_created | extension_created
|
||||
----------------+-----------+-------+----------------+--------------+------------------+-------------------
|
||||
dist_gapfill_3 | localhost | 55432 | dist_gapfill_3 | t | t | t
|
||||
(1 row)
|
||||
|
||||
hypertable_id | schema_name | table_name | created
|
||||
---------------+-------------+------------+---------
|
||||
2 | public | conditions | t
|
||||
(1 row)
|
||||
|
||||
delete_data_node
|
||||
------------------
|
||||
t
|
||||
(1 row)
|
||||
|
||||
delete_data_node
|
||||
------------------
|
||||
t
|
||||
(1 row)
|
||||
|
||||
delete_data_node
|
||||
------------------
|
||||
t
|
||||
(1 row)
|
||||
|
||||
:DIFF_CMD_PARTITIONWISE_OFF
|
||||
:DIFF_CMD_PARTITIONWISE_ON
|
@ -10,6 +10,7 @@ set(TEST_FILES
|
||||
continuous_aggs_refresh.sql
|
||||
continuous_aggs_watermark.sql
|
||||
dist_views.sql
|
||||
dist_gapfill.sql
|
||||
gapfill.sql
|
||||
partialize_finalize.sql
|
||||
)
|
||||
|
@ -67,50 +67,6 @@ SELECT * FROM disttable ORDER BY time;
|
||||
SELECT * FROM show_chunks('disttable');
|
||||
SELECT * FROM test.remote_exec(NULL, $$ SELECT show_chunks('disttable'); $$);
|
||||
|
||||
-- Simple tests of time_bucket_gapfill
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-02 18:00'),
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1;
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1,2;
|
||||
SELECT
|
||||
time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
lag(min(time)) OVER ()
|
||||
FROM disttable
|
||||
GROUP BY 1;
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 2,1;
|
||||
-- Test the same queries with enabled partitionwise aggregate
|
||||
SET enable_partitionwise_aggregate = 'on';
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-02 18:00'),
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1;
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 1,2;
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM disttable
|
||||
GROUP BY 2,1;
|
||||
SET enable_partitionwise_aggregate = 'off';
|
||||
|
||||
-- Ensure that move_chunk() and reorder_chunk() functions cannot be used
|
||||
-- with distributed hypertable
|
||||
SET ROLE TO DEFAULT;
|
||||
|
103
tsl/test/sql/dist_gapfill.sql
Normal file
103
tsl/test/sql/dist_gapfill.sql
Normal file
@ -0,0 +1,103 @@
|
||||
-- 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.
|
||||
|
||||
\set ECHO errors
|
||||
|
||||
\set TEST_BASE_NAME dist_gapfill
|
||||
\set DATA_NODE_1 :TEST_BASE_NAME _1
|
||||
\set DATA_NODE_2 :TEST_BASE_NAME _2
|
||||
\set DATA_NODE_3 :TEST_BASE_NAME _3
|
||||
SELECT format('include/%s_query.sql', :'TEST_BASE_NAME') AS "TEST_QUERY_NAME",
|
||||
format('%s/results/%s_singlenode.out', :'TEST_OUTPUT_DIR', :'TEST_BASE_NAME') AS "TEST_SINGLENODE",
|
||||
format('%s/results/%s_partitionwise_off.out', :'TEST_OUTPUT_DIR', :'TEST_BASE_NAME') AS "TEST_PARTITIONWISE_OFF",
|
||||
format('%s/results/%s_partitionwise_on.out', :'TEST_OUTPUT_DIR', :'TEST_BASE_NAME') AS "TEST_PARTITIONWISE_ON" \gset
|
||||
|
||||
SELECT format('\! diff %s %s', :'TEST_SINGLENODE', :'TEST_PARTITIONWISE_OFF') AS "DIFF_CMD_PARTITIONWISE_OFF",
|
||||
format('\! diff %s %s', :'TEST_SINGLENODE', :'TEST_PARTITIONWISE_ON') AS "DIFF_CMD_PARTITIONWISE_ON" \gset
|
||||
|
||||
-- Non-distributed hypertable
|
||||
CREATE TABLE conditions(
|
||||
time timestamptz NOT NULL,
|
||||
device int,
|
||||
value float
|
||||
);
|
||||
SELECT * FROM create_hypertable('conditions', 'time');
|
||||
INSERT INTO conditions VALUES
|
||||
('2017-01-01 06:01', 1, 1.2),
|
||||
('2017-01-01 09:11', 3, 4.3),
|
||||
('2017-01-01 08:01', 1, 7.3),
|
||||
('2017-01-02 08:01', 2, 0.23),
|
||||
('2018-07-02 08:01', 87, 0.0),
|
||||
('2018-07-01 06:01', 13, 3.1),
|
||||
('2018-07-01 09:11', 90, 10303.12),
|
||||
('2018-07-01 08:01', 29, 64);
|
||||
\set ECHO all
|
||||
\ir :TEST_QUERY_NAME
|
||||
\set ECHO errors
|
||||
\o :TEST_SINGLENODE
|
||||
\ir :TEST_QUERY_NAME
|
||||
\o
|
||||
|
||||
DROP TABLE conditions CASCADE;
|
||||
|
||||
-- Distributed hypertable
|
||||
\c :TEST_DBNAME :ROLE_CLUSTER_SUPERUSER;
|
||||
SET client_min_messages TO ERROR;
|
||||
DROP DATABASE IF EXISTS :DATA_NODE_1;
|
||||
DROP DATABASE IF EXISTS :DATA_NODE_2;
|
||||
DROP DATABASE IF EXISTS :DATA_NODE_3;
|
||||
SELECT * FROM add_data_node(:'DATA_NODE_1', host => 'localhost',
|
||||
database => :'DATA_NODE_1');
|
||||
SELECT * FROM add_data_node(:'DATA_NODE_2', host => 'localhost',
|
||||
database => :'DATA_NODE_2');
|
||||
SELECT * FROM add_data_node(:'DATA_NODE_3', host => 'localhost',
|
||||
database => :'DATA_NODE_3');
|
||||
GRANT USAGE ON FOREIGN SERVER :DATA_NODE_1, :DATA_NODE_2, :DATA_NODE_3 TO PUBLIC;
|
||||
SET ROLE :ROLE_1;
|
||||
SET client_min_messages TO NOTICE;
|
||||
|
||||
CREATE TABLE conditions(
|
||||
time timestamptz NOT NULL,
|
||||
device int,
|
||||
value float
|
||||
);
|
||||
SELECT * FROM create_distributed_hypertable('conditions', 'time', 'device', 3);
|
||||
INSERT INTO conditions VALUES
|
||||
('2017-01-01 06:01', 1, 1.2),
|
||||
('2017-01-01 09:11', 3, 4.3),
|
||||
('2017-01-01 08:01', 1, 7.3),
|
||||
('2017-01-02 08:01', 2, 0.23),
|
||||
('2018-07-02 08:01', 87, 0.0),
|
||||
('2018-07-01 06:01', 13, 3.1),
|
||||
('2018-07-01 09:11', 90, 10303.12),
|
||||
('2018-07-01 08:01', 29, 64);
|
||||
|
||||
SET enable_partitionwise_aggregate = 'off';
|
||||
\o :TEST_PARTITIONWISE_OFF
|
||||
\ir :TEST_QUERY_NAME
|
||||
\o
|
||||
|
||||
SET enable_partitionwise_aggregate = 'on';
|
||||
\o :TEST_PARTITIONWISE_ON
|
||||
\ir :TEST_QUERY_NAME
|
||||
\o
|
||||
|
||||
SET enable_partitionwise_aggregate = 'off';
|
||||
|
||||
SET client_min_messages TO ERROR;
|
||||
DROP TABLE conditions CASCADE;
|
||||
\c :TEST_DBNAME :ROLE_CLUSTER_SUPERUSER;
|
||||
SELECT delete_data_node(:'DATA_NODE_1');
|
||||
SELECT delete_data_node(:'DATA_NODE_2');
|
||||
SELECT delete_data_node(:'DATA_NODE_3');
|
||||
DROP DATABASE IF EXISTS :DATA_NODE_1;
|
||||
DROP DATABASE IF EXISTS :DATA_NODE_2;
|
||||
DROP DATABASE IF EXISTS :DATA_NODE_3;
|
||||
SET ROLE :ROLE_1;
|
||||
SET client_min_messages TO NOTICE;
|
||||
|
||||
\set ECHO all
|
||||
|
||||
:DIFF_CMD_PARTITIONWISE_OFF
|
||||
:DIFF_CMD_PARTITIONWISE_ON
|
29
tsl/test/sql/include/dist_gapfill_query.sql
Normal file
29
tsl/test/sql/include/dist_gapfill_query.sql
Normal file
@ -0,0 +1,29 @@
|
||||
-- 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.
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-02 18:00'),
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM conditions
|
||||
GROUP BY 1;
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM conditions
|
||||
GROUP BY 1,2;
|
||||
|
||||
SELECT time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
device,
|
||||
first(value, time),
|
||||
avg(value)
|
||||
FROM conditions
|
||||
GROUP BY 2,1;
|
||||
|
||||
SELECT
|
||||
time_bucket_gapfill('3 hours', time, '2017-01-01 06:00', '2017-01-01 18:00'),
|
||||
lag(min(time)) OVER ()
|
||||
FROM conditions
|
||||
GROUP BY 1;
|
Loading…
x
Reference in New Issue
Block a user