summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKentoku SHIBA <kentokushiba@gmail.com>2013-08-24 18:37:49 +0900
committerKentoku SHIBA <kentokushiba@gmail.com>2013-08-24 18:37:49 +0900
commit38c9476513822e98794f7f414e4805afb01f714e (patch)
tree358d59574576d407abeb02290e2b1633a54978e3
parent48ed7f10e203b15c2961fa71d832359e0c226ce7 (diff)
downloadmariadb-git-38c9476513822e98794f7f414e4805afb01f714e.tar.gz
Change for mearging MariaDB 10.0.4.
-rw-r--r--storage/spider/ha_spider.cc44
-rw-r--r--storage/spider/spd_conn.cc50
-rw-r--r--storage/spider/spd_db_conn.cc31
-rw-r--r--storage/spider/spd_db_include.h5
-rw-r--r--storage/spider/spd_db_mysql.cc87
-rw-r--r--storage/spider/spd_db_oracle.cc73
-rw-r--r--storage/spider/spd_include.h32
-rw-r--r--storage/spider/spd_ping_table.cc6
-rw-r--r--storage/spider/spd_sys_table.cc2
-rw-r--r--storage/spider/spd_table.cc26
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,
- &not_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
create_time = (time_t) my_system_gmt_sec(&mysql_time,
&not_used_long, &not_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,
- &not_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
update_time = (time_t) my_system_gmt_sec(&mysql_time,
&not_used_long, &not_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,
- &not_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
check_time = (time_t) my_system_gmt_sec(&mysql_time,
&not_used_long, &not_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,
- &not_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
create_time = (time_t) my_system_gmt_sec(&mysql_time,
&not_used_long, &not_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,
- &not_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
update_time = (time_t) my_system_gmt_sec(&mysql_time,
&not_used_long, &not_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,
- &not_used_int);
+ &time_status);
#ifdef MARIADB_BASE_VERSION
check_time = (time_t) my_system_gmt_sec(&mysql_time,
&not_used_long, &not_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);
}