Opened 13 years ago

Closed 13 years ago

#688 closed defect (fixed)

ST_Contains POLYGON Empty with real linestring crash

Reported by: robe Owned by: pramsey
Priority: medium Milestone: PostGIS 2.0.0
Component: postgis Version: master
Keywords: Cc:

Description (last modified by robe)

SELECT 
ST_Contains(ST_GeomFromText('LINESTRING(-10 50,50 -10)',4326), ST_GeomFromText('POLYGON EMPTY',4326));

The above doesn't always crash the first time but does after second or third call. — the actual query that crashed — the above is a distilled subset but there may be more monsters lurking in this query

SELECT ST_Contains(foo1.the_geom, foo2.the_geom) As result, 
ST_AsText(foo1.the_geom) As ref1_geom, ST_AsText(foo2.the_geom) As ref2_geom
	FROM ((SELECT ST_MakeLine(ST_SetSRID(ST_MakePointM(i,j,m),4326),ST_SetSRID(ST_MakePointM(j,i,m),4326))  As the_geom
		FROM generate_series(-10,50,10) As i
			CROSS JOIN generate_series(50,70, 20) As j
			CROSS JOIN generate_series(1,2) As m
			WHERE NOT(i = j)
			ORDER BY i, j, m, i*j*m)) As foo1 CROSS JOIN ((SELECT ST_GeomFromText('GEOMETRYCOLLECTION EMPTY',4326) As the_geom
			UNION ALL SELECT ST_GeomFromText('POLYGON EMPTY',4326) As the_geom
			UNION ALL SELECT ST_GeomFromText('POINT EMPTY',4326) As the_geom
			UNION ALL SELECT ST_GeomFromText('MULTIPOINT EMPTY',4326) As the_geom
			UNION ALL SELECT ST_GeomFromText('MULTIPOLYGON EMPTY',4326) As the_geom
			UNION ALL SELECT ST_GeomFromText('LINESTRING EMPTY',4326) As the_geom
			UNION ALL SELECT ST_GeomFromText('MULTILINESTRING EMPTY',4326) As the_geom ) ) As foo2

Change History (2)

comment:1 by robe, 13 years ago

Description: modified (diff)

comment:2 by pramsey, 13 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.