Запрос к разделенной таблице на PostgreSQL - PullRequest
1 голос
/ 26 февраля 2020

У меня есть таблица, разделенная по годам. С этим запросом:

select *
from myTable
where year between '2018' and '2020'

план запроса хорош, используются только 2018,2019,2020 разделов.

Но с этим запросом

select *
from myTable
where year between '2018' and extract(year from now())::text

разделов 2021 и 2022 появляются в плане запроса, почему?

1 Ответ

1 голос
/ 26 февраля 2020

В PostgreSQL v10, отсечение разделов (удаление ненужных разделов) может происходить только во время планирования запроса, но в это время значение extract(year from now())::text неизвестно.

Если вы используете PostgreSQL v11 или новее, ваш запрос должен работать так, как ожидалось.

...