diff --git a/storage/tokudb/ha_tokudb.cc b/storage/tokudb/ha_tokudb.cc index 145a19a6224..88d9751f883 100644 --- a/storage/tokudb/ha_tokudb.cc +++ b/storage/tokudb/ha_tokudb.cc @@ -3837,7 +3837,21 @@ int ha_tokudb::create(const char *name, TABLE * form, HA_CREATE_INFO * create_in if (!(error = (db_create(&status_block, db_env, 0)))) { make_name(newname, name, "status"); fn_format(name_buff, newname, "", 0, MY_UNPACK_FILENAME); - + // + // create a row descriptor that is the same as a hidden primary key + // + row_descriptor.size = create_toku_key_descriptor( + row_desc_buff, + true, + false, + NULL, + false, + NULL + ); + error = status_block->set_descriptor(status_block, &row_descriptor); + if (error) { + goto cleanup; + } if (!(error = (status_block->open(status_block, NULL, name_buff, NULL, DB_BTREE, DB_CREATE, 0)))) { uint version = HA_TOKU_VERSION; uint capabilities = HA_TOKU_CAP; diff --git a/storage/tokudb/ha_tokudb.h b/storage/tokudb/ha_tokudb.h index 21ad12e0b11..1e06c214aa9 100644 --- a/storage/tokudb/ha_tokudb.h +++ b/storage/tokudb/ha_tokudb.h @@ -59,12 +59,12 @@ typedef struct st_tokudb_share { // To get the version, one looks up the value associated with key hatoku_version // in status.tokudb // -typedef enum { - hatoku_version = 0, - hatoku_capabilities, - hatoku_max_ai, //maximum auto increment value found so far - hatoku_ai_create_value -} HA_METADATA_KEY ; + +typedef ulonglong HA_METADATA_KEY; +#define hatoku_version 0 +#define hatoku_capabilities 1 +#define hatoku_max_ai 2 //maximum auto increment value found so far +#define hatoku_ai_create_value 3 typedef struct st_prim_key_part_info { uint offset;