mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge 10.2 into bb-10.2-ext
This commit is contained in:
@ -86,6 +86,7 @@ ST_GeomFromText('POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010
|
||||
ST_GeomFromText('POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010 5010))'));
|
||||
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
|
||||
@ -95,7 +96,7 @@ ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry';
|
||||
|
||||
ALTER TABLE tab ADD INDEX idx6(c4(10)) USING BTREE;
|
||||
|
||||
--disable_info
|
||||
|
||||
# Test the MBRContains
|
||||
SET @g1 = ST_GeomFromText( 'POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))');
|
||||
@ -195,22 +196,26 @@ SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab WHERE ST_Crosses(tab.c4, @g1);
|
||||
|
||||
DELETE FROM tab WHERE ST_Crosses(tab.c4, @g1);
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab CHANGE COLUMN c2 c22 POINT NOT NULL;
|
||||
|
||||
ALTER TABLE tab CHANGE COLUMN c3 c33 LINESTRING NOT NULL;
|
||||
|
||||
ALTER TABLE tab CHANGE COLUMN c4 c44 POLYGON NOT NULL;
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE tab;
|
||||
|
||||
--replace_column 7 #
|
||||
SHOW INDEX FROM tab;
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab CHANGE COLUMN c22 c2 POINT NOT NULL;
|
||||
|
||||
ALTER TABLE tab CHANGE COLUMN c33 c3 LINESTRING NOT NULL;
|
||||
|
||||
ALTER TABLE tab CHANGE COLUMN c44 c4 POLYGON NOT NULL;
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE tab;
|
||||
|
||||
@ -234,9 +239,11 @@ DELETE FROM tab WHERE MBREquals(tab.c4, @g1);
|
||||
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab WHERE MBREquals(tab.c4, @g1);
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab DROP PRIMARY KEY;
|
||||
|
||||
ALTER TABLE tab ADD PRIMARY KEY(c2) ;
|
||||
--disable_info
|
||||
|
||||
SET @g1 = ST_GeomFromText( 'POLYGON((0 0,0 30,30 40,40 50,50 30,0 0))');
|
||||
|
||||
@ -298,9 +305,11 @@ SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab WHERE MBROverlaps(tab.c4, @g1) OR
|
||||
|
||||
INSERT INTO tab SELECT * FROM tab1;
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab DROP PRIMARY KEY;
|
||||
|
||||
ALTER TABLE tab DROP INDEX idx2;
|
||||
--disable_info
|
||||
|
||||
# Check spatial index on temp tables
|
||||
--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
|
||||
@ -346,11 +355,13 @@ SHOW INDEX FROM tab;
|
||||
|
||||
DELETE FROM tab;
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab ADD PRIMARY KEY(c2);
|
||||
|
||||
CREATE SPATIAL INDEX idx2 ON tab(c2 ASC);
|
||||
|
||||
ALTER TABLE tab ADD CONSTRAINT const_1 UNIQUE(c2);
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE tab;
|
||||
|
||||
@ -366,6 +377,7 @@ ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'));
|
||||
|
||||
DELETE FROM tab;
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab DROP PRIMARY KEY ;
|
||||
|
||||
ALTER TABLE tab DROP KEY const_1;
|
||||
@ -373,6 +385,7 @@ ALTER TABLE tab DROP KEY const_1;
|
||||
ALTER TABLE tab ADD PRIMARY KEY(c5(10));
|
||||
|
||||
ALTER TABLE tab ADD CONSTRAINT const_1 UNIQUE(c5(10));
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE tab;
|
||||
|
||||
@ -449,6 +462,7 @@ ST_GeomFromText('POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010
|
||||
|
||||
ANALYZE TABLE tab;
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
|
||||
@ -470,6 +484,7 @@ ALTER TABLE tab MODIFY COLUMN c2 GEOMETRY NOT NULL;
|
||||
|
||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
|
||||
ALTER TABLE tab add COLUMN c8 POINT NOT NULL, ALGORITHM = INPLACE, LOCK=NONE;
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE tab;
|
||||
|
||||
@ -487,10 +502,12 @@ DELETE FROM tab WHERE MBRContains(tab.c4, @g1);
|
||||
|
||||
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab WHERE MBRContains(tab.c4, @g1) ORDER BY c1;
|
||||
|
||||
--enable_info
|
||||
# --error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
# ALTER TABLE tab MODIFY COLUMN c2 POLYGON NOT NULL;
|
||||
|
||||
ALTER TABLE tab MODIFY COLUMN c4 GEOMETRY NOT NULL;
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE tab;
|
||||
|
||||
@ -524,11 +541,13 @@ SET @g1 = ST_GeomFromText('POLYGON((4010 4010,4020 4020,4030 4030,4040 4030,4020
|
||||
SET @g2 = ST_GeomFromText('LINESTRING(1 1,2 2,3 3)');
|
||||
|
||||
# When Point type data exist in the column allow DDL operation
|
||||
--enable_info
|
||||
ALTER TABLE tab MODIFY COLUMN c2 POINT NOT NULL;
|
||||
|
||||
ALTER TABLE tab MODIFY COLUMN c3 LINESTRING NOT NULL;
|
||||
|
||||
ALTER TABLE tab MODIFY COLUMN c4 POLYGON NOT NULL;
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE tab;
|
||||
|
||||
@ -575,6 +594,7 @@ DELETE FROM tab WHERE ST_Touches(tab.c4, @g1) OR ST_Touches(tab.c3,@g2);
|
||||
SELECT c1,ST_Astext(c2),ST_AsText(c3),ST_Astext(c4) FROM tab WHERE ST_Touches(tab.c4, @g1)
|
||||
OR ST_Touches(tab.c3,@g2);
|
||||
|
||||
--enable_info
|
||||
# --error ER_SPATIAL_MUST_HAVE_GEOM_COL
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
ALTER TABLE tab MODIFY COLUMN c4 INT NOT NULL;
|
||||
@ -582,6 +602,7 @@ ALTER TABLE tab MODIFY COLUMN c4 INT NOT NULL;
|
||||
# --error ER_SPATIAL_MUST_HAVE_GEOM_COL
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
ALTER TABLE tab MODIFY COLUMN c4 BLOB NOT NULL;
|
||||
--disable_info
|
||||
|
||||
# Test InnoDB to Myisam to InnoDB
|
||||
ALTER TABLE tab ENGINE Myisam;
|
||||
@ -619,9 +640,11 @@ CREATE TABLE parent (id POINT, PRIMARY KEY(id)) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE child (id GEOMETRY NOT NULL, parent_id POINT NOT NULL) ENGINE=InnoDB;
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE parent ADD SPATIAL INDEX idx1(id ASC);
|
||||
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(parent_id ASC);
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE parent;
|
||||
|
||||
@ -650,9 +673,11 @@ CREATE TABLE parent (id GEOMETRY, PRIMARY KEY(id(10))) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE child (id GEOMETRY NOT NULL, parent_id GEOMETRY NOT NULL) ENGINE=InnoDB;
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE parent ADD SPATIAL INDEX idx1(id ASC) ;
|
||||
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(parent_id ASC);
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE parent;
|
||||
|
||||
@ -682,29 +707,13 @@ alter table t1 add b geometry, add spatial index(b), algorithm=inplace;
|
||||
# Add spatial index fail, since there's invalid geo data.
|
||||
# The case has to be commented because it no longer fails and following cases
|
||||
# don't expect the effect of such a statement.
|
||||
#--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
# alter table t1 add b geometry not null, add spatial index(b), algorithm=inplace;
|
||||
--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
alter table t1 add b geometry not null, add spatial index(b), algorithm=inplace;
|
||||
|
||||
# Add a geometry column.
|
||||
alter table t1 add b geometry, algorithm=inplace;
|
||||
|
||||
# Add spatial index fail, since there's a NULL or invalid geo data.
|
||||
# The case has to be commented because it no longer fails and following cases
|
||||
# don't expect the effect of such a statement.
|
||||
#--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
#alter table t1 add spatial index(b), algorithm=inplace;
|
||||
|
||||
# Update invalide geo data to point(0 0).
|
||||
update t1 set b = st_geomfromtext('point(0 0)');
|
||||
|
||||
# Add spatial index success.
|
||||
--error ER_SPATIAL_CANT_HAVE_NULL
|
||||
alter table t1 add spatial index(b), algorithm=inplace;
|
||||
|
||||
# Delete rows.
|
||||
delete from t1;
|
||||
|
||||
#cleanup
|
||||
--enable_info
|
||||
alter table t1 add b geometry not null default st_geomfromtext('POINT(0 0)'),
|
||||
add spatial index(b), algorithm=inplace;
|
||||
--disable_info
|
||||
DROP table t1;
|
||||
|
||||
# Check add spatial index when table already has rows (copy).
|
||||
@ -716,32 +725,11 @@ insert into t1 values(NULL);
|
||||
alter table t1 add b geometry, add spatial index(b), algorithm=copy;
|
||||
|
||||
# Add spatial index fail, since there's a NULL or invalid geo data.
|
||||
# --error ER_INVALID_USE_OF_NULL
|
||||
--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
alter table t1 add b geometry not null, add spatial index(b), algorithm=copy;
|
||||
|
||||
# Add a geometry column.
|
||||
# --error ER_INVALID_USE_OF_NULL
|
||||
# alter table t1 add b geometry not null, algorithm=copy;
|
||||
|
||||
# Add spatial index.
|
||||
# The case has to be commented because it no longer fails and following cases
|
||||
# don't expect the effect of such a statement.
|
||||
#--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
#alter table t1 add spatial index(b), algorithm=copy;
|
||||
|
||||
# Update invalide geo data to point(0 0).
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
update t1 set b = st_geomfromtext('point(0 0)');
|
||||
|
||||
# Add spatial index success.
|
||||
--error ER_KEY_COLUMN_DOES_NOT_EXITS
|
||||
alter table t1 add spatial index(b), algorithm=copy;
|
||||
|
||||
# Delete rows.
|
||||
delete from t1;
|
||||
|
||||
#cleanup
|
||||
alter table t1 add b geometry not null default st_geomfromtext('POINT(0 0)'),
|
||||
add spatial index(b), algorithm=copy;
|
||||
DROP table t1;
|
||||
|
||||
--echo #
|
||||
|
Reference in New Issue
Block a user