1️⃣ Плевать я хотел на тип данных
Дано:
1. Таблица партицированная по полю с типом timestamp
PARTITION BY RANGE (date)
(
START ('2025-01-01'::timestamp) INCLUSIVE
END ('2026-01-01'::timestamp) EXCLUSIVE
EVERY (INTERVAL '1 day')
)
При таком отборе дат, оптимизатор отказывается делать Partition Selector:
wh
ere date >= date_trunc('month', date)
ps: date_trunc('month', date) не меняет тип, он остается timestampНо вот так, отлично работает 🤷♂️:
where
date >= date_trunc('month', date)::date
2️⃣ Упс, это вьюхаДано:
1. Вьюха, объединяет через union all несколько таблиц
2. Каждая таблица партицирована по одному и тому же полю, допустим date
Partition Selector не работает:
where da
te >= '2025-01-01'::dateтак, отлично взлетает:
and data < '2025-02-01'::date
Но вот
where date
between '2025-01-01'::date and '2025-02-01'::dateна исходных таблицах оба варианта работают идентично, где логика, GPORCA?
При этом,
#work #case #greenplum