Commit 20031c62 authored by Sergei Golubchik's avatar Sergei Golubchik

Enable TokuDB online ALTER

sql/create_options.cc:
  an utility function to compare two filled-in engine_option structures
sql/sql_table.cc:
  * two keys are different if their option_struct's differ
    (for ALTER TABLE DROP key, ADD key)
  * engines doing inplace alter must see the new frm image
parent fd553062
...@@ -115,6 +115,8 @@ static bool report_unknown_option(THD *thd, engine_option_value *val, ...@@ -115,6 +115,8 @@ static bool report_unknown_option(THD *thd, engine_option_value *val,
DBUG_RETURN(FALSE); DBUG_RETURN(FALSE);
} }
#define value_ptr(STRUCT,OPT) ((char*)(STRUCT) + (OPT)->offset)
static bool set_one_value(ha_create_table_option *opt, static bool set_one_value(ha_create_table_option *opt,
THD *thd, const LEX_STRING *value, void *base, THD *thd, const LEX_STRING *value, void *base,
bool suppress_warning, bool suppress_warning,
...@@ -131,7 +133,7 @@ static bool set_one_value(ha_create_table_option *opt, ...@@ -131,7 +133,7 @@ static bool set_one_value(ha_create_table_option *opt,
DBUG_ASSERT(0); // HA_OPTION_TYPE_SYSVAR's are replaced in resolve_sysvars() DBUG_ASSERT(0); // HA_OPTION_TYPE_SYSVAR's are replaced in resolve_sysvars()
case HA_OPTION_TYPE_ULL: case HA_OPTION_TYPE_ULL:
{ {
ulonglong *val= (ulonglong*)((char*)base + opt->offset); ulonglong *val= (ulonglong*)value_ptr(base, opt);
if (!value->str) if (!value->str)
{ {
*val= opt->def_value; *val= opt->def_value;
...@@ -155,7 +157,7 @@ static bool set_one_value(ha_create_table_option *opt, ...@@ -155,7 +157,7 @@ static bool set_one_value(ha_create_table_option *opt,
} }
case HA_OPTION_TYPE_STRING: case HA_OPTION_TYPE_STRING:
{ {
char **val= (char **)((char *)base + opt->offset); char **val= (char **)value_ptr(base, opt);
if (!value->str) if (!value->str)
{ {
*val= 0; *val= 0;
...@@ -168,7 +170,7 @@ static bool set_one_value(ha_create_table_option *opt, ...@@ -168,7 +170,7 @@ static bool set_one_value(ha_create_table_option *opt,
} }
case HA_OPTION_TYPE_ENUM: case HA_OPTION_TYPE_ENUM:
{ {
uint *val= (uint *)((char *)base + opt->offset), num; uint *val= (uint *)value_ptr(base, opt), num;
*val= (uint) opt->def_value; *val= (uint) opt->def_value;
if (!value->str) if (!value->str)
...@@ -200,7 +202,7 @@ static bool set_one_value(ha_create_table_option *opt, ...@@ -200,7 +202,7 @@ static bool set_one_value(ha_create_table_option *opt,
} }
case HA_OPTION_TYPE_BOOL: case HA_OPTION_TYPE_BOOL:
{ {
bool *val= (bool *)((char *)base + opt->offset); bool *val= (bool *)value_ptr(base, opt);
*val= opt->def_value; *val= opt->def_value;
if (!value->str) if (!value->str)
...@@ -284,7 +286,7 @@ bool parse_option_list(THD* thd, handlerton *hton, void *option_struct_arg, ...@@ -284,7 +286,7 @@ bool parse_option_list(THD* thd, handlerton *hton, void *option_struct_arg,
*option_struct= alloc_root(root, option_struct_size); *option_struct= alloc_root(root, option_struct_size);
} }
for (opt= rules; opt && opt->name; opt++) for (opt= rules; rules && opt->name; opt++)
{ {
bool seen=false; bool seen=false;
for (val= *option_list; val; val= val->next) for (val= *option_list; val; val= val->next)
...@@ -362,7 +364,7 @@ bool parse_option_list(THD* thd, handlerton *hton, void *option_struct_arg, ...@@ -362,7 +364,7 @@ bool parse_option_list(THD* thd, handlerton *hton, void *option_struct_arg,
*/ */
static bool resolve_sysvars(handlerton *hton, ha_create_table_option *rules) static bool resolve_sysvars(handlerton *hton, ha_create_table_option *rules)
{ {
for (ha_create_table_option *opt= rules; opt && opt->name; opt++) for (ha_create_table_option *opt= rules; rules && opt->name; opt++)
{ {
if (opt->type == HA_OPTION_TYPE_SYSVAR) if (opt->type == HA_OPTION_TYPE_SYSVAR)
{ {
...@@ -428,7 +430,7 @@ bool resolve_sysvar_table_options(handlerton *hton) ...@@ -428,7 +430,7 @@ bool resolve_sysvar_table_options(handlerton *hton)
*/ */
static void free_sysvars(handlerton *hton, ha_create_table_option *rules) static void free_sysvars(handlerton *hton, ha_create_table_option *rules)
{ {
for (ha_create_table_option *opt= rules; opt && opt->name; opt++) for (ha_create_table_option *opt= rules; rules && opt->name; opt++)
{ {
if (opt->var) if (opt->var)
{ {
...@@ -491,6 +493,26 @@ bool parse_engine_table_options(THD *thd, handlerton *ht, TABLE_SHARE *share) ...@@ -491,6 +493,26 @@ bool parse_engine_table_options(THD *thd, handlerton *ht, TABLE_SHARE *share)
} }
bool engine_options_differ(void *old_struct, void *new_struct,
ha_create_table_option *rules)
{
ha_create_table_option *opt;
for (opt= rules; rules && opt->name; opt++)
{
char **old_val= (char**)value_ptr(old_struct, opt);
char **new_val= (char**)value_ptr(new_struct, opt);
int neq;
if (opt->type == HA_OPTION_TYPE_STRING)
neq= (*old_val && *new_val) ? strcmp(*old_val, *new_val) : *old_val != *new_val;
else
neq= memcmp(old_val, new_val, ha_option_type_sizeof[opt->type]);
if (neq)
return true;
}
return false;
}
/** /**
Returns representation length of key and value in the frm file Returns representation length of key and value in the frm file
*/ */
......
...@@ -96,4 +96,7 @@ uchar *engine_table_options_frm_image(uchar *buff, ...@@ -96,4 +96,7 @@ uchar *engine_table_options_frm_image(uchar *buff,
engine_option_value *table_option_list, engine_option_value *table_option_list,
List<Create_field> &create_fields, List<Create_field> &create_fields,
uint keys, KEY *key_info); uint keys, KEY *key_info);
bool engine_options_differ(void *old_struct, void *new_struct,
ha_create_table_option *rules);
#endif #endif
...@@ -5747,6 +5747,10 @@ static bool fill_alter_inplace_info(THD *thd, ...@@ -5747,6 +5747,10 @@ static bool fill_alter_inplace_info(THD *thd,
new_key->user_defined_key_parts)) new_key->user_defined_key_parts))
goto index_changed; goto index_changed;
if (engine_options_differ(table_key->option_struct, new_key->option_struct,
table->file->ht->index_options))
goto index_changed;
/* /*
Check that the key parts remain compatible between the old and Check that the key parts remain compatible between the old and
new tables. new tables.
...@@ -8045,11 +8049,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -8045,11 +8049,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
{ {
Alter_inplace_info ha_alter_info(create_info, alter_info, Alter_inplace_info ha_alter_info(create_info, alter_info,
key_info, key_count, key_info, key_count,
#ifdef WITH_PARTITION_STORAGE_ENGINE IF_PARTITIONING(thd->work_part_info, NULL),
thd->work_part_info,
#else
NULL,
#endif
ignore); ignore);
TABLE *altered_table= NULL; TABLE *altered_table= NULL;
bool use_inplace= true; bool use_inplace= true;
...@@ -8170,15 +8170,14 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -8170,15 +8170,14 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
if (use_inplace) if (use_inplace)
{ {
table->s->frm_image= &frm;
int res= mysql_inplace_alter_table(thd, table_list, table, altered_table,
&ha_alter_info, inplace_supported,
&target_mdl_request, &alter_ctx);
my_free(const_cast<uchar*>(frm.str)); my_free(const_cast<uchar*>(frm.str));
if (mysql_inplace_alter_table(thd, table_list, table,
altered_table, if (res)
&ha_alter_info,
inplace_supported, &target_mdl_request,
&alter_ctx))
{
DBUG_RETURN(true); DBUG_RETURN(true);
}
goto end_inplace; goto end_inplace;
} }
......
...@@ -1733,7 +1733,7 @@ int ha_tokudb::initialize_share( ...@@ -1733,7 +1733,7 @@ int ha_tokudb::initialize_share(
goto exit; goto exit;
} }
#if defined(MARIADB_BASE_VERSION) #if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID < 100004
// a hack to support frm-only ALTER TABLE in MariaDB 5.5 // a hack to support frm-only ALTER TABLE in MariaDB 5.5
// in 10.0 there's a proper fix with the new discovery and online alter // in 10.0 there's a proper fix with the new discovery and online alter
if (thd_sql_command(thd) == SQLCOM_ALTER_TABLE) { if (thd_sql_command(thd) == SQLCOM_ALTER_TABLE) {
...@@ -2152,7 +2152,7 @@ int ha_tokudb::write_frm_data(DB* db, DB_TXN* txn, const char* frm_name) { ...@@ -2152,7 +2152,7 @@ int ha_tokudb::write_frm_data(DB* db, DB_TXN* txn, const char* frm_name) {
error = 0; error = 0;
cleanup: cleanup:
my_free(frm_data, MYF(MY_ALLOW_ZERO_PTR)); table_share->free_frm_image(frm_data);
TOKUDB_DBUG_RETURN(error); TOKUDB_DBUG_RETURN(error);
} }
...@@ -2216,7 +2216,7 @@ int ha_tokudb::verify_frm_data(const char* frm_name, DB_TXN* txn) { ...@@ -2216,7 +2216,7 @@ int ha_tokudb::verify_frm_data(const char* frm_name, DB_TXN* txn) {
error = 0; error = 0;
cleanup: cleanup:
my_free(mysql_frm_data, MYF(MY_ALLOW_ZERO_PTR)); table_share->free_frm_image(mysql_frm_data);
my_free(stored_frm.data, MYF(MY_ALLOW_ZERO_PTR)); my_free(stored_frm.data, MYF(MY_ALLOW_ZERO_PTR));
TOKUDB_DBUG_RETURN(error); TOKUDB_DBUG_RETURN(error);
} }
......
...@@ -90,7 +90,7 @@ PATENT RIGHTS GRANT: ...@@ -90,7 +90,7 @@ PATENT RIGHTS GRANT:
#if TOKU_INCLUDE_ALTER_56 #if TOKU_INCLUDE_ALTER_56
#if 100000 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 100099 #if 100000 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 100099
#define TOKU_ALTER_RENAME ALTER_RENAME_56 #define TOKU_ALTER_RENAME ALTER_RENAME
#elif 50600 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 50699 #elif 50600 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 50699
#define TOKU_ALTER_RENAME ALTER_RENAME #define TOKU_ALTER_RENAME ALTER_RENAME
#elif 50500 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 50599 #elif 50500 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 50599
...@@ -400,6 +400,9 @@ enum_alter_inplace_result ha_tokudb::check_if_supported_inplace_alter(TABLE *alt ...@@ -400,6 +400,9 @@ enum_alter_inplace_result ha_tokudb::check_if_supported_inplace_alter(TABLE *alt
} else } else
if (only_flags(ctx->handler_flags, Alter_inplace_info::CHANGE_CREATE_OPTION)) { if (only_flags(ctx->handler_flags, Alter_inplace_info::CHANGE_CREATE_OPTION)) {
HA_CREATE_INFO *create_info = ha_alter_info->create_info; HA_CREATE_INFO *create_info = ha_alter_info->create_info;
if (create_info->option_struct->row_format != table_share->option_struct->row_format)
create_info->used_fields|= HA_CREATE_USED_ROW_FORMAT;
// alter auto_increment // alter auto_increment
if (only_flags(create_info->used_fields, HA_CREATE_USED_AUTO)) { if (only_flags(create_info->used_fields, HA_CREATE_USED_AUTO)) {
// do a sanity check that the table is what we think it is // do a sanity check that the table is what we think it is
...@@ -462,7 +465,7 @@ bool ha_tokudb::inplace_alter_table(TABLE *altered_table, Alter_inplace_info *ha ...@@ -462,7 +465,7 @@ bool ha_tokudb::inplace_alter_table(TABLE *altered_table, Alter_inplace_info *ha
assert(error == 0); assert(error == 0);
// Set the new compression // Set the new compression
enum toku_compression_method method = row_type_to_compression_method(create_info->option_struct->row_format); enum toku_compression_method method = row_type_to_compression_method((srv_row_format_t)create_info->option_struct->row_format);
uint32_t curr_num_DBs = table->s->keys + test(hidden_primary_key); uint32_t curr_num_DBs = table->s->keys + test(hidden_primary_key);
for (uint32_t i = 0; i < curr_num_DBs; i++) { for (uint32_t i = 0; i < curr_num_DBs; i++) {
db = share->key_file[i]; db = share->key_file[i];
...@@ -616,7 +619,7 @@ int ha_tokudb::alter_table_add_or_drop_column(TABLE *altered_table, Alter_inplac ...@@ -616,7 +619,7 @@ int ha_tokudb::alter_table_add_or_drop_column(TABLE *altered_table, Alter_inplac
if (error) if (error)
goto cleanup; goto cleanup;
if (i == primary_key || table_share->key_info[i].option_struct.clustering) { if (i == primary_key || table_share->key_info[i].option_struct->clustering) {
num_column_extra = fill_row_mutator( num_column_extra = fill_row_mutator(
column_extra, column_extra,
columns, columns,
...@@ -734,7 +737,7 @@ int ha_tokudb::alter_table_expand_varchar_offsets(TABLE *altered_table, Alter_in ...@@ -734,7 +737,7 @@ int ha_tokudb::alter_table_expand_varchar_offsets(TABLE *altered_table, Alter_in
break; break;
// for all trees that have values, make an update variable offsets message and broadcast it into the tree // for all trees that have values, make an update variable offsets message and broadcast it into the tree
if (i == primary_key || (table_share->key_info[i].option_struct.clustering)) { if (i == primary_key || (table_share->key_info[i].option_struct->clustering)) {
uint32_t offset_start = table_share->null_bytes + share->kc_info.mcp_info[i].fixed_field_size; uint32_t offset_start = table_share->null_bytes + share->kc_info.mcp_info[i].fixed_field_size;
uint32_t offset_end = offset_start + share->kc_info.mcp_info[i].len_of_offsets; uint32_t offset_end = offset_start + share->kc_info.mcp_info[i].len_of_offsets;
uint32_t number_of_offsets = offset_end - offset_start; uint32_t number_of_offsets = offset_end - offset_start;
...@@ -810,7 +813,7 @@ static bool change_length_is_supported(TABLE *table, TABLE *altered_table, Alter ...@@ -810,7 +813,7 @@ static bool change_length_is_supported(TABLE *table, TABLE *altered_table, Alter
return false; return false;
if (ctx->changed_fields.elements() > 1) if (ctx->changed_fields.elements() > 1)
return false; // only support one field change return false; // only support one field change
for (int ai = 0; ai < ctx->changed_fields.elements(); ai++) { for (uint ai = 0; ai < ctx->changed_fields.elements(); ai++) {
uint i = ctx->changed_fields.at(ai); uint i = ctx->changed_fields.at(ai);
Field *old_field = table->field[i]; Field *old_field = table->field[i];
Field *new_field = altered_table->field[i]; Field *new_field = altered_table->field[i];
...@@ -832,7 +835,7 @@ static bool is_sorted(Dynamic_array<uint> &a) { ...@@ -832,7 +835,7 @@ static bool is_sorted(Dynamic_array<uint> &a) {
bool r = true; bool r = true;
if (a.elements() > 0) { if (a.elements() > 0) {
uint lastelement = a.at(0); uint lastelement = a.at(0);
for (int i = 1; i < a.elements(); i++) for (uint i = 1; i < a.elements(); i++)
if (lastelement > a.at(i)) if (lastelement > a.at(i))
r = false; r = false;
} }
...@@ -843,7 +846,7 @@ int ha_tokudb::alter_table_expand_columns(TABLE *altered_table, Alter_inplace_in ...@@ -843,7 +846,7 @@ int ha_tokudb::alter_table_expand_columns(TABLE *altered_table, Alter_inplace_in
int error = 0; int error = 0;
tokudb_alter_ctx *ctx = static_cast<tokudb_alter_ctx *>(ha_alter_info->handler_ctx); tokudb_alter_ctx *ctx = static_cast<tokudb_alter_ctx *>(ha_alter_info->handler_ctx);
assert(is_sorted(ctx->changed_fields)); // since we build the changed_fields array in field order, it must be sorted assert(is_sorted(ctx->changed_fields)); // since we build the changed_fields array in field order, it must be sorted
for (int ai = 0; error == 0 && ai < ctx->changed_fields.elements(); ai++) { for (uint ai = 0; error == 0 && ai < ctx->changed_fields.elements(); ai++) {
uint expand_field_num = ctx->changed_fields.at(ai); uint expand_field_num = ctx->changed_fields.at(ai);
error = alter_table_expand_one_column(altered_table, ha_alter_info, expand_field_num); error = alter_table_expand_one_column(altered_table, ha_alter_info, expand_field_num);
} }
...@@ -916,7 +919,7 @@ int ha_tokudb::alter_table_expand_one_column(TABLE *altered_table, Alter_inplace ...@@ -916,7 +919,7 @@ int ha_tokudb::alter_table_expand_one_column(TABLE *altered_table, Alter_inplace
break; break;
// for all trees that have values, make an expand update message and broadcast it into the tree // for all trees that have values, make an expand update message and broadcast it into the tree
if (i == primary_key || (table_share->key_info[i].option_struct.clustering)) { if (i == primary_key || (table_share->key_info[i].option_struct->clustering)) {
uint32_t old_offset = alter_table_field_offset(table_share->null_bytes, ctx->table_kc_info, i, expand_field_num); uint32_t old_offset = alter_table_field_offset(table_share->null_bytes, ctx->table_kc_info, i, expand_field_num);
uint32_t new_offset = alter_table_field_offset(table_share->null_bytes, ctx->altered_table_kc_info, i, expand_field_num); uint32_t new_offset = alter_table_field_offset(table_share->null_bytes, ctx->altered_table_kc_info, i, expand_field_num);
assert(old_offset <= new_offset); assert(old_offset <= new_offset);
...@@ -1029,7 +1032,7 @@ static bool change_type_is_supported(TABLE *table, TABLE *altered_table, Alter_i ...@@ -1029,7 +1032,7 @@ static bool change_type_is_supported(TABLE *table, TABLE *altered_table, Alter_i
return false; return false;
if (ctx->changed_fields.elements() > 1) if (ctx->changed_fields.elements() > 1)
return false; // only support one field change return false; // only support one field change
for (int ai = 0; ai < ctx->changed_fields.elements(); ai++) { for (uint ai = 0; ai < ctx->changed_fields.elements(); ai++) {
uint i = ctx->changed_fields.at(ai); uint i = ctx->changed_fields.at(ai);
Field *old_field = table->field[i]; Field *old_field = table->field[i];
Field *new_field = altered_table->field[i]; Field *new_field = altered_table->field[i];
......
...@@ -121,7 +121,7 @@ PATENT RIGHTS GRANT: ...@@ -121,7 +121,7 @@ PATENT RIGHTS GRANT:
#if defined(TOKUDB_PATCHES) && TOKUDB_PATCHES == 0 #if defined(TOKUDB_PATCHES) && TOKUDB_PATCHES == 0
#elif 100000 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 100099 #elif 100000 <= MYSQL_VERSION_ID && MYSQL_VERSION_ID <= 100099
#define TOKU_INCLUDE_ALTER_56 0 #define TOKU_INCLUDE_ALTER_56 1
#define TOKU_INCLUDE_ALTER_55 0 #define TOKU_INCLUDE_ALTER_55 0
#define TOKU_INCLUDE_ROW_TYPE_COMPRESSION 1 #define TOKU_INCLUDE_ROW_TYPE_COMPRESSION 1
#define TOKU_INCLUDE_XA 1 #define TOKU_INCLUDE_XA 1
......
change_column_auto_inc: No online ALTER in MariaDB 5.5
change_column_bin: No online ALTER in MariaDB 5.5
change_column_bin_key: No online ALTER in MariaDB 5.5
change_column_bin_rename: No online ALTER in MariaDB 5.5
change_column_blob: No online ALTER in MariaDB 5.5
change_column_char: No online ALTER in MariaDB 5.5
change_column_char_binary: No online ALTER in MariaDB 5.5
change_column_char_charbinary: No online ALTER in MariaDB 5.5
change_column_char_charset: No online ALTER in MariaDB 5.5
change_column_char_key: No online ALTER in MariaDB 5.5
change_column_char_null: No online ALTER in MariaDB 5.5
change_column_char_rename: No online ALTER in MariaDB 5.5
change_column_int: No online ALTER in MariaDB 5.5
change_column_int_key: No online ALTER in MariaDB 5.5
change_column_int_not_supported: No online ALTER in MariaDB 5.5
change_column_int_rename: No online ALTER in MariaDB 5.5
change_column_multiple_columns: No online ALTER in MariaDB 5.5
change_column_text: No online ALTER in MariaDB 5.5
change_column_varbin: No online ALTER in MariaDB 5.5
change_column_varbin_default: No online ALTER in MariaDB 5.5
change_column_varbin_key: No online ALTER in MariaDB 5.5
change_column_varbin_null: No online ALTER in MariaDB 5.5
change_column_varbin_rename: No online ALTER in MariaDB 5.5
change_column_varbin_varchar: No online ALTER in MariaDB 5.5
change_column_varchar: No online ALTER in MariaDB 5.5
change_column_varchar_charset: No online ALTER in MariaDB 5.5
change_column_varchar_default: No online ALTER in MariaDB 5.5
change_column_varchar_key: No online ALTER in MariaDB 5.5
change_column_varchar_null: No online ALTER in MariaDB 5.5
change_column_varchar_prefix_a: No online ALTER in MariaDB 5.5
change_column_varchar_rename: No online ALTER in MariaDB 5.5
change_column_varchar_varbin: No online ALTER in MariaDB 5.5
fast_update_binlog_mixed: No UPSERT in MariaDB 5.5 fast_update_binlog_mixed: No UPSERT in MariaDB 5.5
fast_update_binlog_row: No UPSERT in MariaDB 5.5 fast_update_binlog_row: No UPSERT in MariaDB 5.5
fast_update_binlog_statement: No UPSERT in MariaDB 5.5 fast_update_binlog_statement: No UPSERT in MariaDB 5.5
...@@ -54,7 +22,6 @@ fast_upsert_int: No UPSERT in MariaDB 5.5 ...@@ -54,7 +22,6 @@ fast_upsert_int: No UPSERT in MariaDB 5.5
fast_upsert_key: No UPSERT in MariaDB 5.5 fast_upsert_key: No UPSERT in MariaDB 5.5
fast_upsert_sqlmode: No UPSERT in MariaDB 5.5 fast_upsert_sqlmode: No UPSERT in MariaDB 5.5
fast_upsert_values: No UPSERT in MariaDB 5.5 fast_upsert_values: No UPSERT in MariaDB 5.5
hotindex-del-1: No online ALTER in MariaDB 5.5
mvcc-19: No online ALTER in MariaDB 5.5
mvcc-20: No online ALTER in MariaDB 5.5
mvcc-27: No online OPTIMIZE in MariaDB 5.5 mvcc-27: No online OPTIMIZE in MariaDB 5.5
mvcc-19: how this could work, if alter needs an exclusive mdl lock?
mvcc-20: how this could work, if alter needs an exclusive mdl lock?
...@@ -9,7 +9,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -9,7 +9,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a SMALLINT; ALTER TABLE t CHANGE COLUMN a a SMALLINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a SMALLINT; ALTER TABLE t CHANGE COLUMN a a SMALLINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -21,7 +21,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -21,7 +21,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -33,7 +33,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -33,7 +33,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -45,7 +45,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -45,7 +45,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -57,7 +57,7 @@ CREATE TABLE t (a SMALLINT, KEY(a)); ...@@ -57,7 +57,7 @@ CREATE TABLE t (a SMALLINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -69,7 +69,7 @@ CREATE TABLE t (a SMALLINT, KEY(a)); ...@@ -69,7 +69,7 @@ CREATE TABLE t (a SMALLINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -81,7 +81,7 @@ CREATE TABLE t (a SMALLINT, KEY(a)); ...@@ -81,7 +81,7 @@ CREATE TABLE t (a SMALLINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -93,7 +93,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a)); ...@@ -93,7 +93,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -105,7 +105,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a)); ...@@ -105,7 +105,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -117,7 +117,7 @@ CREATE TABLE t (a INT, KEY(a)); ...@@ -117,7 +117,7 @@ CREATE TABLE t (a INT, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a INT, CLUSTERING KEY(a)); CREATE TABLE t (a INT, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -129,7 +129,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -129,7 +129,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -141,7 +141,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -141,7 +141,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -153,7 +153,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -153,7 +153,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -165,7 +165,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -165,7 +165,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -177,7 +177,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a)); ...@@ -177,7 +177,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -189,7 +189,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a)); ...@@ -189,7 +189,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -201,7 +201,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a)); ...@@ -201,7 +201,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -213,7 +213,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a)); ...@@ -213,7 +213,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -225,7 +225,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a)); ...@@ -225,7 +225,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -237,7 +237,7 @@ CREATE TABLE t (a INT UNSIGNED, KEY(a)); ...@@ -237,7 +237,7 @@ CREATE TABLE t (a INT UNSIGNED, KEY(a));
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a INT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a INT UNSIGNED, KEY(a) CLUSTERING=YES);
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 't' uses an extension that doesn't exist in this XYZ version
DROP TABLE t; DROP TABLE t;
...@@ -10003,7 +10003,7 @@ insert into s values (3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(3,7),(3,8),(3,9) ...@@ -10003,7 +10003,7 @@ insert into s values (3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(3,7),(3,8),(3,9)
insert into s values (2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9); insert into s values (2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9);
insert into s values (1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9); insert into s values (1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9);
set tokudb_create_index_online=1; set tokudb_create_index_online=1;
create clustering index i_a on s(a); create index i_a on s(a) clustering=yes;
delete from s where a=10000; delete from s where a=10000;
delete from s where a=9999; delete from s where a=9999;
delete from s where a=9998; delete from s where a=9998;
...@@ -72,7 +72,7 @@ hex(a) ...@@ -72,7 +72,7 @@ hex(a)
1 1
1 1
alter table t1 add unique (a); alter table t1 add unique (a);
ERROR 23000: Duplicate entry '\x00' for key 'a' ERROR 23000: Can't write; duplicate key in table 't1'
drop table t1; drop table t1;
create table t1 (a bit(2)); create table t1 (a bit(2));
insert into t1 values (b'00'), (b'01'), (b'10'), (b'100'); insert into t1 values (b'00'), (b'01'), (b'10'), (b'100');
......
...@@ -16,7 +16,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -16,7 +16,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a SMALLINT; ALTER TABLE t CHANGE COLUMN a a SMALLINT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a SMALLINT; ALTER TABLE t CHANGE COLUMN a a SMALLINT;
...@@ -32,7 +32,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -32,7 +32,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
...@@ -48,7 +48,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -48,7 +48,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
...@@ -64,7 +64,7 @@ CREATE TABLE t (a TINYINT, KEY(a)); ...@@ -64,7 +64,7 @@ CREATE TABLE t (a TINYINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
...@@ -80,7 +80,7 @@ CREATE TABLE t (a SMALLINT, KEY(a)); ...@@ -80,7 +80,7 @@ CREATE TABLE t (a SMALLINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT;
...@@ -96,7 +96,7 @@ CREATE TABLE t (a SMALLINT, KEY(a)); ...@@ -96,7 +96,7 @@ CREATE TABLE t (a SMALLINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
...@@ -112,7 +112,7 @@ CREATE TABLE t (a SMALLINT, KEY(a)); ...@@ -112,7 +112,7 @@ CREATE TABLE t (a SMALLINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
...@@ -128,7 +128,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a)); ...@@ -128,7 +128,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT; ALTER TABLE t CHANGE COLUMN a a INT;
...@@ -144,7 +144,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a)); ...@@ -144,7 +144,7 @@ CREATE TABLE t (a MEDIUMINT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
...@@ -160,7 +160,7 @@ CREATE TABLE t (a INT, KEY(a)); ...@@ -160,7 +160,7 @@ CREATE TABLE t (a INT, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a INT, CLUSTERING KEY(a)); CREATE TABLE t (a INT, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT; ALTER TABLE t CHANGE COLUMN a a BIGINT;
...@@ -176,7 +176,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -176,7 +176,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a SMALLINT UNSIGNED;
...@@ -192,7 +192,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -192,7 +192,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
...@@ -208,7 +208,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -208,7 +208,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
...@@ -224,7 +224,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a)); ...@@ -224,7 +224,7 @@ CREATE TABLE t (a TINYINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a TINYINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a TINYINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
...@@ -240,7 +240,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a)); ...@@ -240,7 +240,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a MEDIUMINT UNSIGNED;
...@@ -256,7 +256,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a)); ...@@ -256,7 +256,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
...@@ -272,7 +272,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a)); ...@@ -272,7 +272,7 @@ CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a SMALLINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a SMALLINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
...@@ -288,7 +288,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a)); ...@@ -288,7 +288,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a INT UNSIGNED;
...@@ -304,7 +304,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a)); ...@@ -304,7 +304,7 @@ CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a MEDIUMINT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a MEDIUMINT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
...@@ -320,7 +320,7 @@ CREATE TABLE t (a INT UNSIGNED, KEY(a)); ...@@ -320,7 +320,7 @@ CREATE TABLE t (a INT UNSIGNED, KEY(a));
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
DROP TABLE t; DROP TABLE t;
CREATE TABLE t (a INT UNSIGNED, CLUSTERING KEY(a)); CREATE TABLE t (a INT UNSIGNED, KEY(a) CLUSTERING=YES);
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED; ALTER TABLE t CHANGE COLUMN a a BIGINT UNSIGNED;
......
# ticket 895 is a query optimization problem with the primary key # ticket 895 is a query optimization problem with the primary key
#--source include/have_tokudb.inc #--source include/have_tokudb.inc
--source include/not_5_5.inc #--source include/not_5_5.inc
SET DEFAULT_STORAGE_ENGINE = 'tokudb'; SET DEFAULT_STORAGE_ENGINE = 'tokudb';
--echo # Establish connection conn1 (user = root) --echo # Establish connection conn1 (user = root)
......
# ticket 895 is a query optimization problem with the primary key # ticket 895 is a query optimization problem with the primary key
#--source include/have_tokudb.inc #--source include/have_tokudb.inc
--source include/not_5_5.inc #--source include/not_5_5.inc
SET DEFAULT_STORAGE_ENGINE = 'tokudb'; SET DEFAULT_STORAGE_ENGINE = 'tokudb';
......
...@@ -40,7 +40,7 @@ drop table t1; ...@@ -40,7 +40,7 @@ drop table t1;
create table t1 (a bit); create table t1 (a bit);
insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001'); insert into t1 values (b'0'), (b'1'), (b'000'), (b'100'), (b'001');
select hex(a) from t1; select hex(a) from t1;
--error ER_DUP_ENTRY --error ER_DUP_KEY
alter table t1 add unique (a); alter table t1 add unique (a);
drop table t1; drop table t1;
......
falcon_bug_22516: dont support hot alter add key and drop key
\ No newline at end of file
...@@ -2,7 +2,7 @@ SET DEFAULT_STORAGE_ENGINE='tokudb'; ...@@ -2,7 +2,7 @@ SET DEFAULT_STORAGE_ENGINE='tokudb';
*** Bug #22169 *** *** Bug #22169 ***
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a int, b int, c int, z int, y int, x int, r int, s int, t int, key (z), key(x), key(t)); CREATE TABLE t1 (a int, b int, c int, z int, y int, x int, r int, s int, t int, key (z), key(x), key(t));
ERROR 23000: Duplicate entry '18-2' for key 'foo' ERROR 23000: Can't write; duplicate key in table 't1'
a b c z y x r s t a b c z y x r s t
1 9 18 10 100 1000 2 3 4 1 9 18 10 100 1000 2 3 4
2 8 16 20 200 2000 4 6 8 2 8 16 20 200 2000 4 6 8
......
...@@ -2,4 +2,4 @@ SET DEFAULT_STORAGE_ENGINE='tokudb'; ...@@ -2,4 +2,4 @@ SET DEFAULT_STORAGE_ENGINE='tokudb';
*** Bug #22169 *** *** Bug #22169 ***
DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a int, b int, c int, z int, y int, x int, r int, s int, t int, key (z), key(x), key(t)); CREATE TABLE t1 (a int, b int, c int, z int, y int, x int, r int, s int, t int, key (z), key(x), key(t));
ERROR 23000: Duplicate entry '18-2' for key 'foo' ERROR 23000: Can't write; duplicate key in table 't1'
...@@ -18,13 +18,13 @@ select count(*) from t1 where sca_pic >= 'n'; ...@@ -18,13 +18,13 @@ select count(*) from t1 where sca_pic >= 'n';
count(*) count(*)
1 1
alter table t1 drop index sca_pic, add index (sca_pic, cat_code); alter table t1 drop index sca_pic, add index (sca_pic, cat_code);
ERROR HY000: Table storage engine for 't1' doesn't have this option ERROR 42000: Table 't1' uses an extension that doesn't exist in this XYZ version
select count(*) from t1 where sca_pic >= 'n'; select count(*) from t1 where sca_pic >= 'n';
count(*) count(*)
1 1
DROP TABLE t1; DROP TABLE t1;
DROP TABLE t1; DROP TABLE t1;
ERROR 42S02: Unknown table 't1' ERROR 42S02: Unknown table 'test.t1'
CREATE TABLE t1 ( CREATE TABLE t1 (
sca_code char(6) NOT NULL, sca_code char(6) NOT NULL,
cat_code char(6) NOT NULL, cat_code char(6) NOT NULL,
...@@ -48,6 +48,7 @@ select count(*) from t1 where sca_pic is null; ...@@ -48,6 +48,7 @@ select count(*) from t1 where sca_pic is null;
count(*) count(*)
2 2
alter table t1 drop index sca_pic, add index sca_pic (cat_code, sca_pic); alter table t1 drop index sca_pic, add index sca_pic (cat_code, sca_pic);
ERROR 42000: Table 't1' uses an extension that doesn't exist in this XYZ version
select count(*) from t1 where sca_code='PD' and sca_pic is null; select count(*) from t1 where sca_code='PD' and sca_pic is null;
count(*) count(*)
1 1
...@@ -55,7 +56,7 @@ select count(*) from t1 where cat_code='E'; ...@@ -55,7 +56,7 @@ select count(*) from t1 where cat_code='E';
count(*) count(*)
0 0
alter table t1 drop index sca_pic, add index (sca_pic, cat_code); alter table t1 drop index sca_pic, add index (sca_pic, cat_code);
ERROR HY000: Table storage engine for 't1' doesn't have this option ERROR 42000: Table 't1' uses an extension that doesn't exist in this XYZ version
select count(*) from t1 where sca_code='PD' and sca_pic is null; select count(*) from t1 where sca_code='PD' and sca_pic is null;
count(*) count(*)
1 1
......
...@@ -25,7 +25,7 @@ while ($1) ...@@ -25,7 +25,7 @@ while ($1)
} }
insert into t1 values (5,52,18,5,5,5,2,5,5); insert into t1 values (5,52,18,5,5,5,2,5,5);
--error ER_DUP_ENTRY --error ER_DUP_KEY
create unique index foo on t1 (c,r); create unique index foo on t1 (c,r);
select * from t1; select * from t1;
......
...@@ -25,7 +25,7 @@ while ($1) ...@@ -25,7 +25,7 @@ while ($1)
} }
insert into t1 values (5,52,18,5,5,5,2,5,5); insert into t1 values (5,52,18,5,5,5,2,5,5);
--error ER_DUP_ENTRY --error ER_DUP_KEY
create unique index foo on t1 (c,r); create unique index foo on t1 (c,r);
......
# alter table # alter table
hcad_tmp_tables: tmp tables bypass hot alter, we run hcad_tmp_tables_56 instead hcad_tmp_tables: tmp tables bypass hot alter, we run hcad_tmp_tables_56 instead
hcad_with_locks: cant alter table concurrent with reading a table in 5.5
frm_discover_partition: No partition discovery in MariaDB 5.5 frm_discover_partition: No partition discovery in MariaDB 5.5
auto_inc: No online ALTER in MariaDB 5.5
fractional_time_alter_table: No online ALTER in MariaDB 5.5 hcad_with_locks: how this could work, if alter needs an exclusive mdl lock?
hcad_indexing_mix: No online ALTER in MariaDB 5.5
hcad_null_bits: No online ALTER in MariaDB 5.5
hcr: No online ALTER in MariaDB 5.5
hcr_binary1: No online ALTER in MariaDB 5.5
hcr_blob: No online ALTER in MariaDB 5.5
hcr_char1: No online ALTER in MariaDB 5.5
hcr_text: No online ALTER in MariaDB 5.5
hcr_time: No online ALTER in MariaDB 5.5
hot_row_format_alter: No online ALTER in MariaDB 5.5
other_alter: No online ALTER in MariaDB 5.5
...@@ -16,7 +16,7 @@ select sum(a) from foo; ...@@ -16,7 +16,7 @@ select sum(a) from foo;
sum(a) sum(a)
9 9
alter table foo add unique index b(b), drop index a; alter table foo add unique index b(b), drop index a;
ERROR 23000: Duplicate entry '30' for key 'b' ERROR 23000: Can't write; duplicate key in table 'foo'
select * from foo; select * from foo;
a b c a b c
1 10 100 1 10 100
......
...@@ -62,7 +62,7 @@ alter table foo auto_increment=100000, change b b bigint; ...@@ -62,7 +62,7 @@ alter table foo auto_increment=100000, change b b bigint;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo auto_increment=100000, change b c int; alter table foo auto_increment=100000, change b c int;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo auto_increment=100000, ROW_FORMAT=TOKUDB_LZMA; alter table foo auto_increment=100000, COMPRESSION=TOKUDB_LZMA;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo auto_increment=100000, change b b int DEFAULT 111; alter table foo auto_increment=100000, change b b int DEFAULT 111;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
......
SET DEFAULT_STORAGE_ENGINE='tokudb'; SET DEFAULT_STORAGE_ENGINE='tokudb';
DROP TABLE IF EXISTS foo,bar; DROP TABLE IF EXISTS foo,bar;
set session tokudb_disable_slow_alter=ON; set session tokudb_disable_slow_alter=ON;
create table foo (aa int, bb int, cc int, dd int, ee int, a int, b varchar(20), c int, d int, e int, primary key (e), key(d), unique key(c), clustering key (b)); create table foo (aa int, bb int, cc int, dd int, ee int, a int, b varchar(20), c int, d int, e int, primary key (e), key(d), unique key(c), key (b) clustering=yes);
alter table foo drop column e; alter table foo drop column e;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo drop column d; alter table foo drop column d;
...@@ -23,9 +23,9 @@ alter table foo drop column aaa, drop index b, add index b(d); ...@@ -23,9 +23,9 @@ alter table foo drop column aaa, drop index b, add index b(d);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo drop column aaa, drop index b, add index b(b); alter table foo drop column aaa, drop index b, add index b(b);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo drop column aaa, drop index b, add clustering index b(b(5)); alter table foo drop column aaa, drop index b, add index b(b(5)) clustering=yes;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo drop column aaa, drop index b, add clustering index b(b); alter table foo drop column aaa, drop index b, add index b(b) clustering=yes;
alter table foo add column aaa int, drop index d; alter table foo add column aaa int, drop index d;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add column aaa int, add index (bb); alter table foo add column aaa int, add index (bb);
...@@ -38,9 +38,9 @@ alter table foo add column aaa int, drop index b, add unique index b(b); ...@@ -38,9 +38,9 @@ alter table foo add column aaa int, drop index b, add unique index b(b);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add column aaa int, drop index b, add index b(b); alter table foo add column aaa int, drop index b, add index b(b);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add column aaa int, drop index b, add clustering index b(b(5)); alter table foo add column aaa int, drop index b, add index b(b(5)) clustering=yes;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add column aaa int, drop index b, add clustering index b(b); alter table foo add column aaa int, drop index b, add index b(b) clustering=yes;
alter table foo drop column aaa, drop index c; alter table foo drop column aaa, drop index c;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo drop column aaa, add index (bb); alter table foo drop column aaa, add index (bb);
...@@ -60,7 +60,7 @@ alter table foo add column aaa int, drop index c, add index c(c); ...@@ -60,7 +60,7 @@ alter table foo add column aaa int, drop index c, add index c(c);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add column aaa int, drop index c, add index c(d); alter table foo add column aaa int, drop index c, add index c(d);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add column aaa int, drop index c, add clustering index c(c); alter table foo add column aaa int, drop index c, add index c(c) clustering=yes;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add column aaa int, drop index c, add index c(c); alter table foo add column aaa int, drop index c, add index c(c);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
......
...@@ -9,94 +9,94 @@ a b ...@@ -9,94 +9,94 @@ a b
1 11 1 11
2 21 2 21
3 32 3 32
ALTER TABLE foo row_format=TOKUDB_LZMA; ALTER TABLE foo compression=TOKUDB_LZMA;
SHOW CREATE TABLE foo; SHOW CREATE TABLE foo;
Table Create Table Table Create Table
foo CREATE TABLE `foo` ( foo CREATE TABLE `foo` (
`a` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_LZMA ) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 `compression`=TOKUDB_LZMA
select * from foo; select * from foo;
a b a b
1 11 1 11
2 21 2 21
3 32 3 32
ALTER TABLE foo row_format=TOKUDB_QUICKLZ; ALTER TABLE foo compression=TOKUDB_QUICKLZ;
SHOW CREATE TABLE foo; SHOW CREATE TABLE foo;
Table Create Table Table Create Table
foo CREATE TABLE `foo` ( foo CREATE TABLE `foo` (
`a` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_QUICKLZ ) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 `compression`=TOKUDB_QUICKLZ
select * from foo; select * from foo;
a b a b
1 11 1 11
2 21 2 21
3 32 3 32
ALTER TABLE foo row_format=TOKUDB_UNCOMPRESSED; ALTER TABLE foo compression=TOKUDB_UNCOMPRESSED;
SHOW CREATE TABLE foo; SHOW CREATE TABLE foo;
Table Create Table Table Create Table
foo CREATE TABLE `foo` ( foo CREATE TABLE `foo` (
`a` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_UNCOMPRESSED ) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 `compression`=TOKUDB_UNCOMPRESSED
select * from foo; select * from foo;
a b a b
1 11 1 11
2 21 2 21
3 32 3 32
ALTER TABLE foo row_format=TOKUDB_ZLIB; ALTER TABLE foo compression=TOKUDB_ZLIB;
SHOW CREATE TABLE foo; SHOW CREATE TABLE foo;
Table Create Table Table Create Table
foo CREATE TABLE `foo` ( foo CREATE TABLE `foo` (
`a` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_ZLIB ) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 `compression`=TOKUDB_ZLIB
select * from foo; select * from foo;
a b a b
1 11 1 11
2 21 2 21
3 32 3 32
ALTER TABLE foo row_format=TOKUDB_FAST; ALTER TABLE foo compression=TOKUDB_FAST;
SHOW CREATE TABLE foo; SHOW CREATE TABLE foo;
Table Create Table Table Create Table
foo CREATE TABLE `foo` ( foo CREATE TABLE `foo` (
`a` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_FAST ) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 `compression`=TOKUDB_FAST
select * from foo; select * from foo;
a b a b
1 11 1 11
2 21 2 21
3 32 3 32
ALTER TABLE foo row_format=TOKUDB_SMALL; ALTER TABLE foo compression=TOKUDB_SMALL;
SHOW CREATE TABLE foo; SHOW CREATE TABLE foo;
Table Create Table Table Create Table
foo CREATE TABLE `foo` ( foo CREATE TABLE `foo` (
`a` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_SMALL ) ENGINE=TokuDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 `compression`=TOKUDB_SMALL
select * from foo; select * from foo;
a b a b
1 11 1 11
2 21 2 21
3 32 3 32
ALTER TABLE foo row_format=TOKUDB_LZMA, add column c int; ALTER TABLE foo compression=TOKUDB_LZMA, add column c int;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
ALTER TABLE foo row_format=TOKUDB_LZMA, drop column b; ALTER TABLE foo compression=TOKUDB_LZMA, drop column b;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
ALTER TABLE foo row_format=TOKUDB_LZMA, add key b(b); ALTER TABLE foo compression=TOKUDB_LZMA, add key b(b);
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
ALTER TABLE foo row_format=TOKUDB_LZMA, change b b bigint; ALTER TABLE foo compression=TOKUDB_LZMA, change b b bigint;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
ALTER TABLE foo row_format=TOKUDB_LZMA, change b c int; ALTER TABLE foo compression=TOKUDB_LZMA, change b c int;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
ALTER TABLE foo auto_increment=100000, ROW_FORMAT=TOKUDB_LZMA; ALTER TABLE foo auto_increment=100000, compression=TOKUDB_LZMA;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
DROP TABLE foo; DROP TABLE foo;
SET DEFAULT_STORAGE_ENGINE='tokudb'; SET DEFAULT_STORAGE_ENGINE='tokudb';
DROP TABLE IF EXISTS foo,bar; DROP TABLE IF EXISTS foo,bar;
set session tokudb_disable_slow_alter=ON; set session tokudb_disable_slow_alter=ON;
create table foo (aa int, bb int, cc int, dd int, ee int, a int, b varchar(20), c int, d int, e int, primary key (e), key(d), unique key(c), clustering key (b))engine=TokuDB; create table foo (aa int, bb int, cc int, dd int, ee int, a int, b varchar(20), c int, d int, e int, primary key (e), key(d), unique key(c), key (b) clustering=yes)engine=TokuDB;
create table bar (a int) engine=TokuDB; create table bar (a int) engine=TokuDB;
alter table foo drop primary key; alter table foo drop primary key;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
...@@ -20,9 +20,9 @@ ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ versio ...@@ -20,9 +20,9 @@ ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ versio
alter table foo drop primary key, add primary key (b), drop column aa; alter table foo drop primary key, add primary key (b), drop column aa;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
alter table foo add fulltext key(b); alter table foo add fulltext key(b);
ERROR HY000: The used table type doesn't support FULLTEXT indexes ERROR HY000: The storage engine TokuDB doesn't support FULLTEXT indexes
alter table foo add spatial key (aa); alter table foo add spatial key (aa);
ERROR HY000: The used table type doesn't support SPATIAL indexes ERROR HY000: The storage engine TokuDB doesn't support SPATIAL indexes
alter table foo alter column cc set default 101010; alter table foo alter column cc set default 101010;
alter table foo alter column cc set default NULL; alter table foo alter column cc set default NULL;
alter table foo alter column cc drop default; alter table foo alter column cc drop default;
...@@ -62,7 +62,7 @@ foo CREATE TABLE `foo` ( ...@@ -62,7 +62,7 @@ foo CREATE TABLE `foo` (
PRIMARY KEY (`e`), PRIMARY KEY (`e`),
UNIQUE KEY `c` (`c`), UNIQUE KEY `c` (`c`),
KEY `d` (`d`), KEY `d` (`d`),
CLUSTERING KEY `b` (`b`) KEY `b` (`b`) `clustering`=yes
) ENGINE=TokuDB DEFAULT CHARSET=latin1 ) ENGINE=TokuDB DEFAULT CHARSET=latin1
alter table foo change column aa aa int NOT NULL; alter table foo change column aa aa int NOT NULL;
ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version ERROR 42000: Table 'foo' uses an extension that doesn't exist in this XYZ version
......
...@@ -15,7 +15,7 @@ select * from foo; ...@@ -15,7 +15,7 @@ select * from foo;
explain select sum(a) from foo; explain select sum(a) from foo;
select sum(a) from foo; select sum(a) from foo;
--error ER_DUP_ENTRY --error ER_DUP_KEY
alter table foo add unique index b(b), drop index a; alter table foo add unique index b(b), drop index a;
select * from foo; select * from foo;
......
...@@ -48,7 +48,7 @@ alter table foo auto_increment=100000, change b c int; ...@@ -48,7 +48,7 @@ alter table foo auto_increment=100000, change b c int;
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
alter table foo auto_increment=100000, ROW_FORMAT=TOKUDB_LZMA; alter table foo auto_increment=100000, COMPRESSION=TOKUDB_LZMA;
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
......
...@@ -63,7 +63,7 @@ ALTER TABLE foo compression=TOKUDB_LZMA, change b c int; ...@@ -63,7 +63,7 @@ ALTER TABLE foo compression=TOKUDB_LZMA, change b c int;
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/ --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION --error ER_UNSUPPORTED_EXTENSION
ALTER TABLE foo auto_increment=100000, ROW_FORMAT=TOKUDB_LZMA; ALTER TABLE foo auto_increment=100000, compression=TOKUDB_LZMA;
DROP TABLE foo; DROP TABLE foo;
memcache_dirty : #4609 memcache patch from facebook not ported to mysql 5.5 memcache_dirty : #4609 memcache patch from facebook not ported to mysql 5.5
4472 : #4521 MDL for alter table in 5.5 prohibits this test from having any chance of working 4472 : #4521 MDL for alter table in 5.5 prohibits this test from having any chance of working
tokudb_drop_part_table_668: tokudb_drop_part_table_668: no tokudb test data in mariadb tree
tokudb_drop_simple_table_668: tokudb_drop_simple_table_668: no tokudb test data in mariadb tree
5585: times out 5585: times out, too many huge insert...selects
2952: Not for 5.5 fileops-3: how this could work, if alter needs an exclusive mdl lock?
fileops-2: Not for 5.5 6053: N/A to MariaDB
fileops-3: Not for 5.5
fileops-4: Not for 5.5
xa-2: Not for 5.5
6053: N/A
...@@ -16,6 +16,7 @@ foo CREATE TABLE `foo` ( ...@@ -16,6 +16,7 @@ foo CREATE TABLE `foo` (
begin; begin;
insert into foo values (1,10,100),(2,20,200),(3,30,300); insert into foo values (1,10,100),(2,20,200),(3,30,300);
set session transaction isolation level read uncommitted; set session transaction isolation level read uncommitted;
set session lock_wait_timeout=1;
insert into foo values (100,100,100); insert into foo values (100,100,100);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
alter table foo drop index a; alter table foo drop index a;
......
...@@ -5,13 +5,14 @@ create table foo ( a int, b int, c int, key (a), key (b)); ...@@ -5,13 +5,14 @@ create table foo ( a int, b int, c int, key (a), key (b));
insert into foo values (1,10,100); insert into foo values (1,10,100);
begin; begin;
insert into foo values(2,20,200); insert into foo values(2,20,200);
set session lock_wait_timeout=1;
select * from foo; select * from foo;
a b c a b c
1 10 100 1 10 100
drop table foo; drop table foo;
ERROR 42S02: Unknown table 'foo' ERROR HY000: Lock wait timeout exceeded; try restarting transaction
rename table foo to bar; rename table foo to bar;
ERROR HY000: Error on rename of './test/foo' to './test/bar' (errno: -30994) ERROR HY000: Lock wait timeout exceeded; try restarting transaction
truncate table foo; truncate table foo;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
alter table foo add index (c); alter table foo add index (c);
......
...@@ -5,13 +5,14 @@ create table foo ( a int, b int, c int, key (a), key (b)); ...@@ -5,13 +5,14 @@ create table foo ( a int, b int, c int, key (a), key (b));
insert into foo values (1,10,100); insert into foo values (1,10,100);
begin; begin;
insert into foo values (2,20,200); insert into foo values (2,20,200);
set session lock_wait_timeout=1;
select * from foo; select * from foo;
a b c a b c
1 10 100 1 10 100
drop table foo; drop table foo;
ERROR 42S02: Unknown table 'foo' ERROR HY000: Lock wait timeout exceeded; try restarting transaction
rename table foo to bar; rename table foo to bar;
ERROR HY000: Error on rename of './test/foo' to './test/bar' (errno: -30994) ERROR HY000: Lock wait timeout exceeded; try restarting transaction
truncate table foo; truncate table foo;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
alter table foo drop index a; alter table foo drop index a;
......
...@@ -6,13 +6,7 @@ select * from t1; ...@@ -6,13 +6,7 @@ select * from t1;
a a
1 1
xa end 'a','ab'; xa end 'a','ab';
select * from t1;
a
1
xa prepare 'a','ab'; xa prepare 'a','ab';
select * from t1;
a
1
xa commit 'a','ab'; xa commit 'a','ab';
select * from t1; select * from t1;
a a
...@@ -24,15 +18,7 @@ a ...@@ -24,15 +18,7 @@ a
1 1
2 2
xa end 'a','ab'; xa end 'a','ab';
select * from t1;
a
1
2
xa prepare 'a','ab'; xa prepare 'a','ab';
select * from t1;
a
1
2
xa rollback 'a','ab'; xa rollback 'a','ab';
select * from t1; select * from t1;
a a
......
# ticket 895 is a query optimization problem with the primary key # ticket 895 is a query optimization problem with the primary key
#--source include/have_tokudb.inc #--source include/have_tokudb.inc
--source include/not_5_5.inc #--source include/not_5_5.inc
SET DEFAULT_STORAGE_ENGINE = 'tokudb'; SET DEFAULT_STORAGE_ENGINE = 'tokudb';
--echo # Establish connection conn1 (user = root) --echo # Establish connection conn1 (user = root)
...@@ -22,6 +22,8 @@ insert into foo values (1,10,100),(2,20,200),(3,30,300); ...@@ -22,6 +22,8 @@ insert into foo values (1,10,100),(2,20,200),(3,30,300);
connection conn1; connection conn1;
set session transaction isolation level read uncommitted; set session transaction isolation level read uncommitted;
set session lock_wait_timeout=1;
--error ER_LOCK_WAIT_TIMEOUT --error ER_LOCK_WAIT_TIMEOUT
insert into foo values (100,100,100); insert into foo values (100,100,100);
--error ER_LOCK_WAIT_TIMEOUT --error ER_LOCK_WAIT_TIMEOUT
......
# ticket 895 is a query optimization problem with the primary key # ticket 895 is a query optimization problem with the primary key
--source include/have_tokudb.inc --source include/have_tokudb.inc
--source include/not_5_5.inc #--source include/not_5_5.inc
--echo # Establish connection conn1 (user = root) --echo # Establish connection conn1 (user = root)
connect (conn1,localhost,root,,); connect (conn1,localhost,root,,);
SET DEFAULT_STORAGE_ENGINE = 'tokudb'; SET DEFAULT_STORAGE_ENGINE = 'tokudb';
...@@ -17,10 +18,11 @@ begin; ...@@ -17,10 +18,11 @@ begin;
insert into foo values(2,20,200); insert into foo values(2,20,200);
connection default; connection default;
set session lock_wait_timeout=1;
select * from foo; select * from foo;
--error ER_BAD_TABLE_ERROR --error ER_LOCK_WAIT_TIMEOUT
drop table foo; drop table foo;
--error ER_ERROR_ON_RENAME --error ER_LOCK_WAIT_TIMEOUT
rename table foo to bar; rename table foo to bar;
--error ER_LOCK_WAIT_TIMEOUT --error ER_LOCK_WAIT_TIMEOUT
truncate table foo; truncate table foo;
......
# ticket 895 is a query optimization problem with the primary key # ticket 895 is a query optimization problem with the primary key
--source include/have_tokudb.inc --source include/have_tokudb.inc
--source include/not_5_5.inc #--source include/not_5_5.inc
--echo # Establish connection conn1 (user = root) --echo # Establish connection conn1 (user = root)
connect (conn1,localhost,root,,); connect (conn1,localhost,root,,);
SET DEFAULT_STORAGE_ENGINE = 'tokudb'; SET DEFAULT_STORAGE_ENGINE = 'tokudb';
......
# ticket 895 is a query optimization problem with the primary key # ticket 895 is a query optimization problem with the primary key
#--source include/have_tokudb.inc #--source include/have_tokudb.inc
--source include/not_5_5.inc #--source include/not_5_5.inc
--echo # Establish connection conn1 (user = root) --echo # Establish connection conn1 (user = root)
connect (conn1,localhost,root,,); connect (conn1,localhost,root,,);
SET DEFAULT_STORAGE_ENGINE = 'tokudb'; SET DEFAULT_STORAGE_ENGINE = 'tokudb';
...@@ -17,10 +17,11 @@ begin; ...@@ -17,10 +17,11 @@ begin;
insert into foo values (2,20,200); insert into foo values (2,20,200);
connection default; connection default;
set session lock_wait_timeout=1;
select * from foo; select * from foo;
--error ER_BAD_TABLE_ERROR --error ER_LOCK_WAIT_TIMEOUT
drop table foo; drop table foo;
--error ER_ERROR_ON_RENAME --error ER_LOCK_WAIT_TIMEOUT
rename table foo to bar; rename table foo to bar;
--error ER_LOCK_WAIT_TIMEOUT --error ER_LOCK_WAIT_TIMEOUT
truncate table foo; truncate table foo;
......
-- source include/have_tokudb.inc -- source include/have_tokudb.inc
--source include/not_5_5.inc #--source include/not_5_5.inc
--disable_warnings --disable_warnings
drop table if exists t1; drop table if exists t1;
...@@ -13,9 +13,7 @@ xa begin 'a','ab'; ...@@ -13,9 +13,7 @@ xa begin 'a','ab';
insert into t1 values (1); insert into t1 values (1);
select * from t1; select * from t1;
xa end 'a','ab'; xa end 'a','ab';
select * from t1;
xa prepare 'a','ab'; xa prepare 'a','ab';
select * from t1;
xa commit 'a','ab'; xa commit 'a','ab';
select * from t1; select * from t1;
...@@ -23,9 +21,7 @@ xa begin 'a','ab'; ...@@ -23,9 +21,7 @@ xa begin 'a','ab';
insert into t1 values (2); insert into t1 values (2);
select * from t1; select * from t1;
xa end 'a','ab'; xa end 'a','ab';
select * from t1;
xa prepare 'a','ab'; xa prepare 'a','ab';
select * from t1;
xa rollback 'a','ab'; xa rollback 'a','ab';
select * from t1; select * from t1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment