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.