mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
a fix for a crashing bug when attempting to create InnoDB table
with GEOMETRY field type.
This commit is contained in:
@ -46,7 +46,7 @@ class ha_myisam: public handler
|
|||||||
ha_myisam(TABLE *table): handler(table), file(0),
|
ha_myisam(TABLE *table): handler(table), file(0),
|
||||||
int_table_flags(HA_READ_RND_SAME | HA_KEYPOS_TO_RNDPOS | HA_LASTKEY_ORDER |
|
int_table_flags(HA_READ_RND_SAME | HA_KEYPOS_TO_RNDPOS | HA_LASTKEY_ORDER |
|
||||||
HA_NULL_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER |
|
HA_NULL_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER |
|
||||||
HA_DUPP_POS | HA_BLOB_KEY | HA_AUTO_PART_KEY),
|
HA_DUPP_POS | HA_BLOB_KEY | HA_AUTO_PART_KEY | HA_HAS_GEOMETRY),
|
||||||
enable_activate_all_index(1)
|
enable_activate_all_index(1)
|
||||||
{}
|
{}
|
||||||
~ha_myisam() {}
|
~ha_myisam() {}
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
#define HA_TABLE_SCAN_ON_INDEX 4 /* No separate data/index file */
|
#define HA_TABLE_SCAN_ON_INDEX 4 /* No separate data/index file */
|
||||||
#define HA_REC_NOT_IN_SEQ 8 /* ha_info don't return recnumber;
|
#define HA_REC_NOT_IN_SEQ 8 /* ha_info don't return recnumber;
|
||||||
It returns a position to ha_r_rnd */
|
It returns a position to ha_r_rnd */
|
||||||
|
#define HA_HAS_GEOMETRY 16
|
||||||
#define HA_NO_INDEX 32 /* No index needed for next/prev */
|
#define HA_NO_INDEX 32 /* No index needed for next/prev */
|
||||||
#define HA_KEY_READ_WRONG_STR 64 /* keyread returns converted strings */
|
#define HA_KEY_READ_WRONG_STR 64 /* keyread returns converted strings */
|
||||||
#define HA_NULL_KEY 128 /* One can have keys with NULL */
|
#define HA_NULL_KEY 128 /* One can have keys with NULL */
|
||||||
|
@ -486,6 +486,12 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
|
|||||||
blob_columns++;
|
blob_columns++;
|
||||||
break;
|
break;
|
||||||
case FIELD_TYPE_GEOMETRY:
|
case FIELD_TYPE_GEOMETRY:
|
||||||
|
if (!(file->table_flags() & HA_HAS_GEOMETRY))
|
||||||
|
{
|
||||||
|
my_printf_error(ER_WRONG_USAGE,ER(ER_WRONG_USAGE),MYF(0),
|
||||||
|
"GEOMETRY FIELD TYPE","not supported by this storage engine ");
|
||||||
|
DBUG_RETURN(-1);
|
||||||
|
}
|
||||||
sql_field->pack_flag=FIELDFLAG_GEOM |
|
sql_field->pack_flag=FIELDFLAG_GEOM |
|
||||||
pack_length_to_packflag(sql_field->pack_length -
|
pack_length_to_packflag(sql_field->pack_length -
|
||||||
portable_sizeof_char_ptr);
|
portable_sizeof_char_ptr);
|
||||||
|
Reference in New Issue
Block a user