Thread: Assertion failure in new outer/semi/anti join code
The following query causes an assertion failure on CVS head: SELECT * FROM (SELECT 1 AS i) AS a WHERE NOT EXISTS (SELECT 1 WHERE 1 <> i); TRAP: FailedAssertion("!(!bms_is_empty(min_righthand))", File: "initsplan.c", Line: 685) Looks like it's assuming there's at least one relation on each side of the join. Incidentally originally triggered with a VALUES clause but I think by the point the code runs that distinction is long gone. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's Slony Replication support!
Gregory Stark <stark@enterprisedb.com> writes: > The following query causes an assertion failure on CVS head: > SELECT * FROM (SELECT 1 AS i) AS a WHERE NOT EXISTS (SELECT 1 WHERE 1 <> i); Fixed, thanks for the report. > Looks like it's assuming there's at least one relation on each side of the > join. Yeah. I don't think we can remove that assumption easily; best to just not try to optimize this case. regards, tom lane