diff options
author | Kentoku SHIBA <kentokushiba@gmail.com> | 2013-08-24 18:37:49 +0900 |
---|---|---|
committer | Kentoku SHIBA <kentokushiba@gmail.com> | 2013-08-24 18:37:49 +0900 |
commit | 38c9476513822e98794f7f414e4805afb01f714e (patch) | |
tree | 358d59574576d407abeb02290e2b1633a54978e3 | |
parent | 48ed7f10e203b15c2961fa71d832359e0c226ce7 (diff) | |
download | mariadb-git-38c9476513822e98794f7f414e4805afb01f714e.tar.gz |
Change for mearging MariaDB 10.0.4.
-rw-r--r-- | storage/spider/ha_spider.cc | 44 | ||||
-rw-r--r-- | storage/spider/spd_conn.cc | 50 | ||||
-rw-r--r-- | storage/spider/spd_db_conn.cc | 31 | ||||
-rw-r--r-- | storage/spider/spd_db_include.h | 5 | ||||
-rw-r--r-- | storage/spider/spd_db_mysql.cc | 87 | ||||
-rw-r--r-- | storage/spider/spd_db_oracle.cc | 73 | ||||
-rw-r--r-- | storage/spider/spd_include.h | 32 | ||||
-rw-r--r-- | storage/spider/spd_ping_table.cc | 6 | ||||
-rw-r--r-- | storage/spider/spd_sys_table.cc | 2 | ||||
-rw-r--r-- | storage/spider/spd_table.cc | 26 |
10 files changed, 187 insertions, 169 deletions
diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc index 787cfb44fde..4523f9dbe7d 100644 --- a/storage/spider/ha_spider.cc +++ b/storage/spider/ha_spider.cc @@ -7833,13 +7833,8 @@ int ha_spider::info( */ if ((spider_init_error_table->init_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(spider_init_error_table->init_error_msg, - thd->main_da.message()); -#else strmov(spider_init_error_table->init_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); spider_init_error_table->init_error_time = (time_t) time((time_t*) 0); } @@ -8059,13 +8054,8 @@ ha_rows ha_spider::records_in_range( */ if ((spider_init_error_table->init_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(spider_init_error_table->init_error_msg, - thd->main_da.message()); -#else strmov(spider_init_error_table->init_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); spider_init_error_table->init_error_time = (time_t) time((time_t*) 0); } @@ -8108,7 +8098,7 @@ ha_rows ha_spider::records_in_range( KEY *key_info = &table->key_info[inx]; key_part_map full_key_part_map = - make_prev_keypart_map(key_info->key_parts); + make_prev_keypart_map(spider_user_defined_key_parts(key_info)); key_part_map start_key_part_map; key_part_map end_key_part_map; key_part_map tgt_key_part_map; @@ -8301,13 +8291,8 @@ int ha_spider::check_crd() spider_init_error_table->init_error = error_num; if ((spider_init_error_table->init_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 strmov(spider_init_error_table->init_error_msg, - thd->main_da.message()); -#else - strmov(spider_init_error_table->init_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); spider_init_error_table->init_error_time = (time_t) time((time_t*) 0); } @@ -9736,9 +9721,9 @@ int ha_spider::create( if ( (thd->lex->alter_info.flags & ( - ALTER_ADD_PARTITION | ALTER_DROP_PARTITION | - ALTER_COALESCE_PARTITION | ALTER_REORGANIZE_PARTITION | - ALTER_TABLE_REORG | ALTER_REBUILD_PARTITION + SPIDER_ALTER_ADD_PARTITION | SPIDER_ALTER_DROP_PARTITION | + SPIDER_ALTER_COALESCE_PARTITION | SPIDER_ALTER_REORGANIZE_PARTITION | + SPIDER_ALTER_TABLE_REORG | SPIDER_ALTER_REBUILD_PARTITION ) ) && memcmp(name + strlen(name) - 5, "#TMP#", 5) @@ -9883,9 +9868,9 @@ int ha_spider::rename_table( if ( (thd->lex->alter_info.flags & ( - ALTER_ADD_PARTITION | ALTER_DROP_PARTITION | - ALTER_COALESCE_PARTITION | ALTER_REORGANIZE_PARTITION | - ALTER_TABLE_REORG | ALTER_REBUILD_PARTITION + SPIDER_ALTER_ADD_PARTITION | SPIDER_ALTER_DROP_PARTITION | + SPIDER_ALTER_COALESCE_PARTITION | SPIDER_ALTER_REORGANIZE_PARTITION | + SPIDER_ALTER_TABLE_REORG | SPIDER_ALTER_REBUILD_PARTITION ) ) ) @@ -10010,9 +9995,9 @@ int ha_spider::delete_table( sql_command == SQLCOM_ALTER_TABLE && (thd->lex->alter_info.flags & ( - ALTER_ADD_PARTITION | ALTER_DROP_PARTITION | - ALTER_COALESCE_PARTITION | ALTER_REORGANIZE_PARTITION | - ALTER_TABLE_REORG | ALTER_REBUILD_PARTITION + SPIDER_ALTER_ADD_PARTITION | SPIDER_ALTER_DROP_PARTITION | + SPIDER_ALTER_COALESCE_PARTITION | SPIDER_ALTER_REORGANIZE_PARTITION | + SPIDER_ALTER_TABLE_REORG | SPIDER_ALTER_REBUILD_PARTITION ) ) ) @@ -10711,7 +10696,8 @@ void ha_spider::set_select_column_mode() /* need primary key columns */ key_info = &table_share->key_info[table_share->primary_key]; key_part = key_info->key_part; - for (roop_count = 0; roop_count < (int) key_info->key_parts; + for (roop_count = 0; + roop_count < (int) spider_user_defined_key_parts(key_info); roop_count++) { field = key_part[roop_count].field; diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc index 64e9c3e4cf5..ad3a7847d6e 100644 --- a/storage/spider/spd_conn.cc +++ b/storage/spider/spd_conn.cc @@ -2264,11 +2264,7 @@ void *spider_bg_conn_action( { result_list->bgs_error = error_num; if ((result_list->bgs_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(result_list->bgs_error_msg, thd->main_da.message()); -#else - strmov(result_list->bgs_error_msg, thd->stmt_da->message()); -#endif + strmov(result_list->bgs_error_msg, spider_stmt_da_message(thd)); } if (!dbton_handler->need_lock_before_set_sql_for_exec(sql_type)) { @@ -2316,13 +2312,8 @@ void *spider_bg_conn_action( ) { result_list->bgs_error = spider_db_errorno(conn); if ((result_list->bgs_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 strmov(result_list->bgs_error_msg, - thd->main_da.message()); -#else - strmov(result_list->bgs_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); } else spider_db_discard_multiple_result(spider, conn->link_idx, conn); @@ -2339,13 +2330,8 @@ void *spider_bg_conn_action( ) { result_list->bgs_error = spider_db_errorno(conn); if ((result_list->bgs_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(result_list->bgs_error_msg, - thd->main_da.message()); -#else strmov(result_list->bgs_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); } else { spider->connection_ids[conn->link_idx] = conn->connection_id; if (!conn->bg_discard_result) @@ -2357,13 +2343,8 @@ void *spider_bg_conn_action( else { if ((result_list->bgs_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 strmov(result_list->bgs_error_msg, - thd->main_da.message()); -#else - strmov(result_list->bgs_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); } } else { result_list->bgs_error = 0; @@ -2373,11 +2354,8 @@ void *spider_bg_conn_action( } } else { if ((result_list->bgs_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(result_list->bgs_error_msg, thd->main_da.message()); -#else - strmov(result_list->bgs_error_msg, thd->stmt_da->message()); -#endif + strmov(result_list->bgs_error_msg, + spider_stmt_da_message(thd)); } #ifdef HA_CAN_BULK_ACCESS } @@ -2396,11 +2374,7 @@ void *spider_bg_conn_action( result_list->bgs_error = spider_db_store_result(spider, conn->link_idx, result_list->table); if ((result_list->bgs_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(result_list->bgs_error_msg, thd->main_da.message()); -#else - strmov(result_list->bgs_error_msg, thd->stmt_da->message()); -#endif + strmov(result_list->bgs_error_msg, spider_stmt_da_message(thd)); conn->mta_conn_mutex_unlock_later = FALSE; } conn->bg_search = FALSE; @@ -2427,15 +2401,9 @@ void *spider_bg_conn_action( SPIDER_BG_DIRECT_SQL *bg_direct_sql = (SPIDER_BG_DIRECT_SQL *) direct_sql->parent; pthread_mutex_lock(direct_sql->bg_mutex); -#if MYSQL_VERSION_ID < 50500 - bg_direct_sql->bg_error = thd->main_da.sql_errno(); + bg_direct_sql->bg_error = spider_stmt_da_sql_errno(thd); strmov((char *) bg_direct_sql->bg_error_msg, - thd->main_da.message()); -#else - bg_direct_sql->bg_error = thd->stmt_da->sql_errno(); - strmov((char *) bg_direct_sql->bg_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); pthread_mutex_unlock(direct_sql->bg_mutex); is_error = TRUE; } diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index 26adf14e311..9eeab73bb05 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -680,7 +680,7 @@ int spider_db_errorno( current_thd && spider_param_force_commit(current_thd) == 1 ) { - push_warning(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + push_warning(current_thd, SPIDER_WARN_LEVEL_WARN, error_num, conn->db_conn->get_error()); if (spider_param_log_result_errors() >= 3) { @@ -1421,13 +1421,15 @@ int spider_db_append_key_columns( SPIDER_RESULT_LIST *result_list = &spider->result_list; KEY *key_info = result_list->key_info; uint key_name_length, key_count; - key_part_map full_key_part_map = make_prev_keypart_map(key_info->key_parts); + key_part_map full_key_part_map = + make_prev_keypart_map(spider_user_defined_key_parts(key_info)); key_part_map start_key_part_map; char tmp_buf[MAX_FIELD_WIDTH]; DBUG_ENTER("spider_db_append_key_columns"); start_key_part_map = start_key->keypart_map & full_key_part_map; - DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info->key_parts)); + DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u", + spider_user_defined_key_parts(key_info))); DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map)); DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map)); @@ -1567,7 +1569,8 @@ int spider_db_append_key_where_internal( } if (key_info) - full_key_part_map = make_prev_keypart_map(key_info->key_parts); + full_key_part_map = + make_prev_keypart_map(spider_user_defined_key_parts(key_info)); else full_key_part_map = 0; @@ -1583,8 +1586,8 @@ int spider_db_append_key_where_internal( end_key_part_map = 0; use_both = FALSE; } - DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info ? - key_info->key_parts : 0)); + DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u", key_info ? + spider_user_defined_key_parts(key_info) : 0)); DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map)); DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map)); DBUG_PRINT("info", ("spider end_key_part_map=%lu", end_key_part_map)); @@ -2731,7 +2734,7 @@ int spider_db_fetch_key( for ( key_part = key_info->key_part, part_num = 0; - part_num < key_info->key_parts; + part_num < spider_user_defined_key_parts(key_info); key_part++, part_num++ ) { @@ -4666,7 +4669,7 @@ int spider_db_seek_tmp_key( for ( key_part = key_info->key_part, part_num = 0; - part_num < key_info->key_parts; + part_num < spider_user_defined_key_parts(key_info); key_part++, part_num++ ) { @@ -4813,7 +4816,8 @@ void spider_db_set_cardinarity( for (roop_count = 0; roop_count < (int) table->s->keys; roop_count++) { key_info = &table->key_info[roop_count]; - for (roop_count2 = 0; roop_count2 < (int) key_info->key_parts; + for (roop_count2 = 0; + roop_count2 < (int) spider_user_defined_key_parts(key_info); roop_count2++) { key_part = &key_info->key_part[roop_count2]; @@ -5469,7 +5473,7 @@ int spider_db_update_auto_increment( for (roop_count = first_set ? 1 : 0; roop_count < (int) affected_rows; roop_count++) - push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE, + push_warning_printf(thd, SPIDER_WARN_LEVEL_NOTE, ER_SPIDER_AUTOINC_VAL_IS_DIFFERENT_NUM, ER_SPIDER_AUTOINC_VAL_IS_DIFFERENT_STR); } @@ -5485,7 +5489,7 @@ int spider_db_update_auto_increment( #endif ) { for (roop_count = 0; roop_count < (int) affected_rows; roop_count++) - push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE, + push_warning_printf(thd, SPIDER_WARN_LEVEL_NOTE, ER_SPIDER_AUTOINC_VAL_IS_DIFFERENT_NUM, ER_SPIDER_AUTOINC_VAL_IS_DIFFERENT_STR); } @@ -7790,7 +7794,7 @@ uint spider_db_check_ft_idx( key_info = &table->key_info[roop_count]; if ( key_info->algorithm == HA_KEY_ALG_FULLTEXT && - item_count - 1 == key_info->key_parts + item_count - 1 == spider_user_defined_key_parts(key_info) ) { match1 = TRUE; for (roop_count2 = 1; roop_count2 < item_count; roop_count2++) @@ -7801,7 +7805,8 @@ uint spider_db_check_ft_idx( DBUG_RETURN(MAX_KEY); match2 = FALSE; for (key_part = key_info->key_part, part_num = 0; - part_num < key_info->key_parts; key_part++, part_num++) + part_num < spider_user_defined_key_parts(key_info); + key_part++, part_num++) { if (key_part->field == field) { diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h index cbe55f0608b..a46d501bedb 100644 --- a/storage/spider/spd_db_include.h +++ b/storage/spider/spd_db_include.h @@ -25,8 +25,9 @@ #define SPIDER_HAS_APPEND_FOR_SINGLE_QUOTE #define SPIDER_HAS_SHOW_SIMPLE_FUNC #endif -#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100003 -#define SPIDER_GENERATE_PARTITION_SYNTAX_HAS_CURRENT_COMMENT_START + +#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100004 +#define SPIDER_HAS_TIME_STATUS #endif class spider_db_conn; diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index cfaba822934..bc96713d479 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -569,7 +569,11 @@ int spider_db_mysql_result::fetch_table_status( #else
my_bool not_used_my_bool;
#endif
- int not_used_int;
+#ifdef SPIDER_HAS_TIME_STATUS
+ MYSQL_TIME_STATUS time_status;
+#else
+ int time_status;
+#endif
long not_used_long;
DBUG_ENTER("spider_db_mysql_result::fetch_table_status");
DBUG_PRINT("info",("spider this=%p", this));
@@ -630,8 +634,11 @@ int spider_db_mysql_result::fetch_table_status( ("spider auto_increment_value=%lld", auto_increment_value));
if (mysql_row[11])
{
+#ifdef SPIDER_HAS_TIME_STATUS
+ my_time_status_init(&time_status);
+#endif
str_to_datetime(mysql_row[11], strlen(mysql_row[11]), &mysql_time, 0,
- ¬_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
create_time = (time_t) my_system_gmt_sec(&mysql_time,
¬_used_long, ¬_used_uint);
@@ -652,8 +659,11 @@ int spider_db_mysql_result::fetch_table_status( #endif
if (mysql_row[12])
{
+#ifdef SPIDER_HAS_TIME_STATUS
+ my_time_status_init(&time_status);
+#endif
str_to_datetime(mysql_row[12], strlen(mysql_row[12]), &mysql_time, 0,
- ¬_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
update_time = (time_t) my_system_gmt_sec(&mysql_time,
¬_used_long, ¬_used_uint);
@@ -674,8 +684,11 @@ int spider_db_mysql_result::fetch_table_status( #endif
if (mysql_row[13])
{
+#ifdef SPIDER_HAS_TIME_STATUS
+ my_time_status_init(&time_status);
+#endif
str_to_datetime(mysql_row[13], strlen(mysql_row[13]), &mysql_time, 0,
- ¬_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
check_time = (time_t) my_system_gmt_sec(&mysql_time,
¬_used_long, ¬_used_uint);
@@ -739,8 +752,11 @@ int spider_db_mysql_result::fetch_table_status( ("spider auto_increment_value=%lld", auto_increment_value));
if (mysql_row[6])
{
+#ifdef SPIDER_HAS_TIME_STATUS
+ my_time_status_init(&time_status);
+#endif
str_to_datetime(mysql_row[6], strlen(mysql_row[6]), &mysql_time, 0,
- ¬_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
create_time = (time_t) my_system_gmt_sec(&mysql_time,
¬_used_long, ¬_used_uint);
@@ -761,8 +777,11 @@ int spider_db_mysql_result::fetch_table_status( #endif
if (mysql_row[7])
{
+#ifdef SPIDER_HAS_TIME_STATUS
+ my_time_status_init(&time_status);
+#endif
str_to_datetime(mysql_row[7], strlen(mysql_row[7]), &mysql_time, 0,
- ¬_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
update_time = (time_t) my_system_gmt_sec(&mysql_time,
¬_used_long, ¬_used_uint);
@@ -783,8 +802,11 @@ int spider_db_mysql_result::fetch_table_status( #endif
if (mysql_row[8])
{
+#ifdef SPIDER_HAS_TIME_STATUS
+ my_time_status_init(&time_status);
+#endif
str_to_datetime(mysql_row[8], strlen(mysql_row[8]), &mysql_time, 0,
- ¬_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
check_time = (time_t) my_system_gmt_sec(&mysql_time,
¬_used_long, ¬_used_uint);
@@ -4309,7 +4331,7 @@ int spider_mysql_share::append_key_select( const KEY *key_info = &table_share->key_info[idx];
DBUG_ENTER("spider_mysql_share::append_key_select");
for (key_part = key_info->key_part, part_num = 0;
- part_num < key_info->key_parts; key_part++, part_num++)
+ part_num < spider_user_defined_key_parts(key_info); key_part++, part_num++)
{
field = key_part->field;
field_length = column_name_str[field->field_index].length();
@@ -4636,7 +4658,8 @@ int spider_mysql_handler::append_key_column_types( SPIDER_RESULT_LIST *result_list = &spider->result_list;
KEY *key_info = result_list->key_info;
uint key_name_length, key_count;
- key_part_map full_key_part_map = make_prev_keypart_map(key_info->key_parts);
+ key_part_map full_key_part_map =
+ make_prev_keypart_map(spider_user_defined_key_parts(key_info));
key_part_map start_key_part_map;
KEY_PART_INFO *key_part;
Field *field;
@@ -4647,7 +4670,8 @@ int spider_mysql_handler::append_key_column_types( tmp_str.init_calc_mem(115);
start_key_part_map = start_key->keypart_map & full_key_part_map;
- DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map));
DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map));
@@ -4703,7 +4727,8 @@ int spider_mysql_handler::append_key_join_columns_for_bka( ) {
KEY *key_info = spider->result_list.key_info;
uint length, key_name_length, key_count;
- key_part_map full_key_part_map = make_prev_keypart_map(key_info->key_parts);
+ key_part_map full_key_part_map =
+ make_prev_keypart_map(spider_user_defined_key_parts(key_info));
key_part_map start_key_part_map;
KEY_PART_INFO *key_part;
Field *field;
@@ -4712,7 +4737,8 @@ int spider_mysql_handler::append_key_join_columns_for_bka( DBUG_ENTER("spider_mysql_handler::append_key_join_columns_for_bka");
DBUG_PRINT("info",("spider this=%p", this));
start_key_part_map = start_key->keypart_map & full_key_part_map;
- DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map));
DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map));
@@ -5806,7 +5832,7 @@ int spider_mysql_handler::append_key_select_with_alias( int field_length;
DBUG_ENTER("spider_mysql_handler::append_key_select_with_alias");
for (key_part = key_info->key_part, part_num = 0;
- part_num < key_info->key_parts; key_part++, part_num++)
+ part_num < spider_user_defined_key_parts(key_info); key_part++, part_num++)
{
field = key_part->field;
field_length = mysql_share->column_name_str[field->field_index].length();
@@ -6084,13 +6110,15 @@ int spider_mysql_handler::append_key_column_values( KEY *key_info = result_list->key_info;
uint length;
uint store_length;
- key_part_map full_key_part_map = make_prev_keypart_map(key_info->key_parts);
+ key_part_map full_key_part_map =
+ make_prev_keypart_map(spider_user_defined_key_parts(key_info));
key_part_map start_key_part_map;
KEY_PART_INFO *key_part;
Field *field;
DBUG_ENTER("spider_mysql_handler::append_key_column_values");
start_key_part_map = start_key->keypart_map & full_key_part_map;
- DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map));
DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map));
@@ -6633,13 +6661,13 @@ int spider_mysql_handler::append_match_against( ft_init_key = ft_info->key;
key_info = &table->key_info[ft_info->inx];
- DBUG_PRINT("info", ("spider key_info->key_parts=%u",
- key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
for (
key_part = key_info->key_part,
key_count = 0;
- key_count < (int) key_info->key_parts;
+ key_count < (int) spider_user_defined_key_parts(key_info);
key_part++,
key_count++
) {
@@ -6849,7 +6877,7 @@ int spider_mysql_handler::append_key_order_for_merge_with_alias( for (
key_part = key_info->key_part,
length = 1;
- length <= (int) key_info->key_parts;
+ length <= (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
@@ -7051,7 +7079,8 @@ int spider_mysql_handler::append_key_order_with_alias( for (
key_part = key_info->key_part + result_list->key_order,
length = 1;
- length + result_list->key_order < (int) key_info->key_parts &&
+ length + result_list->key_order <
+ (int) spider_user_defined_key_parts(key_info) &&
length < result_list->max_order;
key_part++,
length++
@@ -7085,7 +7114,8 @@ int spider_mysql_handler::append_key_order_with_alias( }
}
if (
- length + result_list->key_order <= (int) key_info->key_parts &&
+ length + result_list->key_order <=
+ (int) spider_user_defined_key_parts(key_info) &&
length <= result_list->max_order
) {
field = key_part->field;
@@ -7117,7 +7147,8 @@ int spider_mysql_handler::append_key_order_with_alias( for (
key_part = key_info->key_part + result_list->key_order,
length = 1;
- length + result_list->key_order < (int) key_info->key_parts &&
+ length + result_list->key_order <
+ (int) spider_user_defined_key_parts(key_info) &&
length < result_list->max_order;
key_part++,
length++
@@ -7151,7 +7182,8 @@ int spider_mysql_handler::append_key_order_with_alias( }
}
if (
- length + result_list->key_order <= (int) key_info->key_parts &&
+ length + result_list->key_order <=
+ (int) spider_user_defined_key_parts(key_info) &&
length <= result_list->max_order
) {
field = key_part->field;
@@ -10576,7 +10608,8 @@ int spider_mysql_copy_table::append_copy_where( sql.q_append(SPIDER_SQL_OPEN_PAREN_STR, SPIDER_SQL_OPEN_PAREN_LEN);
Field *field;
KEY_PART_INFO *key_part = key_info->key_part;
- for (roop_count = key_info->key_parts - 1; roop_count >= 0; roop_count--)
+ for (roop_count = spider_user_defined_key_parts(key_info) - 1;
+ roop_count >= 0; roop_count--)
{
for (roop_count2 = 0; roop_count2 < roop_count; roop_count2++)
{
@@ -10621,7 +10654,7 @@ int spider_mysql_copy_table::append_key_order_str( Field *field;
DBUG_ENTER("spider_mysql_copy_table::append_key_order_str");
DBUG_PRINT("info",("spider this=%p", this));
- if ((int) key_info->key_parts > start_pos)
+ if ((int) spider_user_defined_key_parts(key_info) > start_pos)
{
if (sql.reserve(SPIDER_SQL_ORDER_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
@@ -10631,7 +10664,7 @@ int spider_mysql_copy_table::append_key_order_str( for (
key_part = key_info->key_part + start_pos,
length = 0;
- length + start_pos < (int) key_info->key_parts;
+ length + start_pos < (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
@@ -10661,7 +10694,7 @@ int spider_mysql_copy_table::append_key_order_str( for (
key_part = key_info->key_part + start_pos,
length = 0;
- length + start_pos < (int) key_info->key_parts;
+ length + start_pos < (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc index e9915898b1a..4f91a992150 100644 --- a/storage/spider/spd_db_oracle.cc +++ b/storage/spider/spd_db_oracle.cc @@ -175,7 +175,7 @@ int spider_db_oracle_get_error( } else {
tmp_str.set(buf, strlen(buf), system_charset_info);
}
- push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
+ push_warning_printf(current_thd, SPIDER_WARN_LEVEL_WARN,
ER_SPIDER_ORACLE_NUM, ER_SPIDER_ORACLE_STR, res, error_code,
tmp_str.c_ptr_safe());
break;
@@ -1260,11 +1260,7 @@ void spider_db_oracle::bg_connect() DBUG_VOID_RETURN;
error:
-#if MYSQL_VERSION_ID < 50500
- strmov(stored_error_msg, current_thd->main_da.message());
-#else
- strmov(stored_error_msg, current_thd->stmt_da->message());
-#endif
+ strmov(stored_error_msg, spider_stmt_da_message(current_thd));
current_thd->clear_error();
DBUG_VOID_RETURN;
}
@@ -4580,7 +4576,7 @@ int spider_oracle_share::append_key_select( const KEY *key_info = &table_share->key_info[idx];
DBUG_ENTER("spider_oracle_share::append_key_select");
for (key_part = key_info->key_part, part_num = 0;
- part_num < key_info->key_parts; key_part++, part_num++)
+ part_num < spider_user_defined_key_parts(key_info); key_part++, part_num++)
{
field = key_part->field;
field_length = column_name_str[field->field_index].length();
@@ -4748,7 +4744,8 @@ int spider_oracle_handler::append_key_column_types( SPIDER_RESULT_LIST *result_list = &spider->result_list;
KEY *key_info = result_list->key_info;
uint key_name_length, key_count;
- key_part_map full_key_part_map = make_prev_keypart_map(key_info->key_parts);
+ key_part_map full_key_part_map =
+ make_prev_keypart_map(spider_user_defined_key_parts(key_info));
key_part_map start_key_part_map;
KEY_PART_INFO *key_part;
Field *field;
@@ -4759,7 +4756,8 @@ int spider_oracle_handler::append_key_column_types( tmp_str.init_calc_mem(227);
start_key_part_map = start_key->keypart_map & full_key_part_map;
- DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map));
DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map));
@@ -4806,7 +4804,8 @@ int spider_oracle_handler::append_key_join_columns_for_bka( ) {
KEY *key_info = spider->result_list.key_info;
uint length, key_name_length, key_count;
- key_part_map full_key_part_map = make_prev_keypart_map(key_info->key_parts);
+ key_part_map full_key_part_map =
+ make_prev_keypart_map(spider_user_defined_key_parts(key_info));
key_part_map start_key_part_map;
KEY_PART_INFO *key_part;
Field *field;
@@ -4815,7 +4814,8 @@ int spider_oracle_handler::append_key_join_columns_for_bka( DBUG_ENTER("spider_oracle_handler::append_key_join_columns_for_bka");
DBUG_PRINT("info",("spider this=%p", this));
start_key_part_map = start_key->keypart_map & full_key_part_map;
- DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map));
DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map));
@@ -5846,7 +5846,7 @@ int spider_oracle_handler::append_key_select_with_alias( int field_length;
DBUG_ENTER("spider_oracle_handler::append_key_select_with_alias");
for (key_part = key_info->key_part, part_num = 0;
- part_num < key_info->key_parts; key_part++, part_num++)
+ part_num < spider_user_defined_key_parts(key_info); key_part++, part_num++)
{
field = key_part->field;
field_length = oracle_share->column_name_str[field->field_index].length();
@@ -6124,13 +6124,15 @@ int spider_oracle_handler::append_key_column_values( KEY *key_info = result_list->key_info;
uint length;
uint store_length;
- key_part_map full_key_part_map = make_prev_keypart_map(key_info->key_parts);
+ key_part_map full_key_part_map =
+ make_prev_keypart_map(spider_user_defined_key_parts(key_info));
key_part_map start_key_part_map;
KEY_PART_INFO *key_part;
Field *field;
DBUG_ENTER("spider_oracle_handler::append_key_column_values");
start_key_part_map = start_key->keypart_map & full_key_part_map;
- DBUG_PRINT("info", ("spider key_info->key_parts=%u", key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
DBUG_PRINT("info", ("spider full_key_part_map=%lu", full_key_part_map));
DBUG_PRINT("info", ("spider start_key_part_map=%lu", start_key_part_map));
@@ -6686,13 +6688,13 @@ int spider_oracle_handler::append_match_against( ft_init_key = ft_info->key;
key_info = &table->key_info[ft_info->inx];
- DBUG_PRINT("info", ("spider key_info->key_parts=%u",
- key_info->key_parts));
+ DBUG_PRINT("info", ("spider spider_user_defined_key_parts=%u",
+ spider_user_defined_key_parts(key_info)));
for (
key_part = key_info->key_part,
key_count = 0;
- key_count < (int) key_info->key_parts;
+ key_count < (int) spider_user_defined_key_parts(key_info);
key_part++,
key_count++
) {
@@ -6935,7 +6937,7 @@ int spider_oracle_handler::append_key_order_for_merge_with_alias( for (
key_part = key_info->key_part,
length = 1;
- length <= (int) key_info->key_parts;
+ length <= (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
@@ -7015,7 +7017,7 @@ int spider_oracle_handler::append_key_order_for_merge_with_alias( for (
key_part = key_info->key_part,
length = 1;
- length <= (int) key_info->key_parts;
+ length <= (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
@@ -7374,7 +7376,8 @@ int spider_oracle_handler::append_key_order_with_alias( for (
key_part = key_info->key_part + result_list->key_order,
length = 1;
- length + result_list->key_order <= (int) key_info->key_parts &&
+ length + result_list->key_order <=
+ (int) spider_user_defined_key_parts(key_info) &&
length <= result_list->max_order;
key_part++,
length++
@@ -7405,7 +7408,8 @@ int spider_oracle_handler::append_key_order_with_alias( for (
key_part = key_info->key_part + result_list->key_order,
length = 1;
- length + result_list->key_order <= (int) key_info->key_parts &&
+ length + result_list->key_order <=
+ (int) spider_user_defined_key_parts(key_info) &&
length <= result_list->max_order;
key_part++,
length++
@@ -7502,7 +7506,8 @@ int spider_oracle_handler::append_key_order_with_alias( for (
key_part = key_info->key_part + result_list->key_order,
length = 1;
- length + result_list->key_order < (int) key_info->key_parts &&
+ length + result_list->key_order <
+ (int) spider_user_defined_key_parts(key_info) &&
length < result_list->max_order;
key_part++,
length++
@@ -7536,7 +7541,8 @@ int spider_oracle_handler::append_key_order_with_alias( }
}
if (
- length + result_list->key_order <= (int) key_info->key_parts &&
+ length + result_list->key_order <=
+ (int) spider_user_defined_key_parts(key_info) &&
length <= result_list->max_order
) {
field = key_part->field;
@@ -7568,7 +7574,8 @@ int spider_oracle_handler::append_key_order_with_alias( for (
key_part = key_info->key_part + result_list->key_order,
length = 1;
- length + result_list->key_order < (int) key_info->key_parts &&
+ length + result_list->key_order <
+ (int) spider_user_defined_key_parts(key_info) &&
length < result_list->max_order;
key_part++,
length++
@@ -7602,7 +7609,8 @@ int spider_oracle_handler::append_key_order_with_alias( }
}
if (
- length + result_list->key_order <= (int) key_info->key_parts &&
+ length + result_list->key_order <=
+ (int) spider_user_defined_key_parts(key_info) &&
length <= result_list->max_order
) {
field = key_part->field;
@@ -11193,7 +11201,8 @@ int spider_oracle_copy_table::append_copy_where( sql.q_append(SPIDER_SQL_OPEN_PAREN_STR, SPIDER_SQL_OPEN_PAREN_LEN);
Field *field;
KEY_PART_INFO *key_part = key_info->key_part;
- for (roop_count = key_info->key_parts - 1; roop_count >= 0; roop_count--)
+ for (roop_count = spider_user_defined_key_parts(key_info) - 1;
+ roop_count >= 0; roop_count--)
{
for (roop_count2 = 0; roop_count2 < roop_count; roop_count2++)
{
@@ -11255,14 +11264,14 @@ int spider_oracle_copy_table::append_key_order_str( sql_part.q_append(sql.ptr(), table_name_pos - SPIDER_SQL_FROM_LEN);
sql_part.q_append(SPIDER_SQL_ROW_NUMBER_HEAD_STR,
SPIDER_SQL_ROW_NUMBER_HEAD_LEN);
- if ((int) key_info->key_parts > start_pos)
+ if ((int) spider_user_defined_key_parts(key_info) > start_pos)
{
if (desc_flg == TRUE)
{
for (
key_part = key_info->key_part + start_pos,
length = 0;
- length + start_pos < (int) key_info->key_parts;
+ length + start_pos < (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
@@ -11296,7 +11305,7 @@ int spider_oracle_copy_table::append_key_order_str( for (
key_part = key_info->key_part + start_pos,
length = 0;
- length + start_pos < (int) key_info->key_parts;
+ length + start_pos < (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
@@ -11350,7 +11359,7 @@ int spider_oracle_copy_table::append_key_order_str( sql_part.q_append(SPIDER_SQL_SELECT_WRAPPER_TAIL_STR,
SPIDER_SQL_SELECT_WRAPPER_TAIL_LEN);
- if ((int) key_info->key_parts > start_pos)
+ if ((int) spider_user_defined_key_parts(key_info) > start_pos)
{
if (sql.reserve(SPIDER_SQL_ORDER_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
@@ -11360,7 +11369,7 @@ int spider_oracle_copy_table::append_key_order_str( for (
key_part = key_info->key_part + start_pos,
length = 0;
- length + start_pos < (int) key_info->key_parts;
+ length + start_pos < (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
@@ -11393,7 +11402,7 @@ int spider_oracle_copy_table::append_key_order_str( for (
key_part = key_info->key_part + start_pos,
length = 0;
- length + start_pos < (int) key_info->key_parts;
+ length + start_pos < (int) spider_user_defined_key_parts(key_info);
key_part++,
length++
) {
diff --git a/storage/spider/spd_include.h b/storage/spider/spd_include.h index 20125c50a7e..9af010cf7cf 100644 --- a/storage/spider/spd_include.h +++ b/storage/spider/spd_include.h @@ -59,6 +59,38 @@ #define my_sprintf(A,B) sprintf B #endif +#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100004 +#define spider_stmt_da_message(A) (A)->get_stmt_da()->message() +#define spider_stmt_da_sql_errno(A) (A)->get_stmt_da()->sql_errno() +#define spider_user_defined_key_parts(A) (A)->user_defined_key_parts +#define SPIDER_CAN_BG_UPDATE (1LL << 39) +#define SPIDER_ALTER_ADD_PARTITION Alter_info::ALTER_ADD_PARTITION +#define SPIDER_ALTER_DROP_PARTITION Alter_info::ALTER_DROP_PARTITION +#define SPIDER_ALTER_COALESCE_PARTITION Alter_info::ALTER_COALESCE_PARTITION +#define SPIDER_ALTER_REORGANIZE_PARTITION Alter_info::ALTER_REORGANIZE_PARTITION +#define SPIDER_ALTER_TABLE_REORG Alter_info::ALTER_TABLE_REORG +#define SPIDER_ALTER_REBUILD_PARTITION Alter_info::ALTER_REBUILD_PARTITION +#define SPIDER_WARN_LEVEL_WARN Sql_condition::WARN_LEVEL_WARN +#define SPIDER_WARN_LEVEL_NOTE Sql_condition::WARN_LEVEL_NOTE +#else +#if MYSQL_VERSION_ID < 50500 +#define spider_stmt_da_message(A) (A)->main_da.message() +#define spider_stmt_da_sql_errno(A) (A)->main_da.sql_errno() +#else +#define spider_stmt_da_message(A) (A)->stmt_da->message() +#define spider_stmt_da_sql_errno(A) (A)->stmt_da->sql_errno() +#endif +#define spider_user_defined_key_parts(A) (A)->key_parts +#define SPIDER_ALTER_ADD_PARTITION ALTER_ADD_PARTITION +#define SPIDER_ALTER_DROP_PARTITION ALTER_DROP_PARTITION +#define SPIDER_ALTER_COALESCE_PARTITION ALTER_COALESCE_PARTITION +#define SPIDER_ALTER_REORGANIZE_PARTITION ALTER_REORGANIZE_PARTITION +#define SPIDER_ALTER_TABLE_REORG ALTER_TABLE_REORG +#define SPIDER_ALTER_REBUILD_PARTITION ALTER_REBUILD_PARTITION +#define SPIDER_WARN_LEVEL_WARN MYSQL_ERROR::WARN_LEVEL_WARN +#define SPIDER_WARN_LEVEL_NOTE MYSQL_ERROR::WARN_LEVEL_NOTE +#endif + #if MYSQL_VERSION_ID >= 50500 #define SPIDER_HAS_HASH_VALUE_TYPE #endif diff --git a/storage/spider/spd_ping_table.cc b/storage/spider/spd_ping_table.cc index 34bd3fb3575..1ab5e51293b 100644 --- a/storage/spider/spd_ping_table.cc +++ b/storage/spider/spd_ping_table.cc @@ -1156,11 +1156,7 @@ my_bool spider_ping_table_init_body( if (!(trx = spider_get_trx(thd, TRUE, &error_num)))
{
my_error(error_num, MYF(0));
-#if MYSQL_VERSION_ID < 50500
- strcpy(message, thd->main_da.message());
-#else
- strcpy(message, thd->stmt_da->message());
-#endif
+ strcpy(message, spider_stmt_da_message(thd));
goto error;
}
diff --git a/storage/spider/spd_sys_table.cc b/storage/spider/spd_sys_table.cc index 74419461081..24fa5ff6faa 100644 --- a/storage/spider/spd_sys_table.cc +++ b/storage/spider/spd_sys_table.cc @@ -377,7 +377,7 @@ int spider_get_sys_table_by_idx( if ((error_num = spider_sys_index_init(table, idx, FALSE))) DBUG_RETURN(error_num); - if ((int) key_info->key_parts == col_count) + if ((int) spider_user_defined_key_parts(key_info) == col_count) { key_length = key_info->key_length; } else { diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index c984af58f12..de592505c3b 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -21,6 +21,7 @@ #else #include "sql_priv.h" #include "probes_mysql.h" +#include "my_getopt.h" #include "sql_class.h" #include "sql_partition.h" #include "sql_servers.h" @@ -4562,13 +4563,8 @@ SPIDER_SHARE *spider_get_share( spider_init_error_table->init_error = *error_num; if ((spider_init_error_table->init_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(spider_init_error_table->init_error_msg, - thd->main_da.message()); -#else strmov(spider_init_error_table->init_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); spider_init_error_table->init_error_time = (time_t) time((time_t*) 0); } @@ -4990,13 +4986,8 @@ SPIDER_SHARE *spider_get_share( spider_init_error_table->init_error = *error_num; if ((spider_init_error_table->init_error_with_message = thd->is_error())) -#if MYSQL_VERSION_ID < 50500 - strmov(spider_init_error_table->init_error_msg, - thd->main_da.message()); -#else strmov(spider_init_error_table->init_error_msg, - thd->stmt_da->message()); -#endif + spider_stmt_da_message(thd)); spider_init_error_table->init_error_time = (time_t) time((time_t*) 0); } @@ -6985,7 +6976,8 @@ bool spider_check_pk_update( key_info = &table_share->key_info[table_share->primary_key]; key_part = key_info->key_part; - for (roop_count = 0; roop_count < (int) key_info->key_parts; roop_count++) + for (roop_count = 0; + roop_count < (int) spider_user_defined_key_parts(key_info); roop_count++) { if (bitmap_is_set(table->write_set, key_part[roop_count].field->field_index)) @@ -7018,7 +7010,8 @@ bool spider_check_hs_pk_update( memset(spider->tmp_column_bitmap, 0, sizeof(uchar) * share->bitmap_size); key_info = &table->key_info[table_share->primary_key]; key_part = key_info->key_part; - for (roop_count = 0; roop_count < key_info->key_parts; roop_count++) + for (roop_count = 0; roop_count < spider_user_defined_key_parts(key_info); + roop_count++) { field_index = key_part[roop_count].field->field_index; if (bitmap_is_set(table->write_set, field_index)) @@ -7829,13 +7822,8 @@ int spider_discover_table_structure( { DBUG_RETURN(ER_SPIDER_UNKNOWN_NUM); } -#ifdef SPIDER_GENERATE_PARTITION_SYNTAX_HAS_CURRENT_COMMENT_START - if (!(part_syntax = generate_partition_syntax(part_info, &part_syntax_len, - FALSE, TRUE, info, NULL, NULL))) -#else if (!(part_syntax = generate_partition_syntax(part_info, &part_syntax_len, FALSE, TRUE, info, NULL))) -#endif { DBUG_RETURN(HA_ERR_OUT_OF_MEM); } |