Re: Scanning all partition when more than 100 items in "where id in ()" clause

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Scanning all partition when more than 100 items in "where id in ()" clause
Дата
Msg-id 19851.1532642641@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Scanning all partition when more than 100 items in "where id in ()" clause  (Soni M <diptatapa@gmail.com>)
Ответы Re: Scanning all partition when more than 100 items in "where id in()" clause  (Stephen Frost <sfrost@snowman.net>)
Список pgsql-bugs
Soni M <diptatapa@gmail.com> writes:
> Hello All, I think I found bug here. Postgres 9.6.9 on Red Hat Enterprise
> Linux Server release 7.5 (Maipo).

I think it's a consequence of the limitation in predtest.c that it won't
try to do predicate proofs using ScalarArrayOps with more than 100 array
entries:

/*
 * Proof attempts involving large arrays in ScalarArrayOpExpr nodes are
 * likely to require O(N^2) time, and more often than not fail anyway.
 * So we set an arbitrary limit on the number of array elements that
 * we will allow to be treated as an AND or OR clause.
 * XXX is it worth exposing this as a GUC knob?
 */
#define MAX_SAOP_ARRAY_SIZE        100

Not a bug, but a tradeoff.  You'd be unhappy if the planner spent longer
devising the plan than it saved to eliminate the extra partitions.

            regards, tom lane


В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #15300: "do you want the application "postgres" to accept incoming network connections" dialog box madness
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #15301: Scanning all partition when more than 100 items in "where id in ()" clause