| От | Tom Lane |
|---|---|
| Тема | Re: Removing Functionally Dependent GROUP BY Columns |
| Дата | |
| Msg-id | 15746.1453563560@sss.pgh.pa.us обсуждение |
| Ответ на | Re: Removing Functionally Dependent GROUP BY Columns (Julien Rouhaud <julien.rouhaud@dalibo.com>) |
| Список | pgsql-hackers |
Julien Rouhaud <julien.rouhaud@dalibo.com> writes:
> I wonder if in remove_useless_groupby_columns(), in the foreach loop you
> could change the
> + if (bms_subset_compare(pkattnos, relattnos) == BMS_SUBSET1)
> + {
> by something like
> + if (bms_num_members(relattnos) <= bms_num_members(pkattnos))
> + continue;
> +
> + if (bms_is_subset(pkattnos, relattnos))
> + {
> which may be cheaper.
FWIW, I really doubt that would be cheaper. The various flavors of
subset comparison are word-at-a-time bitmasking operations, but
bms_num_members has to grovel over individual bits; it's certain to
be more expensive than a subset test.
regards, tom lane
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера