a fix for a crashing bug when attempting to create InnoDB table
with GEOMETRY field type.
This commit is contained in:
parent
f4216c526b
commit
7786126bef
@ -46,7 +46,7 @@ class ha_myisam: public handler
|
||||
ha_myisam(TABLE *table): handler(table), file(0),
|
||||
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_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)
|
||||
{}
|
||||
~ha_myisam() {}
|
||||
|
@ -48,6 +48,7 @@
|
||||
#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;
|
||||
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_KEY_READ_WRONG_STR 64 /* keyread returns converted strings */
|
||||
#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++;
|
||||
break;
|
||||
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 |
|
||||
pack_length_to_packflag(sql_field->pack_length -
|
||||
portable_sizeof_char_ptr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user