Skip to content

Commit 7296920

Browse files
committed
WL#10166 Require WKB input in WKB parsing functions
This WL modifies all FromWKB behavior by requiering the WKB parameter to be WKB. It removes the support for using geometries as parameters, to the FromWKB functions.
1 parent ceaa23c commit 7296920

28 files changed

+1413
-1459
lines changed

mysql-test/include/gis_generic.inc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,32 +36,32 @@ INSERT INTO gis_point VALUES
3636
INSERT INTO gis_line VALUES
3737
(105, ST_LineFromText('LINESTRING(0 0,0 10,10 0)')),
3838
(106, ST_LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
39-
(107, ST_LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
39+
(107, ST_LineStringFromWKB(St_AsWKB(LineString(Point(10, 10), Point(40, 10)))));
4040

4141
INSERT INTO gis_polygon VALUES
4242
(108, ST_PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
4343
(109, ST_PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
44-
(110, ST_PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
44+
(110, ST_PolyFromWKB(St_AsWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0))))));
4545

4646
INSERT INTO gis_multi_point VALUES
4747
(111, ST_MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
4848
(112, ST_MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
49-
(113, ST_MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
49+
(113, ST_MPointFromWKB(St_AsWKB(MultiPoint(Point(3, 6), Point(4, 10)))));
5050

5151
INSERT INTO gis_multi_line VALUES
5252
(114, ST_MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
5353
(115, ST_MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
54-
(116, ST_MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
54+
(116, ST_MLineFromWKB(St_AsWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7))))));
5555

5656

5757
INSERT INTO gis_multi_polygon VALUES
5858
(117, ST_MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
5959
(118, ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
60-
(119, ST_MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
60+
(119, ST_MPolyFromWKB(St_AsWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3)))))));
6161

6262
INSERT INTO gis_geometrycollection VALUES
6363
(120, ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
64-
(121, ST_GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
64+
(121, ST_GeometryFromWKB(St_AsWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9))))));
6565

6666
INSERT into gis_geometry SELECT * FROM gis_point;
6767
INSERT into gis_geometry SELECT * FROM gis_line;

mysql-test/r/archive_gis.result

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,26 +55,26 @@ INSERT INTO gis_point VALUES
5555
INSERT INTO gis_line VALUES
5656
(105, ST_LineFromText('LINESTRING(0 0,0 10,10 0)')),
5757
(106, ST_LineStringFromText('LINESTRING(10 10,20 10,20 20,10 20,10 10)')),
58-
(107, ST_LineStringFromWKB(LineString(Point(10, 10), Point(40, 10))));
58+
(107, ST_LineStringFromWKB(St_AsWKB(LineString(Point(10, 10), Point(40, 10)))));
5959
INSERT INTO gis_polygon VALUES
6060
(108, ST_PolygonFromText('POLYGON((10 10,20 10,20 20,10 20,10 10))')),
6161
(109, ST_PolyFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')),
62-
(110, ST_PolyFromWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0)))));
62+
(110, ST_PolyFromWKB(St_AsWKB(Polygon(LineString(Point(0, 0), Point(30, 0), Point(30, 30), Point(0, 0))))));
6363
INSERT INTO gis_multi_point VALUES
6464
(111, ST_MultiPointFromText('MULTIPOINT(0 0,10 10,10 20,20 20)')),
6565
(112, ST_MPointFromText('MULTIPOINT(1 1,11 11,11 21,21 21)')),
66-
(113, ST_MPointFromWKB(MultiPoint(Point(3, 6), Point(4, 10))));
66+
(113, ST_MPointFromWKB(St_AsWKB(MultiPoint(Point(3, 6), Point(4, 10)))));
6767
INSERT INTO gis_multi_line VALUES
6868
(114, ST_MultiLineStringFromText('MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))')),
6969
(115, ST_MLineFromText('MULTILINESTRING((10 48,10 21,10 0))')),
70-
(116, ST_MLineFromWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7)))));
70+
(116, ST_MLineFromWKB(St_AsWKB(MultiLineString(LineString(Point(1, 2), Point(3, 5)), LineString(Point(2, 5), Point(5, 8), Point(21, 7))))));
7171
INSERT INTO gis_multi_polygon VALUES
7272
(117, ST_MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
7373
(118, ST_MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
74-
(119, ST_MPolyFromWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3))))));
74+
(119, ST_MPolyFromWKB(St_AsWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3)))))));
7575
INSERT INTO gis_geometrycollection VALUES
7676
(120, ST_GeomCollFromText('GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(0 0,10 10))')),
77-
(121, ST_GeometryFromWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9)))));
77+
(121, ST_GeometryFromWKB(St_AsWKB(GeometryCollection(Point(44, 6), LineString(Point(3, 6), Point(7, 9))))));
7878
INSERT into gis_geometry SELECT * FROM gis_point;
7979
INSERT into gis_geometry SELECT * FROM gis_line;
8080
INSERT into gis_geometry SELECT * FROM gis_polygon;

mysql-test/r/gis-precise.result

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ select st_difference((convert(st_polygonfromwkb(linestring(point(1,1))) using gb
285285
st_geomcollfromwkb(point(1,1)));
286286
ERROR 22023: Invalid GIS data provided to function linestring.
287287
SET sql_mode = default;
288-
select ST_astext(ST_geomfromwkb(st_intersection(linestring(point(-59,82),point(32,29)), point(2,-5)))) as result;
288+
select ST_astext(ST_geomfromwkb(ST_AsWKB(st_intersection(linestring(point(-59,82),point(32,29)), point(2,-5))))) as result;
289289
result
290290
GEOMETRYCOLLECTION EMPTY
291291
SELECT ST_AsText(ST_Symdifference(ST_GeomFromText('POLYGON((5 0,15 25,25 0,15 5,5 0))'),ST_GeomFromText('POLYGON((5 0,15 25,25 0,15 5,5 0))')));
@@ -1674,12 +1674,12 @@ result
16741674
SELECT ST_ASTEXT(ST_INTERSECTION(
16751675
ST_GEOMFROMTEXT(
16761676
'MULTIPOLYGON(((3 2,7 5,0 0,-9.9 9,10.0002 1,2.232432 2,4 -0.7654,3 2)))'),
1677-
ST_GEOMFROMWKB(
1677+
ST_GEOMFROMWKB(ST_AsWKB(
16781678
MULTILINESTRING(
16791679
LINESTRING(POINT(7,0)),LINESTRING(POINT(4,6),POINT(7,5),POINT(5,2),POINT(6,9),POINT(1,8.4),POINT(4,6),POINT(6,9),POINT(0,5),POINT(9,8),POINT(-3.6,+.5)),
16801680
LINESTRING(POINT(+.9,5)),
16811681
LINESTRING(POINT(2,5),POINT(7,1),POINT(2,5),POINT(2.8,6),POINT(1,3),POINT(3,9),POINT(9,7),POINT(6.1,4),POINT(2,7),POINT(8,6),POINT(0,0),POINT(1,9),POINT(4,6.5)),
1682-
LINESTRING(POINT(-.5,6))))));
1682+
LINESTRING(POINT(-.5,6)))))));
16831683
ERROR 22023: Invalid GIS data provided to function linestring.
16841684
#
16851685
# Bug#2030883 SPATIAL RELATION CHECK FUNCTIONS RETURN NULL VALUE

0 commit comments

Comments
 (0)