I start looking at the patch, there is a couple of problems with the patch. The
first one is the OID conflict, which I fixed on my machine. The second problem
is assertion failure. I think you have not compiled the PostgreSQL code with
the assertion.
...
postgres=# SELECT *
FROM (projects p1 NORMALIZE projects p2 USING() WITH(t,t)) p_adjusted;
TRAP: FailedAssertion("!(ptr == ((void *)0) || (((const Node*)(ptr))->type) ==
type)", File: "../../../src/include/nodes/nodes.h", Line: 588)
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: 2019-04-02
12:50:09.654 UTC [27550] LOG: server process (PID 27559) was terminated by
signal 6: Aborted
...
Although this patch is WIP, but please avoid mix declaration to avoid the
compiler warning message.
...
joinpath.c:993:3: warning: ISO C90 forbids mixed declarations and code
[-Wdeclaration-after-statement]
PathTarget *target_split = makeNode(PathTarget);
...
I am still looking at the patch.