Opened 9 months ago

Last modified 6 months ago

#5580 closed defect

ST_3DIntersects fails when encouting a GEOMETRYCOLLECTION with an empty geometry — at Version 7

Reported by: Wenjing Owned by: pramsey
Priority: high Milestone: PostGIS 3.3.6
Component: postgis Version: 3.4.x
Keywords: Cc:

Description (last modified by Wenjing)

Consider this query:

SELECT
ST_3DIntersects(a1, a2)
FROM ST_GeomFromText('GEOMETRYCOLLECTION Z (POINT Z EMPTY, POINT Z (0 0 0))') As a1
, ST_GeomFromText('POINT Z (0 0 0)') As a2;
--expected{t}; actual{f}

Postgis produces a result of false, but I expected it to produce true. I think this is a bug, due to the following 3 reasons:

  1. ST_3DIntersection(a1, a2) returns POINT Z (0 0 0). So the expected result of 3DIntersects is true.
  1. Considering the 2D version function, ST_Intersects(a1, a2) returns true here:
    SELECT
    ST_Intersects(a1, a2)
    FROM ST_GeomFromText('GEOMETRYCOLLECTION(POINT EMPTY, POINT (0 0))') As a1
    , ST_GeomFromText('POINT (0 0)') As a2;
    --expected{t}
    
  1. Making the empty point position behind POINT Z (0 0 0), ST_3DIntersection(a1, a2) returns true.

Change History (7)

comment:1 by Wenjing, 9 months ago

Description: modified (diff)
Priority: mediumhigh

comment:2 by Wenjing, 9 months ago

Description: modified (diff)

comment:3 by Wenjing, 9 months ago

Summary: When encounting an empty geometry, potential bug in the ST_3DIntersects functionST_3DIntersects fails when encouting a GEOMETRYCOLLECTION with an empty geometry

comment:4 by Wenjing, 9 months ago

The potential solution is to add some same condition detection in the ST_Intersects function to ST_3DIntersects.🤔

comment:5 by Wenjing, 9 months ago

Description: modified (diff)

comment:6 by Wenjing, 9 months ago

Description: modified (diff)

comment:7 by Wenjing, 9 months ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.