diff options
author | unknown <holyfoot@mysql.com> | 2006-05-03 16:42:39 +0500 |
---|---|---|
committer | unknown <holyfoot@mysql.com> | 2006-05-03 16:42:39 +0500 |
commit | 83c8e2c910a9f07c473aaa2d254f0571d574aa89 (patch) | |
tree | c59d637e1d3d7b81ff0e680ba83046ad4f19773e | |
parent | 0a9c02f106239afcdb6da40d9ddfb3cec1d42049 (diff) | |
parent | f01b0ac2212a8e8c4192842ddba123198353c591 (diff) | |
download | mariadb-git-83c8e2c910a9f07c473aaa2d254f0571d574aa89.tar.gz |
merging
sql/handler.h:
Auto merged
sql/sql_table.cc:
Auto merged
-rw-r--r-- | mysql-test/r/innodb.result | 2 | ||||
-rw-r--r-- | mysql-test/t/innodb.test | 12 | ||||
-rw-r--r-- | sql/ha_myisam.cc | 2 | ||||
-rw-r--r-- | sql/handler.h | 1 | ||||
-rw-r--r-- | sql/share/errmsg.txt | 2 | ||||
-rw-r--r-- | sql/sql_table.cc | 6 |
6 files changed, 24 insertions, 1 deletions
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index d32cd405ce8..77046cc1fd1 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -3278,3 +3278,5 @@ SELECT p0.a FROM t2 p0 WHERE BINARY p0.b = 'customer_over'; a 1 drop table t2, t1; +create table t1 (g geometry not null, spatial gk(g)) engine=innodb; +ERROR HY000: The used table type doesn't support SPATIAL indexes diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index 3ba5ca5b4a2..703e3b311b9 100644 --- a/mysql-test/t/innodb.test +++ b/mysql-test/t/innodb.test @@ -2190,3 +2190,15 @@ SELECT DISTINCT p0.a FROM t2 p0 WHERE BINARY p0.b = 'customer_over'; SELECT p0.a FROM t2 p0 WHERE BINARY p0.b = 'customer_over'; drop table t2, t1; +create table t2(a date, key(a)) engine=innodb; +insert into t1 values('2005-10-01'); +insert into t2 values('2005-10-01'); +select * from t1, t2 + where t2.a between t1.a - interval 2 day and t1.a + interval 2 day; +drop table t1, t2; + +# +# Bug #15680 (SPATIAL key in innodb) +# +--error ER_TABLE_CANT_HANDLE_SPKEYS +create table t1 (g geometry not null, spatial gk(g)) engine=innodb; diff --git a/sql/ha_myisam.cc b/sql/ha_myisam.cc index ff6431fa0f3..128cc191434 100644 --- a/sql/ha_myisam.cc +++ b/sql/ha_myisam.cc @@ -165,7 +165,7 @@ ha_myisam::ha_myisam(TABLE *table_arg) int_table_flags(HA_NULL_IN_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER | HA_DUPP_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY | HA_FILE_BASED | HA_CAN_GEOMETRY | HA_READ_RND_SAME | - HA_CAN_INSERT_DELAYED | HA_CAN_BIT_FIELD), + HA_CAN_INSERT_DELAYED | HA_CAN_BIT_FIELD | HA_CAN_RTREEKEYS), can_enable_indexes(1) {} diff --git a/sql/handler.h b/sql/handler.h index e531a3f1077..eee15fc3576 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -80,6 +80,7 @@ */ #define HA_CAN_INSERT_DELAYED (1 << 14) #define HA_PRIMARY_KEY_IN_READ_INDEX (1 << 15) +#define HA_CAN_RTREEKEYS (1 << 17) #define HA_NOT_DELETE_WITH_CACHE (1 << 18) #define HA_NO_PREFIX_CHAR_KEYS (1 << 20) #define HA_CAN_FULLTEXT (1 << 21) diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 7665a7425cd..2892c5c8b01 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5617,3 +5617,5 @@ ER_VIEW_RECURSIVE eng "`%-.64s`.`%-.64s` contains view recursion" ER_NON_GROUPING_FIELD_USED 42000 eng "non-grouping field '%-.64s' is used in %-.64s clause" +ER_TABLE_CANT_HANDLE_SPKEYS + eng "The used table type doesn't support SPATIAL indexes" diff --git a/sql/sql_table.cc b/sql/sql_table.cc index d93e79cdfde..f6de9e34785 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1159,6 +1159,12 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, /* TODO: Add proper checks if handler supports key_type and algorithm */ if (key_info->flags & HA_SPATIAL) { + if (!(file->table_flags() & HA_CAN_RTREEKEYS)) + { + my_message(ER_TABLE_CANT_HANDLE_SPKEYS, ER(ER_TABLE_CANT_HANDLE_SPKEYS), + MYF(0)); + DBUG_RETURN(-1); + } if (key_info->key_parts != 1) { my_error(ER_WRONG_ARGUMENTS, MYF(0), "SPATIAL INDEX"); |