Tom Lane wrote:
>
> Don Baccus <dhogaza@pacifier.com> writes:
> > However, heap_getattr still won't see the default since it simply
> > checks to see of the attribute number falls off the end of the
> > tuple and then returns null.
>
> Right.
>
> > There's no provision for then pulling out the default value and
> > returning it instead.
>
> Would it even be possible to do that? I'm not sure that heap_getattr
> has any way to find the default. It only has a TupleDesc, not a
> reference to the relation itself...
but could it not return a special value, say COLUMN_DEFAULT, that upper
levels know to replace with the real default. Of course it get's funny if
if the default is nextval('myseq') or CURRENT_TIME.
another way to approach the whole problem is to have something like
generation_id in each tuple that tells which version of TupleDesc applies
to this tuple, but it seems to complicate things even further.
-----------------
Hannu