Opened 10 years ago

Closed 10 years ago

#680 closed defect (fixed)

Surprise surprise: Crash on geography ST_AsBinary for PointM

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

Description

Well this is as far as I got before my server crashed with your new changes.

-- this is okay --

SELECT geography(foo1.the_geom) As result 
FROM ((SELECT ST_SetSRID(ST_MakePointM(i,j,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 ORDER BY i, j, i*j*m)) As foo1 LIMIT 3;

-- but then applying an ST_AsBinary -- get a crash, though

SELECT ST_AsBinary(geography(foo1.the_geom)) As result 
FROM ((SELECT ST_SetSRID(ST_MakePointM(i,j,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 ORDER BY i, j, i*j*m)) As foo1 LIMIT 3;

-- ST_AsText doesn't crash but fails PostGIS 1.5 regression --

On 1.5

SELECT ST_AsText(geography(foo1.the_geom)) As result 
FROM ((SELECT ST_SetSRID(ST_MakePointM(i,j,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 ORDER BY i, j, i*j*m)) As foo1 LIMIT 3;

-- returns

POINTM(-10 50 2)
POINTM(-10 50 1)
POINTM(-10 70 2)

On new 2.0 the M is missing

POINT(-10 50)
POINT(-10 50)
POINT(-10 70)

Change History (1)

comment:1 Changed 10 years ago by pramsey

Resolution: fixed
Status: newclosed

Fixed in trunk after r6299. Note we don't have consistent behavior right now... asbinary is returning 2D only and always and astext is returning ISO text. We haven't quite gotten agreement on our output scheme yet (though perhaps I should pursue the GUC).

Note: See TracTickets for help on using tickets.