Не удается понять поведение предложения where в Presto SQL при выборе зашифрованного столбца

#sql #query-optimization #partitioning #presto

Вопрос:

У меня есть таблица, в которой также есть несколько зашифрованных столбцов. Таблица разделена на столбцы года, месяца и дня. Чтобы прочитать данные за последние 31 день, я использую приведенный ниже фрагмент.

 concat(cast(year as varchar),'-', 
case when length(cast(month as varchar)) > 1 then cast(month as varchar) 
else concat('0',cast(month as varchar)) end,'-', 
case when length(cast(day as varchar)) > 1 then cast(day as varchar) 
else concat('0',cast(day as varchar)) end) 

between (to_date(cast('${day_0}' as date) - interval '31' day)) and '${day_0}'

 

Это предложение работает нормально, пока я не выберу один из зашифрованных столбцов. При выборе любого зашифрованного столбца анализ объяснения показывает, что фактически нет раздела, и все данные считываются.

Мне нужна помощь в понимании этого момента. В чем проблема, возникающая при выборе зашифрованных столбцов? Как они изменяют поведение предложения where?