Rod Taylor <rbt@rbt.ca> writes:
> 3. On initial pass, CoerceToDomain will have a 'raw' expression tree
> (simple arg of data to coerce). After passing through
> ExecCoerceTypeConstraints a 'cooked' expression tree will contain the
> constraint tests.
Uh ... why? The cooked tree should be stored in pg_constraint, no?
What's the point of redoing the parse analysis phase?
BTW, this should be a lot easier to do cleanly (ie, without memory
leaks) now that there's a notion of expression state trees. You can
attach the information loaded from pg_constraint to the expression state
node for the CoerceToDomain node (being careful to copy it into
estate->es_query_cxt). Maybe that was already apparent to you ...
regards, tom lane