File: repeatable_spatial.result

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (158 lines) | stat: -rw-r--r-- 6,923 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL SRID 0,
c3 LINESTRING NOT NULL SRID 0,c4 POLYGON NOT NULL SRID 0,c5 GEOMETRY NOT NULL SRID 0) 
ENGINE=InnoDB;
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2);
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
ERROR HY000: Incorrect usage of spatial/fulltext/hash index and explicit index order
ALTER TABLE tab ADD SPATIAL KEY idx3(c3);
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4) COMMENT 'testing spatial index on Polygon';
ALTER TABLE tab ADD SPATIAL KEY idx5(c5) COMMENT 'testing spatial index on Geometry';
INSERT INTO tab(c1,c2,c3,c4,c5) 
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'));
SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab;
c1	ST_AsText(c2)	ST_AsText(c3)	ST_AsText(c4)	ST_AsText(c5)
1	POINT(10 10)	LINESTRING(5 5,20 20,30 30)	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
SELECT COUNT(*) FROM tab;
COUNT(*)
1
"In connection 1"
SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT @@transaction_isolation;
@@transaction_isolation
REPEATABLE-READ
SELECT COUNT(*) FROM tab;
COUNT(*)
1
SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab;
c1	ST_AsText(c2)	ST_AsText(c3)	ST_AsText(c4)	ST_AsText(c5)
1	POINT(10 10)	LINESTRING(5 5,20 20,30 30)	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
"In connection 2"
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT @@transaction_isolation;
@@transaction_isolation
READ-COMMITTED
START TRANSACTION;
INSERT INTO tab(c1,c2,c3,c4,c5) 
VALUES(2,ST_GeomFromText('POINT(20 20)'),ST_GeomFromText('LINESTRING(20 20,30 30,40 40)'),
ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'),
ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'));
SET @g1 = ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))');
SET @g2 = ST_GeomFromText('POINT(10 10)');
UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))')
WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2);
"In connection 1"
SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))');
SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3);
c1	ST_AsText(c2)	ST_AsText(c4)	ST_AsText(c5)
SELECT COUNT(*) FROM tab;
COUNT(*)
1
START TRANSACTION;
SELECT COUNT(*) FROM tab;
COUNT(*)
1
"In connection 2"
SELECT COUNT(*) FROM tab;
COUNT(*)
2
COMMIT;
"In connection 1"
SELECT COUNT(*) FROM tab;
COUNT(*)
1
SET @g4 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))');
SELECT ST_AsText(c5) FROM tab  WHERE MBREquals(tab.c5, @g4);
ST_AsText(c5)
COMMIT;
SELECT ST_AsText(c5) FROM tab  WHERE MBREquals(tab.c5, @g4);
ST_AsText(c5)
POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
SELECT COUNT(*) FROM tab;
COUNT(*)
2
SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab;
c1	ST_AsText(c2)	ST_AsText(c4)	ST_AsText(c5)
1	POINT(10 10)	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))	POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
2	POINT(20 20)	POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))	POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
DROP TABLE tab;
CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL SRID 0,
c3 LINESTRING NOT NULL SRID 0,c4 POLYGON NOT NULL SRID 0,c5 GEOMETRY NOT NULL SRID 0) 
ENGINE=InnoDB;
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2);
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
ERROR HY000: Incorrect usage of spatial/fulltext/hash index and explicit index order
ALTER TABLE tab ADD SPATIAL KEY idx3(c3);
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4) COMMENT 'testing spatial index on Polygon';
ALTER TABLE tab ADD SPATIAL KEY idx5(c5) COMMENT 'testing spatial index on Geometry';
INSERT INTO tab(c1,c2,c3,c4,c5) 
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'));
SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab;
c1	ST_AsText(c2)	ST_AsText(c3)	ST_AsText(c4)	ST_AsText(c5)
1	POINT(10 10)	LINESTRING(5 5,20 20,30 30)	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
SELECT COUNT(*) FROM tab;
COUNT(*)
1
"In connection 1"
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT @@transaction_isolation;
@@transaction_isolation
REPEATABLE-READ
SELECT COUNT(*) FROM tab;
COUNT(*)
1
SELECT c1,ST_AsText(c2),ST_AsText(c3),ST_AsText(c4),ST_AsText(c5) FROM tab;
c1	ST_AsText(c2)	ST_AsText(c3)	ST_AsText(c4)	ST_AsText(c5)
1	POINT(10 10)	LINESTRING(5 5,20 20,30 30)	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))
"In connection 2"
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT @@transaction_isolation;
@@transaction_isolation
READ-COMMITTED
START TRANSACTION;
INSERT INTO tab(c1,c2,c3,c4,c5) 
VALUES(2,ST_GeomFromText('POINT(20 20)'),ST_GeomFromText('LINESTRING(20 20,30 30,40 40)'),
ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'),
ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))'));
SET @g1 = ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))');
SET @g2 = ST_GeomFromText('POINT(10 10)');
UPDATE tab SET C5 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))')
WHERE MBREquals(tab.c4, @g1) AND MBREquals(tab.c2, @g2);
"In connection 1"
SET @g3 = ST_GeomFromText('POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))');
SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab WHERE MBREquals(tab.c5, @g3);
c1	ST_AsText(c2)	ST_AsText(c4)	ST_AsText(c5)
SELECT COUNT(*) FROM tab;
COUNT(*)
1
START TRANSACTION;
SELECT COUNT(*) FROM tab;
COUNT(*)
1
"In connection 2"
SELECT COUNT(*) FROM tab;
COUNT(*)
2
COMMIT;
"In connection 1"
SELECT COUNT(*) FROM tab;
COUNT(*)
1
SET @g4 = ST_GeomFromText('POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))');
SELECT ST_AsText(c5) FROM tab  WHERE MBREquals(tab.c5, @g4);
ST_AsText(c5)
COMMIT;
SELECT ST_AsText(c5) FROM tab  WHERE MBREquals(tab.c5, @g4);
ST_AsText(c5)
POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
SELECT COUNT(*) FROM tab;
COUNT(*)
2
SELECT c1,ST_AsText(c2),ST_AsText(c4),ST_AsText(c5) FROM tab;
c1	ST_AsText(c2)	ST_AsText(c4)	ST_AsText(c5)
1	POINT(10 10)	POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))	POLYGON((300 300,400 400,500 500,300 500,300 400,300 300))
2	POINT(20 20)	POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))	POLYGON((40 50,40 70,50 100,70 100,80 80,70 50,40 50))
DROP TABLE tab;