From 10732e13a9af922c294f325942a4f69a81f1cb69 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Mon, 16 Jan 2012 10:24:54 +0000 Subject: [PATCH] Implement lwgeom_same for MULTICURVE and MULTISURFACE (#1475) git-svn-id: http://svn.osgeo.org/postgis/trunk@8831 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/lwgeom.c | 2 ++ regress/wkb.sql | 44 ++++++++++++++++++++++++++++++++++++++++++++ regress/wkb_expected | 8 ++++++++ 3 files changed, 54 insertions(+) diff --git a/liblwgeom/lwgeom.c b/liblwgeom/lwgeom.c index 8bc02b2d5..cdea7bb7d 100644 --- a/liblwgeom/lwgeom.c +++ b/liblwgeom/lwgeom.c @@ -516,6 +516,8 @@ lwgeom_same(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2) case MULTIPOINTTYPE: case MULTILINETYPE: case MULTIPOLYGONTYPE: + case MULTICURVETYPE: + case MULTISURFACETYPE: case COMPOUNDTYPE: case CURVEPOLYTYPE: case POLYHEDRALSURFACETYPE: diff --git a/regress/wkb.sql b/regress/wkb.sql index 8027ddab2..ab9cdb0d0 100644 --- a/regress/wkb.sql +++ b/regress/wkb.sql @@ -348,3 +348,47 @@ select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), 'CURVEPOLYGON ZM EMPTY' ::text as g ) as foo; +-- MULTICURVE +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTICURVE EMPTY' +::text as g ) as foo; +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTICURVE Z EMPTY' +::text as g ) as foo; +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTICURVE M EMPTY' +::text as g ) as foo; +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTICURVE ZM EMPTY' +::text as g ) as foo; + +-- MULTISURFACE +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTISURFACE EMPTY' +::text as g ) as foo; +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTISURFACE Z EMPTY' +::text as g ) as foo; +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTISURFACE M EMPTY' +::text as g ) as foo; +select g, encode(st_asbinary(g::geometry, 'ndr'), 'hex'), + st_orderingequals(g::geometry, ST_GeomFromWKB(ST_AsBinary(g::geometry))), + encode(st_asbinary(g::geometry, 'xdr'), 'hex') FROM ( SELECT + 'MULTISURFACE ZM EMPTY' +::text as g ) as foo; + diff --git a/regress/wkb_expected b/regress/wkb_expected index 4c61dc22b..3f24fd648 100644 --- a/regress/wkb_expected +++ b/regress/wkb_expected @@ -64,3 +64,11 @@ CURVEPOLYGON EMPTY|010a00000000000000|t|000000000a00000000 CURVEPOLYGON Z EMPTY|01f203000000000000|t|00000003f200000000 CURVEPOLYGON M EMPTY|01da07000000000000|t|00000007da00000000 CURVEPOLYGON ZM EMPTY|01c20b000000000000|t|0000000bc200000000 +MULTICURVE EMPTY|010b00000000000000|t|000000000b00000000 +MULTICURVE Z EMPTY|01f303000000000000|t|00000003f300000000 +MULTICURVE M EMPTY|01db07000000000000|t|00000007db00000000 +MULTICURVE ZM EMPTY|01c30b000000000000|t|0000000bc300000000 +MULTISURFACE EMPTY|010c00000000000000|t|000000000c00000000 +MULTISURFACE Z EMPTY|01f403000000000000|t|00000003f400000000 +MULTISURFACE M EMPTY|01dc07000000000000|t|00000007dc00000000 +MULTISURFACE ZM EMPTY|01c40b000000000000|t|0000000bc400000000 -- 2.40.0