run the following sql command through client and the PostgreSQL database process will crash:
CREATE TABLE v0 ( v4 INT , v3 INT UNIQUE , v2 INT , v1 INT UNIQUE ) ; CREATE OR REPLACE RULE v1 AS ON INSERT TO v0 DO INSTEAD NOTIFY COMPRESSION ; COPY ( SELECT 32 EXCEPT SELECT v3 + 16 FROM v0 ) TO STDOUT CSV HEADER ; WITH v2 AS ( INSERT INTO v0 VALUES ( 0 ) ) DELETE FROM v0 WHERE v3 = - - - - 48 ;
asan report:
AddressSanitizer:DEADLYSIGNAL================================================================= ==453870==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008
Seems the Query from RewriteRule->actions may have a NULL jointree, and that triggers the SEGV in replace_empty_jointree().