Request for improvement: Allow to push (t.o).id via GROUP BY ocd.o
От | Eugen Konkov |
---|---|
Тема | Request for improvement: Allow to push (t.o).id via GROUP BY ocd.o |
Дата | |
Msg-id | 189018755.20190712130427@yandex.ru обсуждение исходный текст |
Ответы |
Re: Request for improvement: Allow to push (t.o).id via GROUP BY ocd.o
|
Список | pgsql-hackers |
Hello PostgreSQL-development, something's stopping the planner from being able to deduce that (t.o).id is safe to push through a GROUP BY ocd.o SELECT * FROM ( SELECT sum( t.group_suma ) OVER( PARTITION BY t.id ) AS total_suma, -- sum( t.group_suma ) OVER( PARTITION BY (t.o).id ) AS total_suma, -- For any WHERE this takes2700ms * FROM ( SELECT sum( ocd.item_cost ) AS group_cost, sum( ocd.item_suma ) AS group_suma, max( (ocd.ic).consumed ) AS consumed, (ocd.ic).consumed_period, ocd.o, (ocd.o).id FROM order_cost_details( tstzrange( '2019-04-01', '2019-05-01' ) ) ocd GROUP BY ocd.o, (ocd.o).id, (ocd.ic).consumed_period ) t ) t WHERE t.id = 6154 AND t.consumed_period @> '2019-04-01'::timestamptz -- This takes 2ms -- WHERE (t.o).id = 6154 AND t.consumed_period @> '2019-04-01'::timestamptz -- This takes 2700ms More info is here: https://stackoverflow.com/q/57003113/4632019 -- Best regards, Eugen Konkov
В списке pgsql-hackers по дате отправления: