pgsql: Make a marginal performance improvement in predicate_implied_by

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Make a marginal performance improvement in predicate_implied_by
Date: 2009-05-10 22:45:28
Message-ID: 20090510224528.393E4754067@cvs.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Make a marginal performance improvement in predicate_implied_by and
predicate_refuted_by: if either top-level input is a single-element list,
reduce it to its lone member before proceeding. This avoids
a useless level of AND-recursion within the recursive proof routines.
It's worth doing because, for example, if the clause is a 100-element
list and the predicate is a 1-element list then we'd otherwise strip
the predicate's list structure 100 times as we iterate through the clause.
It's only needed at top level because there won't be any trivial ANDs below
that --- this situation is an artifact of the decision to represent even
single-item conditions as Lists in the "implicit AND" format, and that format
is only used at the top level of any predicate or restriction condition.

Modified Files:
--------------
pgsql/src/backend/optimizer/util:
predtest.c (r1.24 -> r1.25)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/predtest.c?r1=1.24&r2=1.25)

Browse pgsql-committers by date

  From Date Subject
Next Message User Bmomjian 2009-05-11 01:48:41 pg-migrator - pg_migrator: Use -d/-D for data directory, -b/-B for
Previous Message Tom Lane 2009-05-10 02:51:44 pgsql: Adjust pg_dumpall so that it emits ENCODING, LC_COLLATE, and