From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Friday, August 24, 2012 7:46 PM
Amit Kapila <amit.kapila@huawei.com> writes:
> From: pgsql-bugs-owner@postgresql.org
> [mailto:pgsql-bugs-owner@postgresql.org] On Behalf Of Tom Lane
>>> None of the system columns are set at the time check constraints are
>>> checked.
>> Is there any problem if set tableOID before calling ExecConstarints()?
> Well, possibly we could kluge things to make that particular case work,
> but if someone expects that to be valid then why not oid, ctid, xmin,
> etc?
Initially, I thought of saying like that but the same is done in
heap_prepare_insert()
So doing it 2 times doesn't make sense and if we move them out then all
places from
where heap_insert gets called, we have to do it like that. However why I
have asked to
set tableOID, as for it, already functions CopyFrom and AtRewriteTable
does it(set
tableOid before Constraints check).
> And more to the point, what's the value of examining tableoid in
> a check constraint? The constraint is attached to a particular table,
> so the tableoid would be a constant for it anyway.
Here what you are suggesting if I understood correctly is while defining
such
constraints make sure its not allowed, because once defined, during
execution we might
not be able to identify. Please correct me if I have misunderstood?
With Regards,
Amit Kapila.