Opened 5 years ago

Closed 5 years ago

#4394 closed defect (fixed)

FULL JOIN on geometry = equality

Reported by: komzpa Owned by: pramsey
Priority: medium Milestone: PostGIS 3.0.0
Component: postgis Version: master
Keywords: Cc:

Description

root=# create table aaa  as (select 'POINT(0 0)':: geometry as geom);
SELECT 1
root=# select * from aaa a full join aaa b on a.geom = b.geom;
ERROR:  FULL JOIN is only supported with merge-joinable or hash-joinable join conditions
root=# select * from aaa a full join aaa b on a.geom::bytea = b.geom::bytea;
                    geom                    |                    geom
--------------------------------------------+--------------------------------------------
 010100000000000000000000000000000000000000 | 010100000000000000000000000000000000000000
(1 row)

Change History (6)

comment:1 by komzpa, 5 years ago

Resolution: fixed
Status: newclosed

In 17557:

Allow FULL OUTER JOIN on geometry.

Closes #4394
Closes https://github.com/postgis/postgis/pull/409

comment:2 by robe, 5 years ago

Milestone: PostGIS 2.5.3PostGIS 3.0.0
Version: 2.4.xtrunk

comment:3 by robe, 5 years ago

Resolution: fixed
Status: closedreopened

comment:4 by robe, 5 years ago

okay I'm a bit disappointed the more common case of

 with mj as (select 'POINT(0 0)'::geometry geom) select '#4394', b.geom As b_geom, a.geom As a_geom from mj a full join mj b on ST_Intersects(a.geom, b.geom);

Does not work. Could it work? or is this the best we can do.

comment:5 by robe, 5 years ago

I guess if we release this we should note it only works for equality?

comment:6 by robe, 5 years ago

Resolution: fixed
Status: reopenedclosed
Summary: FULL JOIN on geometry not supportedFULL JOIN on geometry = equality
Note: See TracTickets for help on using tickets.