* I changed the grammar by moving the NOT NULL to the column options,
and removing the IsNotNull production. It wasn't nice that "NOT NULL
DEFAULT 0" was not accepted, which it is with the new representation.
* The tuple that's returned is natively a TupleTableSlot inside the
table builder, not directly a HeapTuple. That stuff was ugly and wasn't
using the proper abstraction anyway.
* I changed the signatures of the methods so that they receive
TableExprState, and restructured the "opaque" data to be inside
TableExprState. Now we don't need to have things such as the tupdesc or
the input functions be repeated in the opaque struct. Instead they
belong to the TableExprState and the methods can read them from there.
I managed to break the case with no COLUMNS. Probably related to the
tupdesc changes. It now crashes the regression test. Too tired to
debug now; care to take a look? The other stuff seems to run fine,
though of course the regression test crashes in the middle, so perhaps
there are other problems.
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
In response to
pgsql-hackers by date
|Next:||From: Michael Paquier||Date: 2016-12-07 07:24:06|
|Subject: Re: Assignment of valid collation for SET operations on
queries with UNKNOWN types.|
|Previous:||From: Michael Paquier||Date: 2016-12-07 07:05:50|
|Subject: Re: Quorum commit for multiple synchronous replication.|