File: rpl_gis_geometry.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 (343 lines) | stat: -rw-r--r-- 19,005 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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
include/master-slave.inc
Warnings:
Note	####	Sending passwords in plain text without SSL/TLS is extremely insecure.
Note	####	Storing MySQL user name or password information in the connection metadata repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START REPLICA; see the 'START REPLICA Syntax' in the MySQL Manual for more information.
[connection master]
# Create tables
CREATE TABLE point_geom(id INT PRIMARY KEY, pt POINT NOT NULL SRID 0, SPATIAL INDEX(pt));
CREATE TABLE linestring_geom(id INT PRIMARY KEY, lnstr LINESTRING NOT NULL SRID 0, SPATIAL INDEX(lnstr));
CREATE TABLE polygon_geom(id INT PRIMARY KEY, poly POLYGON NOT NULL SRID 0, SPATIAL INDEX(poly));
CREATE TABLE multipoint_geom(id INT PRIMARY KEY, mpt MULTIPOINT NOT NULL SRID 0, SPATIAL INDEX(mpt));
CREATE TABLE multilinestring_geom(id INT PRIMARY KEY, mlnstr MULTILINESTRING NOT NULL SRID 0, SPATIAL INDEX(mlnstr));
CREATE TABLE multipolygon_geom(id INT PRIMARY KEY, mpoly MULTIPOLYGON NOT NULL SRID 0, SPATIAL INDEX(mpoly));
CREATE TABLE geometrycollection_geom(id INT PRIMARY KEY, geomcoll GEOMETRYCOLLECTION NOT NULL SRID 0, SPATIAL INDEX(geomcoll));
CREATE TABLE geom_data(id INT PRIMARY KEY , geom GEOMETRY NOT NULL SRID 0, SPATIAL INDEX(geom));
# Insert different GEOMETRY data
INSERT INTO point_geom VALUES
(10,ST_GEOMFROMTEXT('POINT(0 0)')),
(11,ST_GEOMFROMTEXT('POINT(6 4)')),
(12,ST_GEOMFROMTEXT('POINT(3 4)')),
(13,ST_GEOMFROMTEXT('POINT(5 5)')),
(14,ST_GEOMFROMTEXT('POINT(2 1)'));
INSERT INTO linestring_geom VALUES
(20,ST_GEOMFROMTEXT('LINESTRING(0 0,5 5,6 6)')),
(21,ST_GEOMFROMTEXT('LINESTRING(2 3,4 5)')),
(22,ST_GEOMFROMTEXT('LINESTRING(3 0,7 5,6 3,2 0)')),
(23,ST_GEOMFROMTEXT('LINESTRING(5 0,9 5,2 6)')),
(24,ST_GEOMFROMTEXT('LINESTRING(0 0,5 3,3 4,7 7,9 0)'));
INSERT INTO polygon_geom VALUES
(30,ST_GEOMFROMTEXT('POLYGON((0 0,6 7,8 8,3 9,0 0),(3 6,4 6,4 7,3 6))')),
(31,ST_GEOMFROMTEXT('POLYGON((1 2,5 4,9 9,1 9,1 2))')),
(32,ST_GEOMFROMTEXT('POLYGON((2 3,3 5,8 1,2 6,2 3))')),
(33,ST_GEOMFROMTEXT('POLYGON((8 0,2 7,5 6,9 5,8 0))')),
(34,ST_GEOMFROMTEXT('POLYGON((5 2,5 10,10 10,10 2,5 2),(7 5,9 5,8 8,6 9,7 5))'));
INSERT INTO multipoint_geom VALUES
(40,ST_GEOMFROMTEXT('MULTIPOINT(2 2,3 3,4 4)')),
(41,ST_GEOMFROMTEXT('MULTIPOINT(1 2,3 0,7 4,6 6)')),
(42,ST_GEOMFROMTEXT('MULTIPOINT(2 9,3 4,6 4,5 5,3 3)')),
(43,ST_GEOMFROMTEXT('MULTIPOINT(8 7,2 1,5 4,3 4,2 8,4 5)')),
(44,ST_GEOMFROMTEXT('MULTIPOINT(3 6,2 3,7 3)'));
INSERT INTO multilinestring_geom VALUES
(50,ST_GEOMFROMTEXT('MULTILINESTRING((0 0,2 3,4 5),(6 6,8 8,9 9,10 10))')),
(51,ST_GEOMFROMTEXT('MULTILINESTRING((2 3,5 6,4 4,1 1),(2 6,5 8,7 9,9 10))')),
(52,ST_GEOMFROMTEXT('MULTILINESTRING((0 1,6 3,7 5),(6 2,5 8,6 9))')),
(53,ST_GEOMFROMTEXT('MULTILINESTRING((5 5,3 7,7 8),(2 2,6 9,10 9),(1 2,6 7,9 9))')),
(54,ST_GEOMFROMTEXT('MULTILINESTRING((0 1,5 3,8 5),(7 6,9 8,10 9,10 11))'));
INSERT INTO multipolygon_geom VALUES
(60,ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((2 2,4 5,6 2,2 2)))')),
(61,ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 6,6 6,6 0,0 0)),((2 1,2 3,5 3,5 1,2 1)))')),
(62,ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 7,7 7,7 0,0 0)),((3 3,5 6,7 3,3 3)),((2 6,5 8,8 6,2 6)))')),
(63,ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 8,8 8,8 0,0 0)),((0 0,0 2,2 2,2 0,0 0)))')),
(64,ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 9,9 9,9 0,0 0)),((1 1,1 3,3 3,3 1,1 1)))'));
INSERT INTO geometrycollection_geom VALUES
(70,ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                            'POINT(0 0),'
                            'LINESTRING(0 0,10 10),'
                            'POLYGON((0 0,0 10,10 10,10 0, 0 0)),'
                            'MULTIPOINT(0 0,2 2,4 4,6 6,8 8,10 10),'
                            'MULTILINESTRING((0 0,10 10),(0 10,10 0)),'
                            'MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))')),
