diff options
author | Kentoku <kentokushiba@gmail.com> | 2018-11-20 00:12:58 +0900 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2019-01-31 08:51:34 +0100 |
commit | 6caf9ec425a12ed54741cdf4c4a238c45cabd898 (patch) | |
tree | 26555b3c02ad22f3a719508cae99d40f2f0c4f57 /storage/spider/spd_db_conn.cc | |
parent | 36be0a5aef0376c526d68007da1c11ac440f0d8b (diff) | |
download | mariadb-git-6caf9ec425a12ed54741cdf4c4a238c45cabd898.tar.gz |
Update Spider to version 3.3.14. Add direct left outer join/right outer join/inner join feature
Diffstat (limited to 'storage/spider/spd_db_conn.cc')
-rw-r--r-- | storage/spider/spd_db_conn.cc | 413 |
1 files changed, 265 insertions, 148 deletions
diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index ac5701a8274..1e117b68728 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2008-2017 Kentoku Shiba +/* Copyright (C) 2008-2018 Kentoku Shiba This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -77,7 +77,7 @@ pthread_mutex_t spider_open_conn_mutex; const char spider_dig_upper[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /* UTC time zone for timestamp columns */ -extern Time_zone *UTC; +Time_zone *UTC = 0; int spider_db_connect( const SPIDER_SHARE *share, @@ -1387,12 +1387,34 @@ int spider_db_unlock_tables( int spider_db_append_name_with_quote_str( spider_string *str, - char *name, + const char *name, uint dbton_id ) { - int error_num, length = strlen(name); - char *name_end, head_code; DBUG_ENTER("spider_db_append_name_with_quote_str"); + DBUG_RETURN(spider_db_append_name_with_quote_str_internal( + str, name, strlen(name), dbton_id)); +} + +int spider_db_append_name_with_quote_str( + spider_string *str, + LEX_CSTRING &name, + uint dbton_id +) { + DBUG_ENTER("spider_db_append_name_with_quote_str"); + DBUG_RETURN(spider_db_append_name_with_quote_str_internal( + str, name.str, name.length, dbton_id)); +} + +int spider_db_append_name_with_quote_str_internal( + spider_string *str, + const char *name, + int length, + uint dbton_id +) { + int error_num; + const char *name_end; + char head_code; + DBUG_ENTER("spider_db_append_name_with_quote_str_internal"); for (name_end = name + length; name < name_end; name += length) { head_code = *name; @@ -1695,8 +1717,13 @@ int spider_db_append_key_where_internal( if (sql_kind == SPIDER_SQL_KIND_HANDLER) { +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name const char *key_name = key_info->name.str; - key_name_length = key_info->name.length; + key_name_length = key_info->name.length; +#else + const char *key_name = key_info->name; + key_name_length = strlen(key_name); +#endif if (str->reserve(SPIDER_SQL_READ_LEN + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + key_name_length)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); @@ -2876,7 +2903,7 @@ int spider_db_fetch_row( THD *thd = field->table->in_use; Time_zone *saved_time_zone = thd->variables.time_zone; DBUG_ENTER("spider_db_fetch_row"); - DBUG_PRINT("info", ("spider field_name %s", field->field_name.str)); + DBUG_PRINT("info", ("spider field_name %s", SPIDER_field_name_str(field))); DBUG_PRINT("info", ("spider fieldcharset %s", field->charset()->csname)); thd->variables.time_zone = UTC; @@ -3013,7 +3040,7 @@ int spider_db_fetch_table( dbug_tmp_use_all_columns(table, table->write_set); #endif DBUG_PRINT("info", ("spider bitmap is set %s", - (*field)->field_name.str)); + SPIDER_field_name_str(*field))); if ((error_num = spider_db_fetch_row(share, *field, row, ptr_diff))) DBUG_RETURN(error_num); @@ -3184,7 +3211,8 @@ int spider_db_fetch_key( my_bitmap_map *tmp_map = dbug_tmp_use_all_columns(table, table->write_set); #endif - DBUG_PRINT("info", ("spider bitmap is set %s", field->field_name.str)); + DBUG_PRINT("info", ("spider bitmap is set %s", + SPIDER_field_name_str(field))); if ((error_num = spider_db_fetch_row(share, field, row, ptr_diff))) DBUG_RETURN(error_num); @@ -3303,7 +3331,7 @@ int spider_db_fetch_minimum_columns( dbug_tmp_use_all_columns(table, table->write_set); #endif DBUG_PRINT("info", ("spider bitmap is set %s", - (*field)->field_name.str)); + SPIDER_field_name_str(*field))); if ((error_num = spider_db_fetch_row(share, *field, row, ptr_diff))) DBUG_RETURN(error_num); #ifndef DBUG_OFF @@ -4011,9 +4039,18 @@ int spider_db_store_result( DBUG_PRINT("info",("spider store result to temporary table")); DBUG_ASSERT(!current->result_tmp_tbl); +#ifdef SPIDER_use_LEX_CSTRING_for_Field_blob_constructor + LEX_CSTRING field_name1 = {STRING_WITH_LEN("a")}; + LEX_CSTRING field_name2 = {STRING_WITH_LEN("b")}; + LEX_CSTRING field_name3 = {STRING_WITH_LEN("c")}; + if (!(current->result_tmp_tbl = spider_mk_sys_tmp_table_for_result( + thd, table, ¤t->result_tmp_tbl_prm, &field_name1, &field_name2, + &field_name3, &my_charset_bin))) +#else if (!(current->result_tmp_tbl = spider_mk_sys_tmp_table_for_result( thd, table, ¤t->result_tmp_tbl_prm, "a", "b", "c", &my_charset_bin))) +#endif { DBUG_RETURN(HA_ERR_OUT_OF_MEM); } @@ -5324,7 +5361,7 @@ int spider_db_seek_tmp_table( dbug_tmp_use_all_columns(table, table->write_set); #endif DBUG_PRINT("info", ("spider bitmap is set %s", - (*field)->field_name.str)); + SPIDER_field_name_str(*field))); if ((error_num = spider_db_fetch_row(spider->share, *field, row, ptr_diff))) DBUG_RETURN(error_num); @@ -5411,7 +5448,8 @@ int spider_db_seek_tmp_key( my_bitmap_map *tmp_map = dbug_tmp_use_all_columns(table, table->write_set); #endif - DBUG_PRINT("info", ("spider bitmap is set %s", field->field_name.str)); + DBUG_PRINT("info", ("spider bitmap is set %s", + SPIDER_field_name_str(field))); if ((error_num = spider_db_fetch_row(spider->share, field, row, ptr_diff))) DBUG_RETURN(error_num); @@ -5502,7 +5540,7 @@ int spider_db_seek_tmp_minimum_columns( dbug_tmp_use_all_columns(table, table->write_set); #endif DBUG_PRINT("info", ("spider bitmap is set %s", - (*field)->field_name.str)); + SPIDER_field_name_str(*field))); if ((error_num = spider_db_fetch_row(spider->share, *field, row, ptr_diff))) DBUG_RETURN(error_num); @@ -5514,7 +5552,7 @@ int spider_db_seek_tmp_minimum_columns( else if (bitmap_is_set(table->read_set, (*field)->field_index)) { DBUG_PRINT("info", ("spider bitmap is cleared %s", - (*field)->field_name.str)); + SPIDER_field_name_str(*field))); bitmap_clear_bit(table->read_set, (*field)->field_index); } } @@ -8478,11 +8516,14 @@ int spider_db_flush_logs( contains only one field; NULL otherwise. */ -Field *spider_db_find_field_in_item_list(Item **item_list, uint item_count, - uint start_item, spider_string *str, - const char *func_name, - int func_name_length) -{ +Field *spider_db_find_field_in_item_list( + Item **item_list, + uint item_count, + uint start_item, + spider_string *str, + const char *func_name, + int func_name_length +) { uint item_num; Item *item; Field *field = NULL; @@ -8530,11 +8571,17 @@ Field *spider_db_find_field_in_item_list(Item **item_list, uint item_count, @return Error code. */ -int spider_db_print_item_type(Item *item, Field *field, ha_spider *spider, - spider_string *str, const char *alias, - uint alias_length, uint dbton_id, - bool use_fields, spider_fields *fields) -{ +int spider_db_print_item_type( + Item *item, + Field *field, + ha_spider *spider, + spider_string *str, + const char *alias, + uint alias_length, + uint dbton_id, + bool use_fields, + spider_fields *fields +) { DBUG_ENTER("spider_db_print_item_type"); DBUG_PRINT("info",("spider COND type=%d", item->type())); @@ -8560,26 +8607,40 @@ int spider_db_print_item_type(Item *item, Field *field, ha_spider *spider, case Item::ROW_ITEM: DBUG_RETURN(spider_db_open_item_row((Item_row *) item, spider, str, alias, alias_length, dbton_id, use_fields, fields)); +#ifdef SPIDER_USE_CONST_ITEM_FOR_STRING_INT_REAL_DECIMAL_DATE_ITEM + case Item::CONST_ITEM: + { + switch (item->cmp_type()) { + case TIME_RESULT: + case STRING_RESULT: + DBUG_RETURN(spider_db_open_item_string(item, field, spider, str, + alias, alias_length, dbton_id, use_fields, fields)); + case INT_RESULT: + case REAL_RESULT: + case DECIMAL_RESULT: + DBUG_RETURN(spider_db_open_item_int(item, field, spider, str, + alias, alias_length, dbton_id, use_fields, fields)); + default: + DBUG_ASSERT(FALSE); + DBUG_RETURN(spider_db_print_item_type_default(item, spider, str)); + } + } +#else case Item::STRING_ITEM: DBUG_RETURN(spider_db_open_item_string(item, field, spider, str, - alias, alias_length, dbton_id, - use_fields, fields)); + alias, alias_length, dbton_id, use_fields, fields)); case Item::INT_ITEM: case Item::REAL_ITEM: case Item::DECIMAL_ITEM: DBUG_RETURN(spider_db_open_item_int(item, field, spider, str, - alias, alias_length, dbton_id, - use_fields, fields)); + alias, alias_length, dbton_id, use_fields, fields)); +#endif case Item::CACHE_ITEM: - DBUG_RETURN(spider_db_open_item_cache((Item_cache *) item, field, - spider, str, alias, alias_length, - dbton_id, use_fields, fields)); + DBUG_RETURN(spider_db_open_item_cache((Item_cache *) item, field, spider, + str, alias, alias_length, dbton_id, use_fields, fields)); case Item::INSERT_VALUE_ITEM: DBUG_RETURN(spider_db_open_item_insert_value((Item_insert_value *) item, - field, spider, str, - alias, alias_length, - dbton_id, - use_fields, fields)); + field, spider, str, alias, alias_length, dbton_id, use_fields, fields)); case Item::SUBSELECT_ITEM: case Item::TRIGGER_FIELD_ITEM: #ifdef SPIDER_HAS_EXPR_CACHE_ITEM @@ -8587,28 +8648,37 @@ int spider_db_print_item_type(Item *item, Field *field, ha_spider *spider, #endif DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); default: - THD *thd = spider->trx->thd; - SPIDER_SHARE *share = spider->share; - if (spider_param_skip_default_condition(thd, - share->skip_default_condition)) - DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); - if (str) - { - if (spider->share->access_charset->cset == system_charset_info->cset) - { + DBUG_RETURN(spider_db_print_item_type_default(item, spider, str)); + } + + DBUG_RETURN(0); +} + +int spider_db_print_item_type_default( + Item *item, + ha_spider *spider, + spider_string *str +) { + DBUG_ENTER("spider_db_print_item_type_default"); + THD *thd = spider->trx->thd; + SPIDER_SHARE *share = spider->share; + if (spider_param_skip_default_condition(thd, + share->skip_default_condition)) + DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); + if (str) + { + if (spider->share->access_charset->cset == system_charset_info->cset) + { #if MYSQL_VERSION_ID < 50500 - item->print(str->get_str(), QT_IS); + item->print(str->get_str(), QT_IS); #else - item->print(str->get_str(), QT_TO_SYSTEM_CHARSET); + item->print(str->get_str(), QT_TO_SYSTEM_CHARSET); #endif - } else { - item->print(str->get_str(), QT_ORDINARY); - } - str->mem_calc(); - } - break; + } else { + item->print(str->get_str(), QT_ORDINARY); + } + str->mem_calc(); } - DBUG_RETURN(0); } @@ -8641,8 +8711,7 @@ restart_first: if (str) restart_pos = str->length(); if ((error_num = spider_db_print_item_type(item, NULL, spider, str, - alias, alias_length, dbton_id, - use_fields, fields))) + alias, alias_length, dbton_id, use_fields, fields))) { if ( str && @@ -8676,8 +8745,7 @@ restart_first: } if ((error_num = spider_db_print_item_type(item, NULL, spider, str, - alias, alias_length, dbton_id, - use_fields, fields))) + alias, alias_length, dbton_id, use_fields, fields))) { if ( str && @@ -8786,7 +8854,15 @@ int spider_db_open_item_ident( } if (str) { - field_name_length = item_ident->field_name.length; +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name + if (item_ident->field_name.str) + field_name_length = item_ident->field_name.length; +#else + if (item_ident->field_name) + field_name_length = strlen(item_ident->field_name); +#endif + else + field_name_length = 0; if (share->access_charset->cset == system_charset_info->cset) { if (str->reserve(alias_length + @@ -8795,8 +8871,13 @@ int spider_db_open_item_ident( DBUG_RETURN(HA_ERR_OUT_OF_MEM); } str->q_append(alias, alias_length); +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name if ((error_num = spider_dbton[dbton_id].db_util-> append_name(str, item_ident->field_name.str, field_name_length))) +#else + if ((error_num = spider_dbton[dbton_id].db_util-> + append_name(str, item_ident->field_name, field_name_length))) +#endif { DBUG_RETURN(error_num); } @@ -8804,9 +8885,15 @@ int spider_db_open_item_ident( if (str->reserve(alias_length)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(alias, alias_length); +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name if ((error_num = spider_dbton[dbton_id].db_util-> append_name_with_charset(str, item_ident->field_name.str, field_name_length, system_charset_info))) +#else + if ((error_num = spider_dbton[dbton_id].db_util-> + append_name_with_charset(str, item_ident->field_name, + field_name_length, system_charset_info))) +#endif { DBUG_RETURN(error_num); } @@ -8891,31 +8978,50 @@ int spider_db_open_item_ref( DBUG_ENTER("spider_db_open_item_ref"); if (item_ref->ref) { +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name if ( (*(item_ref->ref))->type() != Item::CACHE_ITEM && item_ref->ref_type() != Item_ref::VIEW_REF && !item_ref->table_name && item_ref->name.str && item_ref->alias_name_used - ) { + ) +#else + if ( + (*(item_ref->ref))->type() != Item::CACHE_ITEM && + item_ref->ref_type() != Item_ref::VIEW_REF && + !item_ref->table_name && + item_ref->name && + item_ref->alias_name_used + ) +#endif + { if (str) { +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name uint length = item_ref->name.length; +#else + uint length = strlen(item_ref->name); +#endif if (str->reserve(length + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2)) { DBUG_RETURN(HA_ERR_OUT_OF_MEM); } +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name if ((error_num = spider_dbton[dbton_id].db_util-> append_name(str, item_ref->name.str, length))) +#else + if ((error_num = spider_dbton[dbton_id].db_util-> + append_name(str, item_ref->name, length))) +#endif { DBUG_RETURN(error_num); } } DBUG_RETURN(0); } - DBUG_RETURN(spider_db_print_item_type(*(item_ref->ref), NULL, spider, - str, alias, alias_length, dbton_id, - use_fields, fields)); + DBUG_RETURN(spider_db_print_item_type(*(item_ref->ref), NULL, spider, str, + alias, alias_length, dbton_id, use_fields, fields)); } DBUG_RETURN(spider_db_open_item_ident((Item_ident *) item_ref, spider, str, alias, alias_length, dbton_id, use_fields, fields)); @@ -8945,8 +9051,7 @@ int spider_db_open_item_row( { item = item_row->element_index(roop_count); if ((error_num = spider_db_print_item_type(item, NULL, spider, str, - alias, alias_length, dbton_id, - use_fields, fields))) + alias, alias_length, dbton_id, use_fields, fields))) DBUG_RETURN(error_num); if (str) { @@ -8957,8 +9062,7 @@ int spider_db_open_item_row( } item = item_row->element_index(roop_count); if ((error_num = spider_db_print_item_type(item, NULL, spider, str, - alias, alias_length, dbton_id, - use_fields, fields))) + alias, alias_length, dbton_id, use_fields, fields))) DBUG_RETURN(error_num); if (str) { @@ -8987,12 +9091,17 @@ int spider_db_open_item_row( @return Error code. */ -int spider_db_open_item_string(Item *item, Field *field, ha_spider *spider, - spider_string *str, - const char *alias, uint alias_length, - uint dbton_id, - bool use_fields, spider_fields *fields) -{ +int spider_db_open_item_string( + Item *item, + Field *field, + ha_spider *spider, + spider_string *str, + const char *alias, + uint alias_length, + uint dbton_id, + bool use_fields, + spider_fields *fields +) { int error_num = 0; DBUG_ENTER("spider_db_open_item_string"); @@ -9002,10 +9111,10 @@ int spider_db_open_item_string(Item *item, Field *field, ha_spider *spider, TABLE *table; my_bitmap_map *saved_map; Time_zone *saved_time_zone; + String str_value; char tmp_buf[MAX_FIELD_WIDTH]; spider_string tmp_str(tmp_buf, MAX_FIELD_WIDTH, str->charset()); String *tmp_str2; - String str_value; tmp_str.init_calc_mem(126); if (!(tmp_str2 = item->val_str(tmp_str.get_str()))) @@ -9013,16 +9122,17 @@ int spider_db_open_item_string(Item *item, Field *field, ha_spider *spider, if (str->reserve(SPIDER_SQL_NULL_LEN)) { error_num = HA_ERR_OUT_OF_MEM; - goto error; + goto end; } str->q_append(SPIDER_SQL_NULL_STR, SPIDER_SQL_NULL_LEN); - } - else - { - if (field && field->type() == FIELD_TYPE_TIMESTAMP) - { + } else { + if ( + field && + field->type() == FIELD_TYPE_TIMESTAMP && + field->table->in_use->variables.time_zone != UTC + ) { /* - Store the string value in the field. This is necessary + Store the string value in the field. This is necessary when the statement contains more than one value for the same field. */ @@ -9039,15 +9149,14 @@ int spider_db_open_item_string(Item *item, Field *field, ha_spider *spider, if (!tmp_str2) { error_num = HA_ERR_OUT_OF_MEM; - goto error; + goto end; } } - if (str->reserve(SPIDER_SQL_VALUE_QUOTE_LEN * 2 + - tmp_str2->length() * 2)) + tmp_str2->length() * 2)) { error_num = HA_ERR_OUT_OF_MEM; - goto error; + goto end; } if (!thd) tmp_str.mem_calc(); @@ -9056,12 +9165,12 @@ int spider_db_open_item_string(Item *item, Field *field, ha_spider *spider, if (str->reserve(SPIDER_SQL_VALUE_QUOTE_LEN)) { error_num = HA_ERR_OUT_OF_MEM; - goto error; + goto end; } str->q_append(SPIDER_SQL_VALUE_QUOTE_STR, SPIDER_SQL_VALUE_QUOTE_LEN); } -error: +end: if (thd) { thd->variables.time_zone = saved_time_zone; @@ -9089,12 +9198,17 @@ error: @return Error code. */ -int spider_db_open_item_int(Item *item, Field *field, ha_spider *spider, - spider_string *str, - const char *alias, uint alias_length, - uint dbton_id, - bool use_fields, spider_fields *fields) -{ +int spider_db_open_item_int( + Item *item, + Field *field, + ha_spider *spider, + spider_string *str, + const char *alias, + uint alias_length, + uint dbton_id, + bool use_fields, + spider_fields *fields +) { int error_num = 0; DBUG_ENTER("spider_db_open_item_int"); @@ -9102,24 +9216,27 @@ int spider_db_open_item_int(Item *item, Field *field, ha_spider *spider, { THD *thd = NULL; TABLE *table; - bool print_quoted_string; my_bitmap_map *saved_map; Time_zone *saved_time_zone; + String str_value; + bool print_quoted_string; char tmp_buf[MAX_FIELD_WIDTH]; spider_string tmp_str(tmp_buf, MAX_FIELD_WIDTH, str->charset()); - String str_value; String *tmp_str2; tmp_str.init_calc_mem(127); if (!(tmp_str2 = item->val_str(tmp_str.get_str()))) { error_num = HA_ERR_OUT_OF_MEM; - goto error; + goto end; } tmp_str.mem_calc(); - if (field && field->type() == FIELD_TYPE_TIMESTAMP) - { + if ( + field && + field->type() == FIELD_TYPE_TIMESTAMP && + field->table->in_use->variables.time_zone != UTC + ) { /* Store the int value in the field. This is necessary when the statement contains more than one value for the @@ -9132,11 +9249,9 @@ int spider_db_open_item_int(Item *item, Field *field, ha_spider *spider, saved_time_zone = thd->variables.time_zone; thd->variables.time_zone = UTC; print_quoted_string = TRUE; - } - else - { + } else { #ifdef SPIDER_ITEM_HAS_CMP_TYPE - DBUG_PRINT("info", ("spider cmp_type=%u", item->cmp_type())); + DBUG_PRINT("info",("spider cmp_type=%u", item->cmp_type())); if (item->cmp_type() == TIME_RESULT) print_quoted_string = TRUE; else @@ -9154,23 +9269,24 @@ int spider_db_open_item_int(Item *item, Field *field, ha_spider *spider, if (!tmp_str2) { error_num = HA_ERR_OUT_OF_MEM; - goto error; + goto end; } } if (str->reserve(SPIDER_SQL_VALUE_QUOTE_LEN * 2 + tmp_str2->length())) - DBUG_RETURN(HA_ERR_OUT_OF_MEM); + { + error_num = HA_ERR_OUT_OF_MEM; + goto end; + } str->q_append(SPIDER_SQL_VALUE_QUOTE_STR, SPIDER_SQL_VALUE_QUOTE_LEN); str->append(*tmp_str2); str->q_append(SPIDER_SQL_VALUE_QUOTE_STR, SPIDER_SQL_VALUE_QUOTE_LEN); - } - else - { + } else { if (str->append(*tmp_str2)) error_num = HA_ERR_OUT_OF_MEM; } -error: +end: if (thd) { thd->variables.time_zone = saved_time_zone; @@ -9198,12 +9314,17 @@ error: @return Error code. */ -int spider_db_open_item_cache(Item_cache *item_cache, Field *field, - ha_spider *spider, spider_string *str, - const char *alias, uint alias_length, - uint dbton_id, - bool use_fields, spider_fields *fields) -{ +int spider_db_open_item_cache( + Item_cache *item_cache, + Field *field, + ha_spider *spider, + spider_string *str, + const char *alias, + uint alias_length, + uint dbton_id, + bool use_fields, + spider_fields *fields +) { DBUG_ENTER("spider_db_open_item_cache"); if (!item_cache->const_item()) DBUG_RETURN(ER_SPIDER_COND_SKIP_NUM); @@ -9213,8 +9334,7 @@ int spider_db_open_item_cache(Item_cache *item_cache, Field *field, { case STRING_RESULT: DBUG_RETURN(spider_db_open_item_string(item_cache, field, spider, str, - alias, alias_length, dbton_id, - use_fields, fields)); + alias, alias_length, dbton_id, use_fields, fields)); case ROW_RESULT: { int error_num; @@ -9229,11 +9349,9 @@ int spider_db_open_item_cache(Item_cache *item_cache, Field *field, for (roop_count = 0; roop_count < item_count; ++roop_count) { if ((error_num = spider_db_open_item_cache( - (Item_cache *) - item_cache_row->element_index(roop_count), - NULL, spider, str, alias, alias_length, - dbton_id, use_fields, fields))) - { + (Item_cache *) item_cache_row->element_index(roop_count), NULL, + spider, str, alias, alias_length, dbton_id, use_fields, fields + ))) { DBUG_RETURN(error_num); } if (str) @@ -9244,11 +9362,9 @@ int spider_db_open_item_cache(Item_cache *item_cache, Field *field, } } if ((error_num = spider_db_open_item_cache( - (Item_cache *) - item_cache_row->element_index(roop_count), - NULL, spider, str, alias, alias_length, - dbton_id, use_fields, fields))) - { + (Item_cache *) item_cache_row->element_index(roop_count), NULL, + spider, str, alias, alias_length, dbton_id, use_fields, fields + ))) { DBUG_RETURN(error_num); } if (str) @@ -9266,10 +9382,8 @@ int spider_db_open_item_cache(Item_cache *item_cache, Field *field, default: break; } - DBUG_RETURN(spider_db_open_item_int(item_cache, field, spider, str, - alias, alias_length, dbton_id, - use_fields, fields)); + alias, alias_length, dbton_id, use_fields, fields)); } /** @@ -9288,13 +9402,17 @@ int spider_db_open_item_cache(Item_cache *item_cache, Field *field, @return Error code. */ -int spider_db_open_item_insert_value(Item_insert_value *item_insert_value, - Field *field, ha_spider *spider, - spider_string *str, - const char *alias, uint alias_length, - uint dbton_id, - bool use_fields, spider_fields *fields) -{ +int spider_db_open_item_insert_value( + Item_insert_value *item_insert_value, + Field *field, + ha_spider *spider, + spider_string *str, + const char *alias, + uint alias_length, + uint dbton_id, + bool use_fields, + spider_fields *fields +) { int error_num; DBUG_ENTER("spider_db_open_item_insert_value"); @@ -9308,9 +9426,7 @@ int spider_db_open_item_insert_value(Item_insert_value *item_insert_value, str->q_append(SPIDER_SQL_OPEN_PAREN_STR, SPIDER_SQL_OPEN_PAREN_LEN); } if ((error_num = spider_db_print_item_type(item_insert_value->arg, field, - spider, str, alias, - alias_length, dbton_id, - use_fields, fields))) + spider, str, alias, alias_length, dbton_id, use_fields, fields))) DBUG_RETURN(error_num); if (str) { @@ -9375,10 +9491,9 @@ int spider_db_append_update_columns( while ((field = fi++)) { value = vi++; - if ((error_num = spider_db_print_item_type((Item *) field, NULL, spider, - str, alias, alias_length, - dbton_id, - use_fields, fields))) + if ((error_num = spider_db_print_item_type( + (Item *) field, NULL, spider, str, alias, alias_length, dbton_id, + use_fields, fields))) { if ( error_num == ER_SPIDER_COND_SKIP_NUM && @@ -9396,12 +9511,9 @@ int spider_db_append_update_columns( DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(SPIDER_SQL_EQUAL_STR, SPIDER_SQL_EQUAL_LEN); } - if ((error_num = spider_db_print_item_type((Item *) value, - ((Item_field *) field)->field, - spider, str, - alias, alias_length, - dbton_id, - use_fields, fields))) + if ((error_num = spider_db_print_item_type( + (Item *) value, ((Item_field *) field)->field, spider, str, + alias, alias_length, dbton_id, use_fields, fields))) DBUG_RETURN(error_num); if (str) { @@ -10599,8 +10711,13 @@ int spider_db_udf_copy_key_row( ) { int error_num; DBUG_ENTER("spider_db_udf_copy_key_row"); +#ifdef SPIDER_use_LEX_CSTRING_for_KEY_Field_name if ((error_num = spider_db_append_name_with_quote_str(str, (char *) field->field_name.str, dbton_id))) +#else + if ((error_num = spider_db_append_name_with_quote_str(str, + (char *) field->field_name, dbton_id))) +#endif DBUG_RETURN(error_num); if (str->reserve(joint_length + *length + SPIDER_SQL_AND_LEN)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); |