The following bug has been logged online:
Bug reference: 5263
Logged by: Jozsef Szalay
Email address: jszalay@storediq.com
PostgreSQL version: 8.4.2
Operating system: Windows, Linux (Fedora/CentOS)
Description: Query execution fails with "ERROR: FULL JOIN is only
supported with merge-joinable join conditions"
Details:
Create a table:
CREATE TABLE test
(
id integer,
description character varying,
CONSTRAINT test_pkey PRIMARY KEY (id)
);
Execute the following query:
SELECT *
FROM (SELECT id, 0 AS value
FROM test
WHERE description = 'abc'
) t1
FULL OUTER JOIN
(SELECT id, 1 AS value
FROM test
WHERE description = 'def'
) t2 USING (id, value);
You'll get the "ERROR: FULL JOIN is only supported with merge-joinable join
conditions"
This used to work with 8.3.7 (and before).
I can make the query work by adding an "ORDER BY id, value" clause to each
sub-query or if I use the same constant (e.g. "0") as value in both
sub-queries.