(71,ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                            'POINT(4 5),'
                            'LINESTRING(0 0,10 10,11 11),'
                            'POLYGON((0 0,0 8,8 8,8 0, 0 0)),'
                            'MULTIPOINT(0 0,4 4,6 4,8 6,9 9,12 12),'
                            'MULTILINESTRING((0 0,11 11),(0 8,1 0)),'
                            'MULTIPOLYGON(((0 0,0 9,9 9,9 0,0 0)),((1 1,4 4,4 1,1 1))))')),
(72,ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                            'POINT(0 0),'
                            'LINESTRING(0 0,2 2,3 3,4 4),'
                            'POLYGON((0 0,0 5,5 5,5 0, 0 0)),'
                            'MULTIPOINT(0 5,1 6),'
                            'MULTILINESTRING((0 0,9 9,10 10),(0 1,1 0),(1 0,1 1,1 2,1 3,1 4)),'
                            'MULTIPOLYGON(((0 0,0 6,6 6,6 0,0 0)),((1 1,7 10,9 8,7 4,1 1))))'));
INSERT INTO geom_data SELECT * FROM point_geom;
INSERT INTO geom_data SELECT * FROM linestring_geom;
INSERT INTO geom_data SELECT * FROM polygon_geom;
INSERT INTO geom_data SELECT * FROM multipoint_geom;
INSERT INTO geom_data SELECT * FROM multilinestring_geom;
INSERT INTO geom_data SELECT * FROM multipolygon_geom;
INSERT INTO geom_data SELECT * FROM geometrycollection_geom;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether data was inserted on the slave
SELECT id, ST_ASTEXT(geom) FROM geom_data;
id	ST_ASTEXT(geom)
10	POINT(0 0)
11	POINT(6 4)
12	POINT(3 4)
13	POINT(5 5)
14	POINT(2 1)
20	LINESTRING(0 0,5 5,6 6)
21	LINESTRING(2 3,4 5)
22	LINESTRING(3 0,7 5,6 3,2 0)
23	LINESTRING(5 0,9 5,2 6)
24	LINESTRING(0 0,5 3,3 4,7 7,9 0)
30	POLYGON((0 0,6 7,8 8,3 9,0 0),(3 6,4 6,4 7,3 6))
31	POLYGON((1 2,5 4,9 9,1 9,1 2))
32	POLYGON((2 3,3 5,8 1,2 6,2 3))
33	POLYGON((8 0,2 7,5 6,9 5,8 0))
34	POLYGON((5 2,5 10,10 10,10 2,5 2),(7 5,9 5,8 8,6 9,7 5))
40	MULTIPOINT((2 2),(3 3),(4 4))
41	MULTIPOINT((1 2),(3 0),(7 4),(6 6))
42	MULTIPOINT((2 9),(3 4),(6 4),(5 5),(3 3))
43	MULTIPOINT((8 7),(2 1),(5 4),(3 4),(2 8),(4 5))
44	MULTIPOINT((3 6),(2 3),(7 3))
50	MULTILINESTRING((0 0,2 3,4 5),(6 6,8 8,9 9,10 10))
51	MULTILINESTRING((2 3,5 6,4 4,1 1),(2 6,5 8,7 9,9 10))
52	MULTILINESTRING((0 1,6 3,7 5),(6 2,5 8,6 9))
53	MULTILINESTRING((5 5,3 7,7 8),(2 2,6 9,10 9),(1 2,6 7,9 9))
54	MULTILINESTRING((0 1,5 3,8 5),(7 6,9 8,10 9,10 11))
60	MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((2 2,4 5,6 2,2 2)))
61	MULTIPOLYGON(((0 0,0 6,6 6,6 0,0 0)),((2 1,2 3,5 3,5 1,2 1)))
62	MULTIPOLYGON(((0 0,0 7,7 7,7 0,0 0)),((3 3,5 6,7 3,3 3)),((2 6,5 8,8 6,2 6)))
63	MULTIPOLYGON(((0 0,0 8,8 8,8 0,0 0)),((0 0,0 2,2 2,2 0,0 0)))
64	MULTIPOLYGON(((0 0,0 9,9 9,9 0,0 0)),((1 1,1 3,3 3,3 1,1 1)))
70	GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,10 10),POLYGON((0 0,0 10,10 10,10 0,0 0)),MULTIPOINT((0 0),(2 2),(4 4),(6 6),(8 8),(10 10)),MULTILINESTRING((0 0,10 10),(0 10,10 0)),MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5))))
71	GEOMETRYCOLLECTION(POINT(4 5),LINESTRING(0 0,10 10,11 11),POLYGON((0 0,0 8,8 8,8 0,0 0)),MULTIPOINT((0 0),(4 4),(6 4),(8 6),(9 9),(12 12)),MULTILINESTRING((0 0,11 11),(0 8,1 0)),MULTIPOLYGON(((0 0,0 9,9 9,9 0,0 0)),((1 1,4 4,4 1,1 1))))
72	GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(0 0,2 2,3 3,4 4),POLYGON((0 0,0 5,5 5,5 0,0 0)),MULTIPOINT((0 5),(1 6)),MULTILINESTRING((0 0,9 9,10 10),(0 1,1 0),(1 0,1 1,1 2,1 3,1 4)),MULTIPOLYGON(((0 0,0 6,6 6,6 0,0 0)),((1 1,7 10,9 8,7 4,1 1))))
SELECT COUNT(*) FROM geom_data;
COUNT(*)
33
SELECT ST_AREA(geom) FROM geom_data WHERE ST_GEOMETRYTYPE(geom) = 'POLYGON';
ST_AREA(geom)
19.5
34
2
18
33.5
include/diff_tables.inc [master:geom_data, slave:geom_data]
[Connection Master]
# Create a view on LINESTRING type
CREATE VIEW linestring_view
AS SELECT ST_NUMPOINTS(geom) AS numpoints, ST_LENGTH(geom) AS length
FROM geom_data WHERE ST_GEOMETRYTYPE(geom) = 'LINESTRING';
# Create a view on GEOMETRYCOLLECTION type
CREATE VIEW geomcollection_view
AS SELECT ST_NUMGEOMETRIES(geom) as numgeometries, ST_GEOMETRYN(geom,3) as nthgeom
FROM geom_data WHERE ST_GEOMETRYTYPE(geom) = 'GEOMETRYCOLLECTION';
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether views were created on slave
SELECT * FROM linestring_view;
numpoints	length
3	8.485281374238571
2	2.8284271247461903
4	13.639192214932638
3	13.474192049298324
5	20.34712976162561
SELECT numgeometries, ST_ASTEXT(nthgeom) FROM geomcollection_view;
numgeometries	ST_ASTEXT(nthgeom)
include/diff_tables.inc [master:geom_data, slave:geom_data]
[Connection Master]
# Drop the views
DROP VIEW linestring_view;
DROP VIEW geomcollection_view;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether views are dropped on slave
SELECT * FROM linestring_view;
ERROR 42S02: Table 'test.linestring_view' doesn't exist
SELECT * FROM geomcollection_view;
ERROR 42S02: Table 'test.geomcollection_view' doesn't exist
[Connection Master]
# Update a row in the table
UPDATE geom_data SET geom = ST_GEOMFROMTEXT('POINT(4 5)') WHERE id = 10;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether row is updated on slave
SELECT id, ST_ASTEXT(geom) FROM geom_data WHERE id = 10;
id	ST_ASTEXT(geom)
10	POINT(4 5)
include/diff_tables.inc [master:geom_data, slave:geom_data]
[Connection Master]
# Delete a row from the table
DELETE FROM geom_data WHERE id = 13;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether row is deleted on slave
SELECT COUNT(geom) FROM geom_data;
COUNT(geom)
32
include/diff_tables.inc [master:geom_data, slave:geom_data]
[Connection Master]
# Drop the spatial index from the table
ALTER TABLE geom_data DROP INDEX geom;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether spatial index is dropped on slave
SHOW CREATE TABLE geom_data;
Table	Create Table
geom_data	CREATE TABLE `geom_data` (
  `id` int NOT NULL,
  `geom` geometry NOT NULL /*!80003 SRID 0 */,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
[Connection Master]
# Add spatial index to the column of GEOMETRY data type
ALTER TABLE geom_data ADD SPATIAL INDEX(geom);
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether spatial index is added on slave
SHOW CREATE TABLE geom_data;
Table	Create Table
geom_data	CREATE TABLE `geom_data` (
  `id` int NOT NULL,
  `geom` geometry NOT NULL /*!80003 SRID 0 */,
  PRIMARY KEY (`id`),
  SPATIAL KEY `geom` (`geom`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
[Connection Master]
# Add a column of GEOMETRY data type
ALTER TABLE geom_data ADD COLUMN geom1 GEOMETRY;
# Insert values into the column
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POINT(2 3)') WHERE id = 10;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POINT(0 0)') WHERE id = 11;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POINT(9 9)') WHERE id = 12;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POINT(8 7)') WHERE id = 14;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('LINESTRING(0 0,1 1,2 2,3 3)') WHERE id = 20;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('LINESTRING(5 5,6 7,2 3,9 9)') WHERE id = 21;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('LINESTRING(6 6,8 9,6 7,10 10)') WHERE id = 22;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('LINESTRING(7 7,5 5,7 8,4 5)') WHERE id = 23;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('LINESTRING(9 9,1 6,0 0,2 3)') WHERE id = 24;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POLYGON((0 0,0 6,6 6,6 0,0 0))') WHERE id = 30;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POLYGON((0 0,6 6,6 0,0 0))') WHERE id = 31;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POLYGON((0 0,0 7,7 7,7 0,0 0))') WHERE id = 32;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POLYGON((1 1,1 6,6 6,6 1,1 1))') WHERE id = 33;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('POLYGON((2 2,2 8,8 8,8 2,2 2))') WHERE id = 34;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOINT(3 4,5 6,10 10,4 4)') WHERE id = 40;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOINT(0 0,2 2,3 3)') WHERE id = 41;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOINT(5 5,5 6,5 7,5 8)') WHERE id = 42;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOINT(7 8,2 3,5 6)') WHERE id = 43;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOINT(6 7,3 4,2 5,7 8,9 9)') WHERE id = 44;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTILINESTRING((5 6,8 8,9 9),(0 0,3 3,6 7))') WHERE id = 50;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTILINESTRING((5 6,8 8,9 9),(0 0,3 3,6 7),(1 1,5 5))') WHERE id = 51;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTILINESTRING((6 7,9 9,10 10),(0 0,3 3,6 7))') WHERE id = 52;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTILINESTRING((7 6,7 8,7 9),(1 1,4 4,7 7))') WHERE id = 53;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTILINESTRING((4 6,9 8,7 9),(3 0,3 3,3 7))') WHERE id = 54;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 3,3 3,3 0,0 0)),((3 7,6 9,9 7,3 7)))') WHERE id = 60;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1,1 4,4 4,4 1,1 1)),((4 7,7 9,10 7,4 7)))') WHERE id = 61;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOLYGON(((2 2,2 5,5 5,5 2,2 2)),((5 6,7 10,9 7,5 6)),((0 0,5 5,5 0,0 0)))') WHERE id = 62;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOLYGON(((3 3,3 6,6 6,6 3,3 3)),((0 0,0 2,2 2,2 0,0 0)))') WHERE id = 63;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 7,7 7,7 4,4 4)),((5 7,6 9,9 7,5 7)))') WHERE id = 64;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                                                 'POINT(6 7),'
                                                 'LINESTRING(4 4,5 5,8 8,10 10),'
                                                 'POLYGON((3 3,3 6,6 6,6 3,3 3)),'
                                                 'MULTIPOINT(5 5,7 8,9 10,10 10),'
                                                 'MULTILINESTRING((2 2,3 4,5 5),(5 6,7 7,7 8,9 9)),'
                                                 'MULTIPOLYGON(((4 4,4 7,7 7,7 4,4 4)),((3 3,5 6,7 3,3 3))))')
