Sylvain Rabot <sylv...@abstraction.fr> writes:
> On Postgres 9.1beta2 when i run this code the first select will use
> contraint exclusion but the second will not.
> This apparently has something to do with the size of the array
> returned by the fake immutable function.

See predtest.c:

/*
 * 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

While you could possibly increase that, I think that your approach is
bound to have terrible performance anyway.

                        regards, tom lane

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to