pgsql: Rethink the order of expression preprocessing:

From: tgl(at)svr1(dot)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Rethink the order of expression preprocessing:
Date: 2005-03-28 00:58:27
Message-ID: 20050328005827.F05D153857@svr1.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Rethink the order of expression preprocessing: eval_const_expressions
really ought to run before canonicalize_qual, because it can now produce
forms that canonicalize_qual knows how to improve (eg, NOT clauses).
Also, because eval_const_expressions already knows about flattening
nested ANDs and ORs into N-argument form, the initial flatten_andors
pass in canonicalize_qual is now completely redundant and can be
removed. This doesn't save a whole lot of code, but the time and
palloc traffic eliminated is a useful gain on large expression trees.

Modified Files:
--------------
pgsql/src/backend/optimizer/path:
indxpath.c (r1.171 -> r1.172)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/path/indxpath.c.diff?r1=1.171&r2=1.172)
pgsql/src/backend/optimizer/plan:
planner.c (r1.180 -> r1.181)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planner.c.diff?r1=1.180&r2=1.181)
pgsql/src/backend/optimizer/prep:
prepqual.c (r1.48 -> r1.49)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/prep/prepqual.c.diff?r1=1.48&r2=1.49)
pgsql/src/backend/optimizer/util:
clauses.c (r1.189 -> r1.190)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.189&r2=1.190)
restrictinfo.c (r1.31 -> r1.32)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/restrictinfo.c.diff?r1=1.31&r2=1.32)
pgsql/src/backend/utils/cache:
relcache.c (r1.216 -> r1.217)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c.diff?r1=1.216&r2=1.217)
pgsql/src/include/optimizer:
prep.h (r1.48 -> r1.49)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/optimizer/prep.h.diff?r1=1.48&r2=1.49)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2005-03-28 01:50:35 pgsql: Remove dead push/pop rollback code.
Previous Message Tom Lane 2005-03-27 23:53:07 pgsql: First steps towards index scans with heap access decoupled from