WHERE id = 70;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                                                 'POINT(7 8),'
                                                 'LINESTRING(5 5,6 6,9 9,10 10),'
                                                 'POLYGON((0 0,0 8,8 8,8 0,0 0)),'
                                                 'MULTIPOINT(7 5,7 8,7 10,7 11),'
                                                 'MULTILINESTRING((2 1,3 6,9 5),(9 6,8 7,7 6,5 9)),'
                                                 'MULTIPOLYGON(((0 0,0 4,4 4,4 0,0 0)),((6 3,5 6,7 3,6 3))))')
WHERE id = 71;
UPDATE geom_data SET geom1 = ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                                                 'POINT(9 6),'
                                                 'LINESTRING(7 8,7 9,7 10),'
                                                 'POLYGON((4 5,6 7,9 5,4 5)),'
                                                 'MULTIPOINT(5 0,6 0),'
                                                 'MULTILINESTRING((4 3,4 7,4 8),(4 4,5 6,7 6,8 8,10 10)),'
                                                 'MULTIPOLYGON(((7 7,7 10,10 10,10 7,7 7)),((3 4,5 7,7 4,3 4))))')
WHERE id = 72;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether the column is added and populated on slave
SHOW CREATE TABLE geom_data;
Table	Create Table
geom_data	CREATE TABLE `geom_data` (
  `id` int NOT NULL,
  `geom` geometry NOT NULL /*!80003 SRID 0 */,
  `geom1` geometry DEFAULT NULL,
  PRIMARY KEY (`id`),
  SPATIAL KEY `geom` (`geom`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
SELECT id, ST_ASTEXT(geom1), ST_GEOMETRYTYPE(geom1), ST_DIMENSION(geom1) FROM geom_data;
id	ST_ASTEXT(geom1)	ST_GEOMETRYTYPE(geom1)	ST_DIMENSION(geom1)
10	POINT(2 3)	POINT	0
11	POINT(0 0)	POINT	0
12	POINT(9 9)	POINT	0
14	POINT(8 7)	POINT	0
20	LINESTRING(0 0,1 1,2 2,3 3)	LINESTRING	1
21	LINESTRING(5 5,6 7,2 3,9 9)	LINESTRING	1
22	LINESTRING(6 6,8 9,6 7,10 10)	LINESTRING	1
23	LINESTRING(7 7,5 5,7 8,4 5)	LINESTRING	1
24	LINESTRING(9 9,1 6,0 0,2 3)	LINESTRING	1
30	POLYGON((0 0,0 6,6 6,6 0,0 0))	POLYGON	2
31	POLYGON((0 0,6 6,6 0,0 0))	POLYGON	2
32	POLYGON((0 0,0 7,7 7,7 0,0 0))	POLYGON	2
33	POLYGON((1 1,1 6,6 6,6 1,1 1))	POLYGON	2
34	POLYGON((2 2,2 8,8 8,8 2,2 2))	POLYGON	2
40	MULTIPOINT((3 4),(5 6),(10 10),(4 4))	MULTIPOINT	0
41	MULTIPOINT((0 0),(2 2),(3 3))	MULTIPOINT	0
42	MULTIPOINT((5 5),(5 6),(5 7),(5 8))	MULTIPOINT	0
43	MULTIPOINT((7 8),(2 3),(5 6))	MULTIPOINT	0
44	MULTIPOINT((6 7),(3 4),(2 5),(7 8),(9 9))	MULTIPOINT	0
50	MULTILINESTRING((5 6,8 8,9 9),(0 0,3 3,6 7))	MULTILINESTRING	1
51	MULTILINESTRING((5 6,8 8,9 9),(0 0,3 3,6 7),(1 1,5 5))	MULTILINESTRING	1
52	MULTILINESTRING((6 7,9 9,10 10),(0 0,3 3,6 7))	MULTILINESTRING	1
53	MULTILINESTRING((7 6,7 8,7 9),(1 1,4 4,7 7))	MULTILINESTRING	1
54	MULTILINESTRING((4 6,9 8,7 9),(3 0,3 3,3 7))	MULTILINESTRING	1
60	MULTIPOLYGON(((0 0,0 3,3 3,3 0,0 0)),((3 7,6 9,9 7,3 7)))	MULTIPOLYGON	2
61	MULTIPOLYGON(((1 1,1 4,4 4,4 1,1 1)),((4 7,7 9,10 7,4 7)))	MULTIPOLYGON	2
62	MULTIPOLYGON(((2 2,2 5,5 5,5 2,2 2)),((5 6,7 10,9 7,5 6)),((0 0,5 5,5 0,0 0)))	MULTIPOLYGON	2
63	MULTIPOLYGON(((3 3,3 6,6 6,6 3,3 3)),((0 0,0 2,2 2,2 0,0 0)))	MULTIPOLYGON	2
64	MULTIPOLYGON(((4 4,4 7,7 7,7 4,4 4)),((5 7,6 9,9 7,5 7)))	MULTIPOLYGON	2
70	GEOMETRYCOLLECTION(POINT(6 7),LINESTRING(4 4,5 5,8 8,10 10),POLYGON((3 3,3 6,6 6,6 3,3 3)),MULTIPOINT((5 5),(7 8),(9 10),(10 10)),MULTILINESTRING((2 2,3 4,5 5),(5 6,7 7,7 8,9 9)),MULTIPOLYGON(((4 4,4 7,7 7,7 4,4 4)),((3 3,5 6,7 3,3 3))))	GEOMCOLLECTION	2
71	GEOMETRYCOLLECTION(POINT(7 8),LINESTRING(5 5,6 6,9 9,10 10),POLYGON((0 0,0 8,8 8,8 0,0 0)),MULTIPOINT((7 5),(7 8),(7 10),(7 11)),MULTILINESTRING((2 1,3 6,9 5),(9 6,8 7,7 6,5 9)),MULTIPOLYGON(((0 0,0 4,4 4,4 0,0 0)),((6 3,5 6,7 3,6 3))))	GEOMCOLLECTION	2
72	GEOMETRYCOLLECTION(POINT(9 6),LINESTRING(7 8,7 9,7 10),POLYGON((4 5,6 7,9 5,4 5)),MULTIPOINT((5 0),(6 0)),MULTILINESTRING((4 3,4 7,4 8),(4 4,5 6,7 6,8 8,10 10)),MULTIPOLYGON(((7 7,7 10,10 10,10 7,7 7)),((3 4,5 7,7 4,3 4))))	GEOMCOLLECTION	2
include/diff_tables.inc [master:geom_data, slave:geom_data]
[Connection Master]
# Drop a column from the table
ALTER TABLE geom_data DROP COLUMN geom1;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether column is dropped on slave
SHOW CREATE TABLE geom_data;
Table	Create Table
geom_data	CREATE TABLE `geom_data` (
  `id` int NOT NULL,
  `geom` geometry NOT NULL /*!80003 SRID 0 */,
  PRIMARY KEY (`id`),
  SPATIAL KEY `geom` (`geom`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
[Connection Master]
# Drop all the tables
DROP TABLE point_geom;
DROP TABLE linestring_geom;
DROP TABLE polygon_geom;
DROP TABLE multipoint_geom;
DROP TABLE multilinestring_geom;
DROP TABLE multipolygon_geom;
DROP TABLE geometrycollection_geom;
DROP TABLE geom_data;
include/sync_slave_sql_with_master.inc
[Connection Slave]
# Check whether table is dropped on slave
SELECT COUNT(id) FROM geom_data;
ERROR 42S02: Table 'test.geom_data' doesn't exist
include/rpl_end.inc