window_functions: 'ORDER BY time' when using lag(time) & coordinator_plan

pull/2871/head
Philip Dubé 2019-07-26 00:12:28 +00:00
parent 7992077fd9
commit 0d9e5bde9c
3 changed files with 22 additions and 40 deletions

View File

@ -302,7 +302,7 @@ SELECT
COUNT(*) OVER (PARTITION BY user_id, user_id + 1), COUNT(*) OVER (PARTITION BY user_id, user_id + 1),
rank() OVER (PARTITION BY user_id) as cnt1, rank() OVER (PARTITION BY user_id) as cnt1,
COUNT(*) OVER (PARTITION BY user_id, abs(value_1 - value_2)) as cnt2, COUNT(*) OVER (PARTITION BY user_id, abs(value_1 - value_2)) as cnt2,
date_trunc('min', lag(time) OVER (PARTITION BY user_id)) as datee, date_trunc('min', lag(time) OVER (PARTITION BY user_id ORDER BY time)) as datee,
rank() OVER my_win as rnnk, rank() OVER my_win as rnnk,
avg(CASE avg(CASE
WHEN user_id > 4 WHEN user_id > 4
@ -759,6 +759,7 @@ ORDER BY
1 | 3.2857142857142857 | 1.00000000000000000000 1 | 3.2857142857142857 | 1.00000000000000000000
(6 rows) (6 rows)
SELECT coordinator_plan($Q$
EXPLAIN (COSTS FALSE) EXPLAIN (COSTS FALSE)
SELECT SELECT
user_id, user_id,
@ -770,27 +771,16 @@ GROUP BY
1 1
ORDER BY ORDER BY
3 DESC, 2 DESC, 1 DESC; 3 DESC, 2 DESC, 1 DESC;
QUERY PLAN $Q$);
----------------------------------------------------------------------------------------------------------------------------------- coordinator_plan
------------------------------------------------------------------------------------
Sort Sort
Sort Key: remote_scan.avg_1 DESC, remote_scan.avg DESC, remote_scan.user_id DESC Sort Key: remote_scan.avg_1 DESC, remote_scan.avg DESC, remote_scan.user_id DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.user_id Group Key: remote_scan.user_id
-> Custom Scan (Citus Real-Time) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: One of 4 (6 rows)
-> Task
Node: host=localhost port=57637 dbname=regression
-> WindowAgg
-> Sort
Sort Key: users_table.user_id, (min(users_table.user_id)), (avg(users_table.value_1))
-> WindowAgg
-> Sort
Sort Key: users_table.user_id, (max(users_table.user_id)), (min(users_table.value_2))
-> HashAggregate
Group Key: users_table.user_id
-> Seq Scan on users_table_1400256 users_table
(18 rows)
SELECT SELECT
user_id, user_id,
@ -963,7 +953,7 @@ ORDER BY user_id, avg(value_1) DESC;
Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.user_id, remote_scan.worker_column_5 Group Key: remote_scan.user_id, remote_scan.worker_column_5
-> Custom Scan (Citus Real-Time) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: One of 4 Tasks Shown: One of 4
-> Task -> Task
@ -1039,7 +1029,7 @@ LIMIT 5;
Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.user_id, remote_scan.worker_column_5 Group Key: remote_scan.user_id, remote_scan.worker_column_5
-> Custom Scan (Citus Real-Time) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: One of 4 Tasks Shown: One of 4
-> Task -> Task
@ -1069,7 +1059,7 @@ LIMIT 5;
Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.user_id, remote_scan.worker_column_5 Group Key: remote_scan.user_id, remote_scan.worker_column_5
-> Custom Scan (Citus Real-Time) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: One of 4 Tasks Shown: One of 4
-> Task -> Task
@ -1099,7 +1089,7 @@ LIMIT 5;
Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.user_id, remote_scan.worker_column_5 Group Key: remote_scan.user_id, remote_scan.worker_column_5
-> Custom Scan (Citus Real-Time) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: One of 4 Tasks Shown: One of 4
-> Task -> Task
@ -1129,7 +1119,7 @@ LIMIT 5;
Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC Sort Key: remote_scan.user_id, (pg_catalog.sum(((pg_catalog.sum(remote_scan.avg) / pg_catalog.sum(remote_scan.avg_1)))) / pg_catalog.sum(remote_scan.rank)) DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.user_id, remote_scan.worker_column_5 Group Key: remote_scan.user_id, remote_scan.worker_column_5
-> Custom Scan (Citus Real-Time) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: One of 4 Tasks Shown: One of 4
-> Task -> Task

View File

@ -302,7 +302,7 @@ SELECT
COUNT(*) OVER (PARTITION BY user_id, user_id + 1), COUNT(*) OVER (PARTITION BY user_id, user_id + 1),
rank() OVER (PARTITION BY user_id) as cnt1, rank() OVER (PARTITION BY user_id) as cnt1,
COUNT(*) OVER (PARTITION BY user_id, abs(value_1 - value_2)) as cnt2, COUNT(*) OVER (PARTITION BY user_id, abs(value_1 - value_2)) as cnt2,
date_trunc('min', lag(time) OVER (PARTITION BY user_id)) as datee, date_trunc('min', lag(time) OVER (PARTITION BY user_id ORDER BY time)) as datee,
rank() OVER my_win as rnnk, rank() OVER my_win as rnnk,
avg(CASE avg(CASE
WHEN user_id > 4 WHEN user_id > 4
@ -558,6 +558,7 @@ ORDER BY
1 | 3.2857142857142857 | 1.00000000000000000000 1 | 3.2857142857142857 | 1.00000000000000000000
(6 rows) (6 rows)
SELECT coordinator_plan($Q$
EXPLAIN (COSTS FALSE) EXPLAIN (COSTS FALSE)
SELECT SELECT
user_id, user_id,
@ -569,27 +570,16 @@ GROUP BY
1 1
ORDER BY ORDER BY
3 DESC, 2 DESC, 1 DESC; 3 DESC, 2 DESC, 1 DESC;
QUERY PLAN $Q$);
----------------------------------------------------------------------------------------------------------------------------------- coordinator_plan
------------------------------------------------------------------------------------
Sort Sort
Sort Key: remote_scan.avg_1 DESC, remote_scan.avg DESC, remote_scan.user_id DESC Sort Key: remote_scan.avg_1 DESC, remote_scan.avg DESC, remote_scan.user_id DESC
-> HashAggregate -> HashAggregate
Group Key: remote_scan.user_id Group Key: remote_scan.user_id
-> Custom Scan (Citus Real-Time) -> Custom Scan (Citus Adaptive)
Task Count: 4 Task Count: 4
Tasks Shown: One of 4 (6 rows)
-> Task
Node: host=localhost port=57637 dbname=regression
-> WindowAgg
-> Sort
Sort Key: users_table.user_id, (min(users_table.user_id)), (avg(users_table.value_1))
-> WindowAgg
-> Sort
Sort Key: users_table.user_id, (max(users_table.user_id)), (min(users_table.value_2))
-> HashAggregate
Group Key: users_table.user_id
-> Seq Scan on users_table_1400256 users_table
(18 rows)
SELECT SELECT
user_id, user_id,

View File

@ -170,7 +170,7 @@ SELECT
COUNT(*) OVER (PARTITION BY user_id, user_id + 1), COUNT(*) OVER (PARTITION BY user_id, user_id + 1),
rank() OVER (PARTITION BY user_id) as cnt1, rank() OVER (PARTITION BY user_id) as cnt1,
COUNT(*) OVER (PARTITION BY user_id, abs(value_1 - value_2)) as cnt2, COUNT(*) OVER (PARTITION BY user_id, abs(value_1 - value_2)) as cnt2,
date_trunc('min', lag(time) OVER (PARTITION BY user_id)) as datee, date_trunc('min', lag(time) OVER (PARTITION BY user_id ORDER BY time)) as datee,
rank() OVER my_win as rnnk, rank() OVER my_win as rnnk,
avg(CASE avg(CASE
WHEN user_id > 4 WHEN user_id > 4
@ -336,6 +336,7 @@ GROUP BY
ORDER BY ORDER BY
3 DESC, 2 DESC, 1 DESC; 3 DESC, 2 DESC, 1 DESC;
SELECT coordinator_plan($Q$
EXPLAIN (COSTS FALSE) EXPLAIN (COSTS FALSE)
SELECT SELECT
user_id, user_id,
@ -347,6 +348,7 @@ GROUP BY
1 1
ORDER BY ORDER BY
3 DESC, 2 DESC, 1 DESC; 3 DESC, 2 DESC, 1 DESC;
$Q$);
SELECT SELECT
user_id, user_id,