# Creating the spatial Geometry object
USE test;
CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
SET @star_elem_vertical= 'POLYGON((5 0,15 25,25 0,15 5,5 0))' ;
SET @star_elem_horizontal= 'POLYGON((25 0,0 15,30 15,22 10,25 0))' ;
SET @star_center= 'POINT(15 10)' ;
SET @star_top= 'POINT(15 25)' ;
SET @star_bottom_left= 'POINT(5 0)' ;
SET @star_bottom_right= 'POINT(25 0)' ;
SET @star_bottom_points= 'MULTIPOINT(5 0,25 0)' ;
SET @star_all_points= 'MULTIPOINT(5 0,25 0,15 10,15 25)' ;
SET @star_line_horizontal= 'LINESTRING(10 15,20 15)' ;
SET @star_line_vertical= 'LINESTRING(15 5,15 25)' ;
SET @star_top_to_center= 'LINESTRING(15 25,15 10)' ;
SET @star_lines_near_horizontal= 'MULTILINESTRING((25 0,0 15,15 30,0 5))' ;
SET @star_lines_near_vertical= 'MULTILINESTRING((0 5,15 25,0 25))' ;
SET @star= 'POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))' ;
SET @star_of_elems='MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))' ;
SET @star_collection_elems='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))' ;
SET @star_collection_multilinestr='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),MULTILINESTRING((25 0,0 15,15 30,0 5)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))' ;
# INSERT base star
INSERT INTO gis_geometrycollection VALUES
(100 ,ST_GEOMFROMTEXT(@star)),
(101 ,ST_GEOMFROMTEXT(@star_elem_vertical)),
(102 ,ST_GEOMFROMTEXT(@star_elem_horizontal)),
(103 ,ST_GEOMFROMTEXT(@star_of_elems)),
(104 ,ST_GEOMFROMTEXT(@star_top)),
(105 ,ST_GEOMFROMTEXT(@star_center)),
(106 ,ST_GEOMFROMTEXT(@star_bottom_left)),
(107 ,ST_GEOMFROMTEXT(@star_bottom_right)),
(108 ,ST_GEOMFROMTEXT(@star_bottom_points)),
(109 ,ST_GEOMFROMTEXT(@star_all_points)),
(110 ,ST_GEOMFROMTEXT(@star_line_horizontal)),
(111 ,ST_GEOMFROMTEXT(@star_line_vertical)),
(112 ,ST_GEOMFROMTEXT(@star_top_to_center)),
(113 ,ST_GEOMFROMTEXT(@star_lines_near_horizontal)),
(114 ,ST_GEOMFROMTEXT(@star_lines_near_vertical)),
(115 ,ST_GEOMFROMTEXT(@star_collection_elems)),
(116 ,ST_GEOMFROMTEXT(@star_collection_multilinestr));
# Checking the integrity of the above create/insert statements
# 17 rows.
SELECT count(ST_ASTEXT(g) != 'NULL' ) FROM gis_geometrycollection;
count(ST_ASTEXT(g) != 'NULL' )
17
#####################################################################################
# ST_ISVALID(geometry)
#####################################################################################
#====================================================================================
# point
#====================================================================================
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_center));
ST_ISVALID(ST_GEOMFROMTEXT(@star_center))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_top));
ST_ISVALID(ST_GEOMFROMTEXT(@star_top))
1
SELECT ST_ISVALID(g) FROM gis_geometrycollection WHERE fid=105 ;
ST_ISVALID(g)
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POINT(2.34 -2.34)' ));
ST_ISVALID(ST_GEOMFROMTEXT('POINT(2.34 -2.34)' ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POINT(1e308 -1e308)' ));
ST_ISVALID(ST_GEOMFROMTEXT('POINT(1e308 -1e308)' ))
1
#====================================================================================
# multipoint
#====================================================================================
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_all_points));
ST_ISVALID(ST_GEOMFROMTEXT(@star_all_points))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_bottom_points));
ST_ISVALID(ST_GEOMFROMTEXT(@star_bottom_points))
1
SELECT ST_ISVALID(g) FROM gis_geometrycollection WHERE fid=108 ;
ST_ISVALID(g)
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 0,0 0,0 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 0,0 0,0 0)' ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 5,5 5,5 0,0 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 5,5 5,5 0,0 0)' ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOINT(1 -1,1e308 -1e308,0.0001 0.000)' )) c;
c
1
#====================================================================================
# linestring
#====================================================================================
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_top_to_center));
ST_ISVALID(ST_GEOMFROMTEXT(@star_top_to_center))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_line_horizontal));
ST_ISVALID(ST_GEOMFROMTEXT(@star_line_horizontal))
1
SELECT ST_ISVALID(g) FROM gis_geometrycollection WHERE fid=110 ;
ST_ISVALID(g)
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0)' ))
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0,-0.00 0,0.0 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0,-0.00 0,0.0 0)' ))
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0,0 5,5 5,5 0,0 0)' ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(1 -1,1e308 -1e308,0.0001 0.000)' )) c;
c
1
#====================================================================================
# multilinestring
#====================================================================================
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_lines_near_vertical));
ST_ISVALID(ST_GEOMFROMTEXT(@star_lines_near_vertical))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_lines_near_horizontal));
ST_ISVALID(ST_GEOMFROMTEXT(@star_lines_near_horizontal))
1
SELECT ST_ISVALID(g) FROM gis_geometrycollection WHERE fid=114 ;
ST_ISVALID(g)
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0))' ));
ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0))' ))
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,1 1,2 2),(3 3))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,-0.00 0),(0.0 0))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,0 5,5 5,5 0,0 0))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING((0 10,10 0),(10 0,0 0),(0 0,10 10))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING((1 -1,1e308 -1e308,0.0001 0.000),(2 2,4 -9.002))' )) c;
c
1
#====================================================================================
# polygon
#====================================================================================
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star));
ST_ISVALID(ST_GEOMFROMTEXT(@star))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_elem_vertical));
ST_ISVALID(ST_GEOMFROMTEXT(@star_elem_vertical))
1
SELECT ST_ISVALID(g) FROM gis_geometrycollection WHERE fid=100 ;
ST_ISVALID(g)
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0))' ));
ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0))' ))
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,5 5,0 0))' ));
ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 5,5 5,0 0))' ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0,-10 0,-10 -10,0 -10,0 0))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(0 0,0 10,10 10,10 0,0 0))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4,4 4),(0 0,0 10,10 10,10 0,0 0))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4,4 4),(8 8,8 10,10 10,10 8,8 8))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,6 4,6 6,4 6,4 4),(4 4,4 6,6 6,6 4,4 4))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,6 4,6 6,4 6,4 4),(6 6,6 8,8 8,8 6,6 6))' )) c;
c
1
#====================================================================================
# multipolygon
#====================================================================================
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_of_elems));
ST_ISVALID(ST_GEOMFROMTEXT(@star_of_elems))
0
SELECT ST_ISVALID(g) FROM gis_geometrycollection WHERE fid=103 ;
ST_ISVALID(g)
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)))' ));
ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,0 0)))' ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1, 1 1, 1 1, 1 1, 1 1)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 10,10 0,0 0,0 10)),((0 0,10 10,10 0,0 0)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,0 0)),((10 10,10 15,15 15,10 10)))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0)),((4 4,4 6,6 6,6 4,4 4,4 4)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0),(0 0,0 10,10 10,10 0,0 0)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4,4 4),(0 0,0 10,10 10,10 0,0 0)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4,4 4),(8 8,8 10,10 10,10 8,8 8)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((10 10,10 0,5 10,10 10)),((0 10,0 20,5 10,0 10)))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)),((4 4,4 6,6 6,6 4,4 4,4 4)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0),(0 0,0 10,10 10,10 0,0 0)),((0 0,0 10,10 10,10 0,0 0,0 0)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0),(0 0,0 10,10 10,10 0,0 0)),((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,4 4)))' )) c;
c
0
#====================================================================================
# geometrycollection
#====================================================================================
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_collection_elems));
ST_ISVALID(ST_GEOMFROMTEXT(@star_collection_elems))
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_collection_multilinestr));
ST_ISVALID(ST_GEOMFROMTEXT(@star_collection_multilinestr))
0
SELECT ST_ISVALID(g) FROM gis_geometrycollection WHERE fid=115 ;
ST_ISVALID(g)
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()' ));
ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()' ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(10 10),MULTIPOINT(0 0,10 10))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),MULTIPOINT(0 0,10 10)))' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0),POINT(10 10))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0),GEOMETRYCOLLECTION())' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,1 1,2 2,0 0)),GEOMETRYCOLLECTION())' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,10 10,20 20),POLYGON((0 0,10 10,100 100,0 0)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0),POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)))' )) c;
c
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
'MULTILINESTRING((0 0,0 10,10 10,10 0),(10 10,10 15,15 15,10 10)))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(10 10),'
'MULTIPOINT(0 0,10 10),'
'LINESTRING(1 1,2 2,3 3),'
'MULTILINESTRING((0 0,0 10,10 10,10 0),(10 10,10 15,15 15,10 10)))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0,0 0)))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION('
'GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0,0 0)))))' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)),'
'MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0)),((10 10,10 15,15 15,15 10,10 10))))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
'MULTIPOINT(0 0,10 10)),'
'GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
'MULTILINESTRING((0 0,0 10,10 10,10 0),(10 10,10 15,15 15,10 10))))' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
'MULTIPOINT(0 0,10 10)),'
'GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
'MULTILINESTRING((0 0,0 10,10 10,10 0),(10 10,10 15,15 15,10 10))),'
'GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)),'
'MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0)),((10 10,10 15,15 15,15 10,10 10)))))' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(10 10),'
'MULTIPOINT(0 0,10 10)),'
'GEOMETRYCOLLECTION(LINESTRING(1 1,2 2,3 3),'
'MULTILINESTRING((0 0,0 10,10 10,10 0),(10 10,10 15,15 15,10 10))),'
'GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))' )) c;
c
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),'
'LINESTRING(1 1,2 2,3 3),'
'POLYGON((0 0,0 10,10 10,10 0,0 0,0 0),(4 4,4 6,6 6,6 4,4 4)),'
'MULTIPOINT(0 0,10 10),'
'MULTILINESTRING((0 0,0 10,10 10,10 0),(10 10,10 15,15 15,10 10)),'
'MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0,0 0)),((10 10,10 15,15 15,15 10,10 10))))' )) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(MULTILINESTRING((-7 -2,-9 3,-2 -8),(3 7,5 6,-7 -9,7 -1,-2 -8,2 9,4 6,-5 -5)),'
'MULTILINESTRING((2 -2,2 -3,2 -1,-10 7,1 -2,-2 0,-9 -2,10 5,-7 -8,-9 -1,1 -1,-2 3,5 -9,-8 -9,-10 -9)),'
'MULTIPOINT(-7 -5,6 9,7 4))' )) c;
c
1
#####################################################################################
# Invalid function calls
#####################################################################################
SELECT ST_ISVALID();
ERROR 42000 : Incorrect parameter count in the call to native function 'ST_ISVALID'
SELECT ST_ISVALID(NULL);
ST_ISVALID(NULL)
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POINT()' ));
ST_ISVALID(ST_GEOMFROMTEXT('POINT()' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING()' ));
ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING()' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON(())' ));
ST_ISVALID(ST_GEOMFROMTEXT('POLYGON(())' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOINT()' ));
ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOINT()' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING(())' ));
ST_ISVALID(ST_GEOMFROMTEXT('MULTILINESTRING(())' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON((()))' ));
ST_ISVALID(ST_GEOMFROMTEXT('MULTIPOLYGON((()))' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POINT(a 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('POINT(a 0)' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POINT(! 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('POINT(! 0)' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POINT(' !' 0)' ));
ERROR 42000 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '!' 0)'))' at line 1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POINT(12,34 0)' ));
ST_ISVALID(ST_GEOMFROMTEXT('POINT(12,34 0)' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)' ));
ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)' ));
ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(' !' 0,10 10)' ));
ERROR 42000 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '!' 0,10 10)'))' at line 1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)' ));
ST_ISVALID(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))' ));
ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))' ));
ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((' !' 0,10 10,10 0,0 0))' ));
ERROR 42000 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '!' 0,10 10,10 0,0 0))'))' at line 1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))' ));
ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))' ))
NULL
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_center,-1024 ));
ST_ISVALID(ST_GEOMFROMTEXT(@star_center,-1024 ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_all_points,-1 ));
ST_ISVALID(ST_GEOMFROMTEXT(@star_all_points,-1 ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_lines_near_vertical,4236 ));
ST_ISVALID(ST_GEOMFROMTEXT(@star_lines_near_vertical,4236 ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_elem_vertical,4294967295 ));
ST_ISVALID(ST_GEOMFROMTEXT(@star_elem_vertical,4294967295 ))
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_of_elems,4294967297 ));
ST_ISVALID(ST_GEOMFROMTEXT(@star_of_elems,4294967297 ))
0
SELECT ST_ISVALID(ST_GEOMFROMTEXT(@star_collection_elems,4294967295000 ));
ST_ISVALID(ST_GEOMFROMTEXT(@star_collection_elems,4294967295000 ))
0
SELECT ST_ISVALID( x'e6100000010100000000000000000000000000000000000000' ) c;
c
1
# Clean up
DROP TABLE gis_geometrycollection;
########################################################################
# BUG#21927394 ST_ISVALID() RETURNS FALSE WITH VALID POLYGON GEOMETRY
########################################################################
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((72.8714768817168
-167 .0048853643874 ,9274 .40641550926 3433 .5957427942167 ,-58 .09039811390054
187 .50989457746405 ,-81 .09039811390053 179 .50989457746405 ,-207 .99999999999997
135 .36742435621204 ,-208 1 ,-208 0 ,-208 -276 .9111154485375 ,49 .8714768817168
-176 .0048853643874 ,72 .8714768817168 -167 .0048853643874 ))')) c;
c
1
SELECT ST_ISVALID(ST_GEOMFROMTEXT('POLYGON((-200 0,-207.99999999999997
135 .36742435621204 ,-208 1 ,-208 0 ,-208 -276 .9111154485375 ,-200 0 ))')) c;
c
1
#
# MDEV-35103 CREATE TABLE AS SELECT ST_VALIDATE creates a column with datatype point, not geometry
#
create or replace table tb1 as SELECT st_validate(POINTFROMTEXT(' POINT( 4 1 ) ' )) a;
create or replace table tb1 as SELECT st_validate(ST_GeomFromText (' linestring( 4 1,4 4 ) ' )) a;
create table tb2 as SELECT (st_validate (ST_collect(( POINTFROMTEXT(' POINT( 4 1 ) ' ) )) )) a;
drop table tb1, tb2;
########################################################################
# MDEV-35126 Wrong results from st_isvalid or st_validate function, while using multipolygon.
########################################################################
select ST_isvalid(ST_GEOMFROMTEXT('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)))' )) c;
c
1
select ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 0 0, 6 0, 1 2, 0 0)), (( 7 7, 1 8, 7 0, 7 7 ))) ' )) c;
c
1
SELECT ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 40 40, 80 40, 100 0, 120 40, 160 40, 130 70, 150 110, 100 90, 50 110, 70 70, 40 40)), ((70 50, 80 50, 80 60, 70 60, 70 50)))' )) c;
c
0
SELECT ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 40 40, 80 40, 100 0, 120 40, 160 40, 130 70, 150 110, 100 90, 50 110, 70 70, 40 40)), ((90 50, 100 50, 100 60, 90 60, 90 50)))' )) c;
c
0
SELECT ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 40 40, 80 40, 100 0, 120 40, 160 40, 130 70, 150 110, 100 90, 50 110, 70 70, 40 40)), ((60 20, 70 20, 70 30, 60 30, 60 20)))' )) c;
c
1
SELECT ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 80 200, 110 210, 140 270, 70 280, 40 250, 60 220, 80 200)), (( 120 210, 160 260, 140 260, 120 210)))' )) c;
c
1
SELECT ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 80 200, 110 210, 140 270, 70 280, 40 250, 60 220, 80 200)), (( 90 220, 110 240, 60 250, 90 220)))' )) c;
c
0
SELECT ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 0 0, 5 5, 5 0, 0 5, 0 0)), (( 2 0, 3 0, 2 1, 2 0 ))) ' )) c;
c
0
SELECT ST_isvalid(ST_GEOMFROMTEXT(' MULTIPOLYGON((( 0 0, 3 0, 0 3, 0 0)), (( 3 0, 3 3, 0 3, 3 0))) ' )) c;
c
0
SELECT ST_IsValid(ST_GEOMFROMTEXT(' POLYGON( ( 0 0, 0 0, 8 0, 0 0 ) ) ' )) c;
c
0
SELECT ST_IsValid(ST_GEOMFROMTEXT(' MULTIPOLYGON( ( ( 2 2, 2 8, 8 8, 8 2, 2 2 ), ( 4 4, 4 6, 6 6, 6 4, 4 4 ) ), ( ( 2 2, 1 2, 0 5, 2 9, 2 2 ) ) ) ' )) c;
c
0
SELECT ST_IsValid(ST_GEOMFROMTEXT(' MULTIPOLYGON( ( (2 2, 2 4, 4 4, 4 2, 2 2) ), ( (3 5, 2 5, 2 4, 3 4, 3 5) ) ) ' )) c;
c
0
#
# MDEV-36042 Assertion failed in Binary_string::q_append
#
SELECT st_astext(ST_VALIDATE(ST_SYMDIFFERENCE(ST_GEOMFROMTEXT(' MULTIPOLYGON( ( ( 2 2, 2 8, 8 8, 8 2, 2 2 ), ( 4 4, 4 6, 6 6, 6 4, 4 4 ) ), ( (0 2,1 2,1 3,0 3,0 2) ) ) ' ), ST_GEOMFROMTEXT(' POLYGON( ( 6 6, 5 8, 0 8, 8 1, 7 6, 6 6 ) ) ' ) ) ) ) <> '' c;
c
1
#
# Start of 12 .3 tests
#
CREATE TABLE t0 (c0 INT,c1 POINT);
INSERT INTO t0 VALUES (-4 , Point(0 ,0 ));
INSERT INTO t0 VALUES (6 , NULL);
INSERT INTO t0 VALUES (9 , Point(1 ,1 ));
SELECT ST_ISVALID(t0.c1) FROM t0;
ST_ISVALID(t0.c1)
1
NULL
1
SELECT ST_ASTEXT(t0.c1) FROM t0;
ST_ASTEXT(t0.c1)
POINT(0 0 )
NULL
POINT(1 1 )
DROP TABLE t0;
# End of 12 .3 tests
Messung V0.5 in Prozent C=69 H=100 G=85
¤ Dauer der Verarbeitung: 0.2 Sekunden
(vorverarbeitet am 2026-10-08)
¤
*© Formatika GbR, Deutschland