I start looking at the patch, there is a couple of problems with the patch. The first one is the OID conflict, which I
fixedon 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.