|
|
|
@ -99,9 +99,9 @@ fid ST_AsText(g)
|
|
|
|
|
110 POLYGON((0 0,30 0,30 30,0 0))
|
|
|
|
|
SELECT fid, ST_AsText(g) FROM gis_multi_point;
|
|
|
|
|
fid ST_AsText(g)
|
|
|
|
|
111 MULTIPOINT((0 0),(10 10),(10 20),(20 20))
|
|
|
|
|
112 MULTIPOINT((1 1),(11 11),(11 21),(21 21))
|
|
|
|
|
113 MULTIPOINT((3 6),(4 10))
|
|
|
|
|
111 MULTIPOINT(0 0,10 10,10 20,20 20)
|
|
|
|
|
112 MULTIPOINT(1 1,11 11,11 21,21 21)
|
|
|
|
|
113 MULTIPOINT(3 6,4 10)
|
|
|
|
|
SELECT fid, ST_AsText(g) FROM gis_multi_line;
|
|
|
|
|
fid ST_AsText(g)
|
|
|
|
|
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
|
|
|
@ -129,9 +129,9 @@ fid ST_AsText(g)
|
|
|
|
|
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
|
|
|
|
109 POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))
|
|
|
|
|
110 POLYGON((0 0,30 0,30 30,0 0))
|
|
|
|
|
111 MULTIPOINT((0 0),(10 10),(10 20),(20 20))
|
|
|
|
|
112 MULTIPOINT((1 1),(11 11),(11 21),(21 21))
|
|
|
|
|
113 MULTIPOINT((3 6),(4 10))
|
|
|
|
|
111 MULTIPOINT(0 0,10 10,10 20,20 20)
|
|
|
|
|
112 MULTIPOINT(1 1,11 11,11 21,21 21)
|
|
|
|
|
113 MULTIPOINT(3 6,4 10)
|
|
|
|
|
114 MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))
|
|
|
|
|
115 MULTILINESTRING((10 48,10 21,10 0))
|
|
|
|
|
116 MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
|
|
|
|
@ -178,62 +178,40 @@ CREATE UNIQUE INDEX idx2 on tab(c8(5) ASC) ;
|
|
|
|
|
#check equality predicate on the index columns
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
|
|
|
|
|
WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab NULL ref idx1 idx1 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c2` = <cache>(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab ref idx1 idx1 8 const 1 #
|
|
|
|
|
#check index with WKB function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
|
|
|
|
|
FROM tab WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab NULL ref idx1 idx1 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c2` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab ref idx1 idx1 8 const 1 #
|
|
|
|
|
#check index with WKT function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
|
|
|
|
|
WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab NULL ref idx3 idx3 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c3` = <cache>(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab ref idx3 idx3 8 const 1 #
|
|
|
|
|
#check index with WKB function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
|
|
|
|
|
FROM tab
|
|
|
|
|
WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab NULL ref idx3 idx3 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab`.`c8`) AS `ST_AsText(c8)` from `test`.`tab` where (`test`.`tab`.`c3` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab ref idx3 idx3 8 const 1 #
|
|
|
|
|
#check index with WKT function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
|
|
|
|
|
WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab NULL const idx2 idx2 8 const # 100.00 NULL
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext('
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab const idx2 idx2 8 const 1 #
|
|
|
|
|
#check index with WKB function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
|
|
|
|
|
FROM tab
|
|
|
|
|
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab NULL const idx2 idx2 8 const # 100.00 NULL
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext('
|
|
|
|
|
#check range predicate on the index columns
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
|
|
|
|
|
WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
|
|
|
|
|
ERROR HY000: Incorrect arguments to >=
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
|
|
|
|
|
WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
|
|
|
|
|
ERROR HY000: Incorrect arguments to >=
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab
|
|
|
|
|
WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
|
|
|
|
|
ERROR HY000: Incorrect arguments to >=
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab const idx2 idx2 8 const 1 #
|
|
|
|
|
#check index with DELETE operation
|
|
|
|
|
EXPLAIN DELETE FROM tab
|
|
|
|
|
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 DELETE tab NULL range idx2 idx2 8 const # 100.00 Using where
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab range idx2 idx2 8 NULL 1 #
|
|
|
|
|
#check the spatial values
|
|
|
|
|
SELECT ST_AsText(c1) FROM tab;
|
|
|
|
|
ST_AsText(c1)
|
|
|
|
@ -246,7 +224,7 @@ ST_AsText(c3)
|
|
|
|
|
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
|
|
|
|
|
SELECT ST_AsText(c4) FROM tab;
|
|
|
|
|
ST_AsText(c4)
|
|
|
|
|
MULTIPOINT((0 0),(5 5),(10 10),(20 20))
|
|
|
|
|
MULTIPOINT(0 0,5 5,10 10,20 20)
|
|
|
|
|
SELECT ST_AsText(c5) FROM tab;
|
|
|
|
|
ST_AsText(c5)
|
|
|
|
|
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
|
|
|
|
@ -290,7 +268,7 @@ ST_AsText(c3)
|
|
|
|
|
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
|
|
|
|
|
SELECT ST_AsText(c4) FROM tab;
|
|
|
|
|
ST_AsText(c4)
|
|
|
|
|
MULTIPOINT((0 0),(5 5),(10 10),(20 20))
|
|
|
|
|
MULTIPOINT(0 0,5 5,10 10,20 20)
|
|
|
|
|
SELECT ST_AsText(c5) FROM tab;
|
|
|
|
|
ST_AsText(c5)
|
|
|
|
|
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
|
|
|
|
@ -334,7 +312,7 @@ ST_AsText(c3)
|
|
|
|
|
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
|
|
|
|
|
SELECT ST_AsText(c4) FROM tab;
|
|
|
|
|
ST_AsText(c4)
|
|
|
|
|
MULTIPOINT((0 0),(5 5),(10 10),(20 20))
|
|
|
|
|
MULTIPOINT(0 0,5 5,10 10,20 20)
|
|
|
|
|
SELECT ST_AsText(c5) FROM tab;
|
|
|
|
|
ST_AsText(c5)
|
|
|
|
|
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
|
|
|
|
@ -353,7 +331,7 @@ ALTER TABLE tab MODIFY COLUMN c1 BLOB;
|
|
|
|
|
SHOW CREATE TABLE tab;
|
|
|
|
|
Table Create Table
|
|
|
|
|
tab CREATE TABLE `tab` (
|
|
|
|
|
`c1` blob,
|
|
|
|
|
`c1` blob DEFAULT NULL,
|
|
|
|
|
`c2` linestring DEFAULT NULL,
|
|
|
|
|
`c3` polygon DEFAULT NULL,
|
|
|
|
|
`c4` multipoint DEFAULT NULL,
|
|
|
|
@ -441,7 +419,7 @@ ST_AsText(c3)
|
|
|
|
|
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
|
|
|
|
|
SELECT ST_AsText(c4) FROM tab;
|
|
|
|
|
ST_AsText(c4)
|
|
|
|
|
MULTIPOINT((0 0),(5 5),(10 10),(20 20))
|
|
|
|
|
MULTIPOINT(0 0,5 5,10 10,20 20)
|
|
|
|
|
SELECT ST_AsText(c5) FROM tab;
|
|
|
|
|
ST_AsText(c5)
|
|
|
|
|
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
|
|
|
|
@ -516,7 +494,7 @@ ST_AsText(c3)
|
|
|
|
|
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
|
|
|
|
|
SELECT ST_AsText(c4) FROM tab2;
|
|
|
|
|
ST_AsText(c4)
|
|
|
|
|
MULTIPOINT((0 0),(5 5),(10 10),(20 20))
|
|
|
|
|
MULTIPOINT(0 0,5 5,10 10,20 20)
|
|
|
|
|
SELECT ST_AsText(c5) FROM tab2;
|
|
|
|
|
ST_AsText(c5)
|
|
|
|
|
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
|
|
|
|
@ -556,6 +534,8 @@ LINESTRING(10 10,20 20,30 30) LINESTRING(10 10,20 20,30 30)
|
|
|
|
|
#check DELETE stmt with Where clause and a constant predicate
|
|
|
|
|
DELETE FROM tab
|
|
|
|
|
Where c8=c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: '\x00\x00\x00\x00\x01\x07\x00\x00\x00\x02\x00\x00\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xF0?\x00\x00\x00\x00\x00\x00\xF'
|
|
|
|
|
#check the data, should 0
|
|
|
|
|
SELECT COUNT(*) FROM tab;
|
|
|
|
|
COUNT(*)
|
|
|
|
@ -596,16 +576,29 @@ COUNT(ST_AsText(g))
|
|
|
|
|
SELECT SUM(ST_AsText(g)) FROM gis_point;
|
|
|
|
|
SUM(ST_AsText(g))
|
|
|
|
|
0
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 20)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 20)'
|
|
|
|
|
SELECT SUM(ST_AsText(g)) FROM gis_line;
|
|
|
|
|
SUM(ST_AsText(g))
|
|
|
|
|
0
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(0 0,0 10,10 0)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,20 10,20 20,10 20,10 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,40 10)'
|
|
|
|
|
SELECT AVG(ST_AsText(g)) FROM gis_polygon;
|
|
|
|
|
AVG(ST_AsText(g))
|
|
|
|
|
0
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((10 10,20 10,20 20,10 20,10 10))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,30 0,30 30,0 0))'
|
|
|
|
|
#here it show some string value no meaning
|
|
|
|
|
SELECT MAX(ST_AsText(g)) FROM gis_multi_point;
|
|
|
|
|
MAX(ST_AsText(g))
|
|
|
|
|
MULTIPOINT((3 6),(4 10))
|
|
|
|
|
MULTIPOINT(3 6,4 10)
|
|
|
|
|
#here it show some string value no meaning
|
|
|
|
|
SELECT MIN(ST_AsText(g)) FROM gis_multi_line;
|
|
|
|
|
MIN(ST_AsText(g))
|
|
|
|
@ -613,12 +606,39 @@ MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))
|
|
|
|
|
SELECT STD(ST_AsText(g)) FROM gis_multi_polygon;
|
|
|
|
|
STD(ST_AsText(g))
|
|
|
|
|
0
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: '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)))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: '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)))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((0 3,3 3,3 0,0 3)))'
|
|
|
|
|
SELECT COUNT(ST_AsText(g)) FROM gis_geometrycollection;
|
|
|
|
|
COUNT(ST_AsText(g))
|
|
|
|
|
3
|
|
|
|
|
SELECT AVG(ST_AsText(g)) FROM gis_geometry;
|
|
|
|
|
AVG(ST_AsText(g))
|
|
|
|
|
0
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(20 20)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POINT(10 20)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(0 0,0 10,10 0)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,20 10,20 20,10 20,10 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'LINESTRING(10 10,40 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((10 10,20 10,20 20,10 20,10 10))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,50 0,50 50,0 50,0 0),(10 10,20 10,20 20,10 20,10 10))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'POLYGON((0 0,30 0,30 30,0 0))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOINT(0 0,10 10,10 20,20 20)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOINT(1 1,11 11,11 21,21 21)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOINT(3 6,4 10)'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTILINESTRING((10 48,10 21,10 0),(16 0,16 23,16 48))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTILINESTRING((10 48,10 21,10 0))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTILINESTRING((1 2,3 5),(2 5,5 8,21 7))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: '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)))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: '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)))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'MULTIPOLYGON(((0 3,3 3,3 0,0 3)))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'GEOMETRYCOLLECTION(POINT(10 10),LINESTRING(10 10,20 20))'
|
|
|
|
|
Warning 1292 Truncated incorrect DOUBLE value: 'GEOMETRYCOLLECTION(POINT(44 6),LINESTRING(3 6,7 9))'
|
|
|
|
|
#check Datatypes with compression tables
|
|
|
|
|
CREATE TABLE tab3(c1 POINT,c2 LINESTRING,c3 POLYGON,C4 MULTIPOINT,c5 MULTILINESTRING ,
|
|
|
|
|
c6 MULTIPOLYGON,c7 GEOMETRYCOLLECTION ,c8 GEOMETRY) ENGINE=InnoDB
|
|
|
|
@ -684,62 +704,40 @@ CREATE UNIQUE INDEX idx2 on tab3(c8(5) ASC) ;
|
|
|
|
|
#check equality predicate on the index columns
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
|
|
|
|
|
WHERE c2=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = <cache>(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 ref idx1 idx1 8 const 1 #
|
|
|
|
|
#check index with WKB function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
|
|
|
|
|
FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 ref idx1 idx1 8 const 1 #
|
|
|
|
|
#check index with WKT function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
|
|
|
|
|
WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = <cache>(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 ref idx3 idx3 8 const 1 #
|
|
|
|
|
#check index with WKB function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
|
|
|
|
|
FROM tab3
|
|
|
|
|
WHERE c3=ST_PolyFromWKB(ST_AsWkB(ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 ref idx3 idx3 8 const 1 #
|
|
|
|
|
#check index with WKT function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
|
|
|
|
|
WHERE c8=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL const idx2 idx2 8 const # 100.00 NULL
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext('
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 const idx2 idx2 8 const 1 #
|
|
|
|
|
#check index with WKB function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
|
|
|
|
|
FROM tab3
|
|
|
|
|
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL const idx2 idx2 8 const # 100.00 NULL
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext('
|
|
|
|
|
#check range predicate on the index columns
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
|
|
|
|
|
WHERE c2>=ST_LineFromText('LINESTRING(10 10,20 20,30 30)');
|
|
|
|
|
ERROR HY000: Incorrect arguments to >=
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
|
|
|
|
|
WHERE c3>=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
|
|
|
|
|
ERROR HY000: Incorrect arguments to >=
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
|
|
|
|
|
WHERE c8>=ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))');
|
|
|
|
|
ERROR HY000: Incorrect arguments to >=
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 const idx2 idx2 8 const 1 #
|
|
|
|
|
#check index with DELETE operation
|
|
|
|
|
EXPLAIN DELETE FROM tab3
|
|
|
|
|
WHERE c8=ST_GeometryFromWKB(ST_AsWKB(ST_GeomCollFromText('GeometryCollection(Point(1 1),LineString(2 2, 3 3))')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 DELETE tab3 NULL range idx2 idx2 8 const # 100.00 Using where
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 range idx2 idx2 8 NULL 1 #
|
|
|
|
|
#check the spatial values
|
|
|
|
|
SELECT ST_AsText(c1) FROM tab3;
|
|
|
|
|
ST_AsText(c1)
|
|
|
|
@ -752,7 +750,7 @@ ST_AsText(c3)
|
|
|
|
|
POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))
|
|
|
|
|
SELECT ST_AsText(c4) FROM tab3;
|
|
|
|
|
ST_AsText(c4)
|
|
|
|
|
MULTIPOINT((0 0),(5 5),(10 10),(20 20))
|
|
|
|
|
MULTIPOINT(0 0,5 5,10 10,20 20)
|
|
|
|
|
SELECT ST_AsText(c5) FROM tab3;
|
|
|
|
|
ST_AsText(c5)
|
|
|
|
|
MULTILINESTRING((1 1,2 2,3 3),(10 10,20 20,30 30))
|
|
|
|
@ -786,17 +784,13 @@ tab3 CREATE TABLE `tab3` (
|
|
|
|
|
#check index with WKB function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8)
|
|
|
|
|
FROM tab3 WHERE c2=ST_LineStringFromWKB(ST_AsWKB(ST_LineFromText('LINESTRING(10 10,20 20,30 30)')));
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL ref idx1 idx1 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c2` = <cache>(st_geometryfromwkb(st_aswkb(st_geometryfromtext('LINESTRING(10 10,20 20,30 30)')))))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 ref idx1 idx1 8 const 1 #
|
|
|
|
|
#check index with WKT function
|
|
|
|
|
EXPLAIN SELECT ST_ASText(c1),ST_AsText(c2),ST_AsText(c8) FROM tab3
|
|
|
|
|
WHERE c3=ST_PolyFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))');
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE tab3 NULL ref idx3 idx3 8 const # 100.00 Using where
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(`test`.`tab3`.`c1`) AS `ST_ASText(c1)`,st_astext(`test`.`tab3`.`c2`) AS `ST_AsText(c2)`,st_astext(`test`.`tab3`.`c8`) AS `ST_AsText(c8)` from `test`.`tab3` where (`test`.`tab3`.`c3` = <cache>(st_geometryfromtext('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))')))
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
|
|
|
1 SIMPLE tab3 ref idx3 idx3 8 const 1 #
|
|
|
|
|
#check the Geometry property functions
|
|
|
|
|
SELECT fid, ST_Dimension(g) FROM gis_geometry;
|
|
|
|
|
fid ST_Dimension(g)
|
|
|
|
@ -872,13 +866,13 @@ fid ST_IsEmpty(g)
|
|
|
|
|
122 0
|
|
|
|
|
SELECT fid, ST_AsText(ST_Envelope(g)) FROM gis_geometry;
|
|
|
|
|
fid ST_AsText(ST_Envelope(g))
|
|
|
|
|
101 POINT(10 10)
|
|
|
|
|
102 POINT(20 10)
|
|
|
|
|
103 POINT(20 20)
|
|
|
|
|
104 POINT(10 20)
|
|
|
|
|
101 POLYGON((10 10,10 10,10 10,10 10,10 10))
|
|
|
|
|
102 POLYGON((20 10,20 10,20 10,20 10,20 10))
|
|
|
|
|
103 POLYGON((20 20,20 20,20 20,20 20,20 20))
|
|
|
|
|
104 POLYGON((10 20,10 20,10 20,10 20,10 20))
|
|
|
|
|
105 POLYGON((0 0,10 0,10 10,0 10,0 0))
|
|
|
|
|
106 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
|
|
|
|
107 LINESTRING(10 10,40 10)
|
|
|
|
|
107 POLYGON((10 10,40 10,40 10,10 10,10 10))
|
|
|
|
|
108 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
|
|
|
|
109 POLYGON((0 0,50 0,50 50,0 50,0 0))
|
|
|
|
|
110 POLYGON((0 0,30 0,30 30,0 30,0 0))
|
|
|
|
@ -886,7 +880,7 @@ fid ST_AsText(ST_Envelope(g))
|
|
|
|
|
112 POLYGON((1 1,21 1,21 21,1 21,1 1))
|
|
|
|
|
113 POLYGON((3 6,4 6,4 10,3 10,3 6))
|
|
|
|
|
114 POLYGON((10 0,16 0,16 48,10 48,10 0))
|
|
|
|
|
115 LINESTRING(10 0,10 48)
|
|
|
|
|
115 POLYGON((10 0,10 0,10 48,10 48,10 0))
|
|
|
|
|
116 POLYGON((1 2,21 2,21 8,1 8,1 2))
|
|
|
|
|
117 POLYGON((28 0,84 0,84 42,28 42,28 0))
|
|
|
|
|
118 POLYGON((28 0,84 0,84 42,28 42,28 0))
|
|
|
|
@ -895,11 +889,10 @@ fid ST_AsText(ST_Envelope(g))
|
|
|
|
|
121 POLYGON((10 10,20 10,20 20,10 20,10 10))
|
|
|
|
|
122 POLYGON((3 6,44 6,44 9,3 9,3 6))
|
|
|
|
|
explain extended select ST_Dimension(g), ST_GeometryType(g), ST_IsEmpty(g), ST_AsText(ST_Envelope(g)) from gis_geometry;
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_geometry NULL ALL NULL NULL NULL NULL # 100.00 NULL
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_geometry ALL NULL NULL NULL NULL 22 #
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
|
|
|
|
|
Note 1003 /* select#1 */ select st_dimension(`test`.`gis_geometry`.`g`) AS `ST_Dimension(g)`,st_geometrytype(`test`.`gis_geometry`.`g`) AS `ST_GeometryType(g)`,st_isempty(`test`.`gis_geometry`.`g`) AS `ST_IsEmpty(g)`,st_astext(st_envelope(`test`.`gis_geometry`.`g`)) AS `ST_AsText(ST_Envelope(g))` from `test`.`gis_geometry`
|
|
|
|
|
Note 1003 select st_dimension(`test`.`gis_geometry`.`g`) AS `ST_Dimension(g)`,st_geometrytype(`test`.`gis_geometry`.`g`) AS `ST_GeometryType(g)`,st_isempty(`test`.`gis_geometry`.`g`) AS `ST_IsEmpty(g)`,st_astext(st_envelope(`test`.`gis_geometry`.`g`)) AS `ST_AsText(ST_Envelope(g))` from `test`.`gis_geometry`
|
|
|
|
|
#check Geometry point functions
|
|
|
|
|
SELECT fid, ST_X(g) FROM gis_point;
|
|
|
|
|
fid ST_X(g)
|
|
|
|
@ -914,11 +907,10 @@ fid ST_Y(g)
|
|
|
|
|
103 20
|
|
|
|
|
104 20
|
|
|
|
|
explain extended select ST_X(g),ST_Y(g) FROM gis_point;
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_point NULL ALL NULL NULL NULL NULL # 100.00 NULL
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_point ALL NULL NULL NULL NULL 4 #
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
|
|
|
|
|
Note 1003 /* select#1 */ select st_x(`test`.`gis_point`.`g`) AS `ST_X(g)`,st_y(`test`.`gis_point`.`g`) AS `ST_Y(g)` from `test`.`gis_point`
|
|
|
|
|
Note 1003 select st_x(`test`.`gis_point`.`g`) AS `ST_X(g)`,st_y(`test`.`gis_point`.`g`) AS `ST_Y(g)` from `test`.`gis_point`
|
|
|
|
|
SELECT fid, ST_AsText(ST_StartPoint(g)) FROM gis_line;
|
|
|
|
|
fid ST_AsText(ST_StartPoint(g))
|
|
|
|
|
105 POINT(0 0)
|
|
|
|
@ -951,11 +943,10 @@ fid ST_IsClosed(g)
|
|
|
|
|
107 0
|
|
|
|
|
explain extended select ST_AsText(ST_StartPoint(g)),ST_AsText(ST_EndPoint(g)),
|
|
|
|
|
ST_Length(g),ST_NumPoints(g),ST_AsText(ST_PointN(g, 2)),ST_IsClosed(g) FROM gis_line;
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_line NULL ALL NULL NULL NULL NULL # 100.00 NULL
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_line ALL NULL NULL NULL NULL 3 #
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(st_startpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_StartPoint(g))`,st_astext(st_endpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_EndPoint(g))`,st_length(`test`.`gis_line`.`g`) AS `ST_Length(g)`,st_numpoints(`test`.`gis_line`.`g`) AS `ST_NumPoints(g)`,st_astext(st_pointn(`test`.`gis_line`.`g`,2)) AS `ST_AsText(ST_PointN(g, 2))`,st_isclosed(`test`.`gis_line`.`g`) AS `ST_IsClosed(g)` from `test`.`gis_line`
|
|
|
|
|
Note 1003 select st_astext(st_startpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_StartPoint(g))`,st_astext(st_endpoint(`test`.`gis_line`.`g`)) AS `ST_AsText(ST_EndPoint(g))`,st_length(`test`.`gis_line`.`g`) AS `ST_Length(g)`,st_numpoints(`test`.`gis_line`.`g`) AS `ST_NumPoints(g)`,st_astext(st_pointn(`test`.`gis_line`.`g`,2)) AS `ST_AsText(ST_PointN(g, 2))`,st_isclosed(`test`.`gis_line`.`g`) AS `ST_IsClosed(g)` from `test`.`gis_line`
|
|
|
|
|
SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_polygon;
|
|
|
|
|
fid ST_AsText(ST_Centroid(g))
|
|
|
|
|
108 POINT(15 15)
|
|
|
|
@ -983,11 +974,10 @@ fid ST_AsText(ST_InteriorRingN(g, 1))
|
|
|
|
|
110 NULL
|
|
|
|
|
explain extended select ST_AsText(ST_Centroid(g)),ST_Area(g),ST_AsText(ST_ExteriorRing(g)),
|
|
|
|
|
ST_NumInteriorRings(g),ST_AsText(ST_InteriorRingN(g, 1)) FROM gis_polygon;
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_polygon NULL ALL NULL NULL NULL NULL # 100.00 NULL
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_polygon ALL NULL NULL NULL NULL 3 #
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
|
|
|
|
|
Note 1003 /* select#1 */ select st_astext(st_centroid(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_Centroid(g))`,st_area(`test`.`gis_polygon`.`g`) AS `ST_Area(g)`,st_astext(st_exteriorring(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_ExteriorRing(g))`,st_numinteriorrings(`test`.`gis_polygon`.`g`) AS `ST_NumInteriorRings(g)`,st_astext(st_interiorringn(`test`.`gis_polygon`.`g`,1)) AS `ST_AsText(ST_InteriorRingN(g, 1))` from `test`.`gis_polygon`
|
|
|
|
|
Note 1003 select st_astext(st_centroid(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_Centroid(g))`,st_area(`test`.`gis_polygon`.`g`) AS `ST_Area(g)`,st_astext(st_exteriorring(`test`.`gis_polygon`.`g`)) AS `ST_AsText(ST_ExteriorRing(g))`,st_numinteriorrings(`test`.`gis_polygon`.`g`) AS `ST_NumInteriorRings(g)`,st_astext(st_interiorringn(`test`.`gis_polygon`.`g`,1)) AS `ST_AsText(ST_InteriorRingN(g, 1))` from `test`.`gis_polygon`
|
|
|
|
|
SELECT fid, ST_IsClosed(g) FROM gis_multi_line;
|
|
|
|
|
fid ST_IsClosed(g)
|
|
|
|
|
114 0
|
|
|
|
@ -995,8 +985,8 @@ fid ST_IsClosed(g)
|
|
|
|
|
116 0
|
|
|
|
|
SELECT fid, ST_AsText(ST_Centroid(g)) FROM gis_multi_polygon;
|
|
|
|
|
fid ST_AsText(ST_Centroid(g))
|
|
|
|
|
117 POINT(57.98031067576927 17.854754130800437)
|
|
|
|
|
118 POINT(57.98031067576927 17.854754130800437)
|
|
|
|
|
117 POINT(57.98031067576927 17.854754130800433)
|
|
|
|
|
118 POINT(57.98031067576927 17.854754130800433)
|
|
|
|
|
119 POINT(2 2)
|
|
|
|
|
SELECT fid, ST_Area(g) FROM gis_multi_polygon;
|
|
|
|
|
fid ST_Area(g)
|
|
|
|
@ -1024,11 +1014,10 @@ fid ST_NumGeometries(g)
|
|
|
|
|
121 2
|
|
|
|
|
122 2
|
|
|
|
|
explain extended SELECT fid, ST_NumGeometries(g) from gis_multi_point;
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_multi_point NULL ALL NULL NULL NULL NULL # 100.00 NULL
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 #
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
|
|
|
|
|
Note 1003 /* select#1 */ select `test`.`gis_multi_point`.`fid` AS `fid`,st_numgeometries(`test`.`gis_multi_point`.`g`) AS `ST_NumGeometries(g)` from `test`.`gis_multi_point`
|
|
|
|
|
Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,st_numgeometries(`test`.`gis_multi_point`.`g`) AS `ST_NumGeometries(g)` from `test`.`gis_multi_point`
|
|
|
|
|
SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point;
|
|
|
|
|
fid ST_AsText(ST_GeometryN(g, 2))
|
|
|
|
|
111 POINT(10 10)
|
|
|
|
@ -1055,11 +1044,10 @@ fid ST_AsText(ST_GeometryN(g, 1))
|
|
|
|
|
121 POINT(10 10)
|
|
|
|
|
122 POINT(44 6)
|
|
|
|
|
explain extended SELECT fid, ST_AsText(ST_GeometryN(g, 2)) from gis_multi_point;
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_multi_point NULL ALL NULL NULL NULL NULL # 100.00 NULL
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE gis_multi_point ALL NULL NULL NULL NULL 3 #
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
|
|
|
|
|
Note 1003 /* select#1 */ select `test`.`gis_multi_point`.`fid` AS `fid`,st_astext(st_geometryn(`test`.`gis_multi_point`.`g`,2)) AS `ST_AsText(ST_GeometryN(g, 2))` from `test`.`gis_multi_point`
|
|
|
|
|
Note 1003 select `test`.`gis_multi_point`.`fid` AS `fid`,st_astext(st_geometryn(`test`.`gis_multi_point`.`g`,2)) AS `ST_AsText(ST_GeometryN(g, 2))` from `test`.`gis_multi_point`
|
|
|
|
|
SELECT g1.fid as first, g2.fid as second,
|
|
|
|
|
MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g) as o,
|
|
|
|
|
MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t,
|
|
|
|
@ -1067,9 +1055,9 @@ MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r
|
|
|
|
|
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
|
|
|
|
first second w c o e d t i r
|
|
|
|
|
120 120 1 1 0 1 0 0 1 0
|
|
|
|
|
120 121 0 0 0 0 0 1 1 0
|
|
|
|
|
120 121 0 0 0 0 0 1 1 1
|
|
|
|
|
120 122 0 0 1 0 0 0 1 0
|
|
|
|
|
121 120 0 0 0 0 0 1 1 0
|
|
|
|
|
121 120 0 0 0 0 0 1 1 1
|
|
|
|
|
121 121 1 1 0 1 0 0 1 0
|
|
|
|
|
121 122 0 0 0 0 1 0 0 0
|
|
|
|
|
122 120 0 0 1 0 0 0 1 0
|
|
|
|
@ -1080,12 +1068,11 @@ MBRWithin(g1.g, g2.g) as w, MBRContains(g1.g, g2.g) as c, MBROverlaps(g1.g, g2.g
|
|
|
|
|
MBREquals(g1.g, g2.g) as e, MBRDisjoint(g1.g, g2.g) as d, ST_Touches(g1.g, g2.g) as t,
|
|
|
|
|
MBRIntersects(g1.g, g2.g) as i, ST_Crosses(g1.g, g2.g) as r
|
|
|
|
|
FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
|
|
|
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE g1 NULL ALL NULL NULL NULL NULL # 100.00 Using temporary; Using filesort
|
|
|
|
|
1 SIMPLE g2 NULL ALL NULL NULL NULL NULL # 100.00 Using join buffer (Block Nested Loop)
|
|
|
|
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
|
|
|
1 SIMPLE g1 ALL NULL NULL NULL NULL 3 # Using temporary; Using filesort
|
|
|
|
|
1 SIMPLE g2 ALL NULL NULL NULL NULL 3 # Using join buffer (flat, BNL join)
|
|
|
|
|
Warnings:
|
|
|
|
|
Warning 1681 'EXTENDED' is deprecated and will be removed in a future release.
|
|
|
|
|
Note 1003 /* select#1 */ select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,mbrwithin(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,mbrcontains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,mbroverlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,mbrequals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,mbrdisjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,st_touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,mbrintersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,st_crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `first`,`second`
|
|
|
|
|
Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,mbrwithin(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,mbrcontains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,mbroverlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,mbrequals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,mbrdisjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,st_touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,mbrintersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,st_crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
|
|
|
|
|
# check support of Foreign Key constraint
|
|
|
|
|
CREATE TABLE parent (id GEOMETRY NOT NULL,PRIMARY KEY (id(10))) ENGINE=INNODB;
|
|
|
|
|
CREATE TABLE child (id GEOMETRY, parent_id GEOMETRY,
|
|
|
|
@ -1093,7 +1080,7 @@ INDEX par_ind (parent_id(10)),
|
|
|
|
|
FOREIGN KEY (parent_id(10)) REFERENCES parent(id)
|
|
|
|
|
ON DELETE CASCADE
|
|
|
|
|
) ENGINE=INNODB;
|
|
|
|
|
ERROR HY000: Cannot add foreign key constraint
|
|
|
|
|
ERROR HY000: Can't create table `test`.`child` (errno: 150 "Foreign key constraint is incorrectly formed")
|
|
|
|
|
#check partition table support
|
|
|
|
|
CREATE TABLE emp2(
|
|
|
|
|
id GEOMETRY NOT NULL,
|
|
|
|
|