mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
reject invalid spatial key declarations in the parser
This commit is contained in:
@@ -838,11 +838,6 @@ CREATE TABLE t3 (
|
||||
col2 POINT
|
||||
);
|
||||
|
||||
# --error ER_TOO_MANY_KEY_PARTS
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
CREATE SPATIAL INDEX idx0 ON t2 (col1, col2);
|
||||
|
||||
|
||||
CREATE TABLE t4 (
|
||||
col0 INTEGER NOT NULL,
|
||||
col1 POINT,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
# ******************************************************************
|
||||
# Test Alter table add spatial idex asc/desc comments
|
||||
# Test Alter table add spatial index comments
|
||||
# Test error Alter table modify column with No not null option
|
||||
# Test error Alter table modify column with null option
|
||||
# Test table column having both indexes spatial and Btree
|
||||
@@ -87,13 +87,13 @@ ST_GeomFromText('POLYGON((5010 5010,5020 5020,5030 5030,5040 5030,5020 5010,5010
|
||||
|
||||
|
||||
--enable_info
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC);
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon';
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4) COMMENT 'testing spatial index on Polygon';
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry';
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx5(c5) COMMENT 'testing spatial index on Geometry';
|
||||
|
||||
ALTER TABLE tab ADD INDEX idx6(c4(10)) USING BTREE;
|
||||
--disable_info
|
||||
@@ -166,10 +166,10 @@ ALTER TABLE tab CHANGE COLUMN c4 c44 POLYGON;
|
||||
ALTER TABLE tab add SPATIAL INDEX idx1(c1);
|
||||
|
||||
--error ER_PARSE_ERROR
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx6(c2 ASC) USING BTREE;
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx6(c2) USING BTREE;
|
||||
|
||||
--error ER_PARSE_ERROR
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx6(c2 ASC) USING HASH;
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx6(c2) USING HASH;
|
||||
|
||||
# --error ER_INVALID_USE_OF_NULL
|
||||
# ALTER TABLE tab CHANGE c2 c2 MULTIPOINT NOT NULL FIRST, ALGORITHM=COPY;
|
||||
@@ -366,7 +366,7 @@ DELETE FROM tab;
|
||||
--enable_info
|
||||
ALTER TABLE tab ADD PRIMARY KEY(c2);
|
||||
|
||||
CREATE SPATIAL INDEX idx2 ON tab(c2 ASC);
|
||||
CREATE SPATIAL INDEX idx2 ON tab(c2);
|
||||
|
||||
ALTER TABLE tab ADD CONSTRAINT const_1 UNIQUE(c2);
|
||||
--disable_info
|
||||
@@ -471,13 +471,13 @@ 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 INDEX idx2(c2);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon';
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4) COMMENT 'testing spatial index on Polygon';
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry';
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx5(c5) COMMENT 'testing spatial index on Geometry';
|
||||
|
||||
ALTER TABLE tab ADD INDEX idx6(c4(10)) USING BTREE;
|
||||
|
||||
@@ -656,9 +656,9 @@ 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 parent ADD SPATIAL INDEX idx1(id);
|
||||
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(parent_id ASC);
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(parent_id);
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE parent;
|
||||
@@ -689,9 +689,9 @@ 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 parent ADD SPATIAL INDEX idx1(id) ;
|
||||
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(parent_id ASC);
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(parent_id);
|
||||
--disable_info
|
||||
|
||||
SHOW CREATE TABLE parent;
|
||||
|
@@ -26,10 +26,10 @@ c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL)
|
||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
|
||||
|
||||
# Check spatial index functionality with Create Index clause options
|
||||
CREATE SPATIAL INDEX idx1 on tab(c2 ASC);
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3 DESC) COMMENT 'wl6968';
|
||||
CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=8 ;
|
||||
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=4
|
||||
CREATE SPATIAL INDEX idx1 on tab(c2);
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3) COMMENT 'wl6968';
|
||||
CREATE SPATIAL INDEX idx3 on tab(c4) KEY_BLOCK_SIZE=8 ;
|
||||
CREATE SPATIAL INDEX idx4 on tab(c5) KEY_BLOCK_SIZE=4
|
||||
COMMENT 'Spatial index on Geometry type column';
|
||||
|
||||
# Check index type
|
||||
@@ -411,10 +411,10 @@ c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL)
|
||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
|
||||
|
||||
# Check spatial index functionality with Create Index clause options
|
||||
CREATE SPATIAL INDEX idx1 on tab(c2 ASC);
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3 DESC) COMMENT 'wl6968';
|
||||
CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=2 ;
|
||||
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=8
|
||||
CREATE SPATIAL INDEX idx1 on tab(c2);
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3) COMMENT 'wl6968';
|
||||
CREATE SPATIAL INDEX idx3 on tab(c4) KEY_BLOCK_SIZE=2 ;
|
||||
CREATE SPATIAL INDEX idx4 on tab(c5) KEY_BLOCK_SIZE=8
|
||||
COMMENT 'Spatial index on Geometry type column';
|
||||
|
||||
# Check index type
|
||||
@@ -783,10 +783,10 @@ c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL)
|
||||
ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16;
|
||||
|
||||
# Check spatial index functionality with Create Index clause options
|
||||
CREATE SPATIAL INDEX idx1 on tab(c2 ASC);
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3 DESC) COMMENT 'wl6968';
|
||||
CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=16 ;
|
||||
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=16
|
||||
CREATE SPATIAL INDEX idx1 on tab(c2);
|
||||
CREATE SPATIAL INDEX idx2 on tab(c3) COMMENT 'wl6968';
|
||||
CREATE SPATIAL INDEX idx3 on tab(c4) KEY_BLOCK_SIZE=16 ;
|
||||
CREATE SPATIAL INDEX idx4 on tab(c5) KEY_BLOCK_SIZE=16
|
||||
COMMENT 'Spatial index on Geometry type column';
|
||||
|
||||
# Check index type
|
||||
|
@@ -838,19 +838,6 @@ CREATE TABLE t2 (
|
||||
col2 POINT
|
||||
);
|
||||
|
||||
# --error ER_TOO_MANY_KEY_PARTS
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
CREATE SPATIAL INDEX idx0 ON t2 (col1, col2);
|
||||
|
||||
# --error ER_TOO_MANY_KEY_PARTS
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
CREATE TABLE t3 (
|
||||
col0 INTEGER NOT NULL,
|
||||
col1 POINT,
|
||||
col2 LINESTRING,
|
||||
SPATIAL INDEX i1 (col1, col2)
|
||||
);
|
||||
|
||||
# cleanup
|
||||
DROP TABLE t0, t1, t2;
|
||||
|
||||
|
@@ -822,8 +822,8 @@ DROP TABLE t1;
|
||||
--echo #
|
||||
CREATE TABLE parent(p POINT, PRIMARY KEY(p)) ENGINE=InnoDB;
|
||||
CREATE TABLE child(p POINT NOT NULL) ENGINE=InnoDB;
|
||||
ALTER TABLE parent ADD SPATIAL INDEX idx1(p ASC);
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(p ASC);
|
||||
ALTER TABLE parent ADD SPATIAL INDEX idx1(p);
|
||||
ALTER TABLE child ADD SPATIAL INDEX idx2(p);
|
||||
SHOW CREATE TABLE parent;
|
||||
SHOW CREATE TABLE child;
|
||||
|
||||
|
@@ -15,13 +15,13 @@ CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL,
|
||||
c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL)
|
||||
ENGINE=InnoDB;
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC);
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon';
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4) COMMENT 'testing spatial index on Polygon';
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry';
|
||||
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)'),
|
||||
@@ -130,13 +130,13 @@ CREATE TABLE tab(c1 int NOT NULL PRIMARY KEY,c2 POINT NOT NULL,
|
||||
c3 LINESTRING NOT NULL,c4 POLYGON NOT NULL,c5 GEOMETRY NOT NULL)
|
||||
ENGINE=InnoDB;
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2 ASC);
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx2(c2);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3 DESC);
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx3(c3);
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4 ASC) COMMENT 'testing spatial index on Polygon';
|
||||
ALTER TABLE tab ADD SPATIAL INDEX idx4(c4) COMMENT 'testing spatial index on Polygon';
|
||||
|
||||
ALTER TABLE tab ADD SPATIAL KEY idx5(c5 ASC) COMMENT 'testing spatial index on Geometry';
|
||||
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)'),
|
||||
|
Reference in New Issue
Block a user