Review fixed
This commit is contained in:
parent
b9054c5e4a
commit
209190d3df
@ -586,16 +586,13 @@ uint ha_federated::convert_row_to_internal_format(byte *record, MYSQL_ROW row)
|
|||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ha_federated::create_where_from_key(
|
bool ha_federated::create_where_from_key(String *to, KEY *key_info,
|
||||||
String *to,
|
const byte *key, uint key_length)
|
||||||
KEY *key_info,
|
|
||||||
const byte *key,
|
|
||||||
uint key_length
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
uint second_loop= 0;
|
uint second_loop= 0;
|
||||||
KEY_PART_INFO *key_part;
|
KEY_PART_INFO *key_part;
|
||||||
bool needs_quotes;
|
bool needs_quotes;
|
||||||
|
String tmp;
|
||||||
|
|
||||||
DBUG_ENTER("ha_federated::create_where_from_key");
|
DBUG_ENTER("ha_federated::create_where_from_key");
|
||||||
for (key_part= key_info->key_part ; (int) key_length > 0 ; key_part++)
|
for (key_part= key_info->key_part ; (int) key_length > 0 ; key_part++)
|
||||||
@ -656,7 +653,9 @@ bool ha_federated::create_where_from_key(
|
|||||||
uint blob_length= uint2korr(key);
|
uint blob_length= uint2korr(key);
|
||||||
key+= HA_KEY_BLOB_LENGTH;
|
key+= HA_KEY_BLOB_LENGTH;
|
||||||
key_length-= HA_KEY_BLOB_LENGTH;
|
key_length-= HA_KEY_BLOB_LENGTH;
|
||||||
if (append_escaped(to, (char *)(key), blob_length))
|
|
||||||
|
tmp.set_quick((char*) key, blob_length, &my_charset_bin);
|
||||||
|
if (append_escaped(to, &tmp))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
|
||||||
DBUG_PRINT("ha_federated::create_where_from_key", ("blob type %s", to->c_ptr_quick()));
|
DBUG_PRINT("ha_federated::create_where_from_key", ("blob type %s", to->c_ptr_quick()));
|
||||||
@ -666,7 +665,8 @@ bool ha_federated::create_where_from_key(
|
|||||||
{
|
{
|
||||||
length= uint2korr(key);
|
length= uint2korr(key);
|
||||||
key+= HA_KEY_BLOB_LENGTH;
|
key+= HA_KEY_BLOB_LENGTH;
|
||||||
if (append_escaped(to, (char *)(key), length))
|
tmp.set_quick((char*) key, length, &my_charset_bin);
|
||||||
|
if (append_escaped(to, &tmp))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
|
||||||
DBUG_PRINT("ha_federated::create_where_from_key", ("varchar type %s", to->c_ptr_quick()));
|
DBUG_PRINT("ha_federated::create_where_from_key", ("varchar type %s", to->c_ptr_quick()));
|
||||||
@ -680,7 +680,7 @@ bool ha_federated::create_where_from_key(
|
|||||||
res= field->val_str(&str, (char *)(key));
|
res= field->val_str(&str, (char *)(key));
|
||||||
if (field->result_type() == STRING_RESULT)
|
if (field->result_type() == STRING_RESULT)
|
||||||
{
|
{
|
||||||
if (append_escaped(to, (char *) res->ptr(), res->length()))
|
if (append_escaped(to, res))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
res= field->val_str(&str, (char *)(key));
|
res= field->val_str(&str, (char *)(key));
|
||||||
|
|
||||||
@ -1235,7 +1235,7 @@ int ha_federated::update_row(
|
|||||||
update_string.append(new_field_value);
|
update_string.append(new_field_value);
|
||||||
new_field_value.length(0);
|
new_field_value.length(0);
|
||||||
|
|
||||||
if (x+1 < table->s->fields)
|
if ((uint) x+1 < table->s->fields)
|
||||||
{
|
{
|
||||||
update_string.append(", ");
|
update_string.append(", ");
|
||||||
if (! has_a_primary_key)
|
if (! has_a_primary_key)
|
||||||
@ -1311,7 +1311,7 @@ int ha_federated::delete_row(const byte * buf)
|
|||||||
delete_string.append(data_string);
|
delete_string.append(data_string);
|
||||||
data_string.length(0);
|
data_string.length(0);
|
||||||
|
|
||||||
if (x+1 < table->s->fields)
|
if ((uint) x+1 < table->s->fields)
|
||||||
delete_string.append(" AND ");
|
delete_string.append(" AND ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -715,7 +715,6 @@ bool mysql_do(THD *thd, List<Item> &values);
|
|||||||
|
|
||||||
/* sql_analyse.h */
|
/* sql_analyse.h */
|
||||||
bool append_escaped(String *to_str, String *from_str);
|
bool append_escaped(String *to_str, String *from_str);
|
||||||
bool append_escaped(String *to_str, char *from, uint from_len);
|
|
||||||
|
|
||||||
/* sql_show.cc */
|
/* sql_show.cc */
|
||||||
bool mysqld_show_open_tables(THD *thd,const char *wild);
|
bool mysqld_show_open_tables(THD *thd,const char *wild);
|
||||||
|
@ -59,8 +59,6 @@ int compare_ulonglong2(void* cmp_arg __attribute__((unused)),
|
|||||||
return compare_ulonglong(s,t);
|
return compare_ulonglong(s,t);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool append_escaped(String *to_str, String *from_str);
|
|
||||||
bool append_escaped(String *to_str, char *from, uint from_len);
|
|
||||||
|
|
||||||
Procedure *
|
Procedure *
|
||||||
proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
||||||
@ -1087,38 +1085,3 @@ bool append_escaped(String *to_str, String *from_str)
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool append_escaped(String *to_str, char *from, uint from_len)
|
|
||||||
{
|
|
||||||
char *end, c;
|
|
||||||
|
|
||||||
if (to_str->realloc(to_str->length() + from_len))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
end= from + from_len;
|
|
||||||
|
|
||||||
for (; from < end; from++)
|
|
||||||
{
|
|
||||||
c= *from;
|
|
||||||
switch (c) {
|
|
||||||
case '\0':
|
|
||||||
c= '0';
|
|
||||||
break;
|
|
||||||
case '\032':
|
|
||||||
c= 'Z';
|
|
||||||
break;
|
|
||||||
case '\\':
|
|
||||||
case '\'':
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
goto normal_character;
|
|
||||||
}
|
|
||||||
if (to_str->append('\\'))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
normal_character:
|
|
||||||
if (to_str->append(c))
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
@ -1811,13 +1811,13 @@ select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
|||||||
is the same table (Bug #6034). Do the preparation after the select phase
|
is the same table (Bug #6034). Do the preparation after the select phase
|
||||||
in select_insert::prepare2().
|
in select_insert::prepare2().
|
||||||
*/
|
*/
|
||||||
if (info.ignore || info.handle_duplicates != DUP_ERROR)
|
|
||||||
table->file->extra(HA_EXTRA_IGNORE_DUP_KEY);
|
|
||||||
table->file->start_bulk_insert((ha_rows) 0);
|
table->file->start_bulk_insert((ha_rows) 0);
|
||||||
}
|
}
|
||||||
restore_record(table,s->default_values); // Get empty record
|
restore_record(table,s->default_values); // Get empty record
|
||||||
table->next_number_field=table->found_next_number_field;
|
table->next_number_field=table->found_next_number_field;
|
||||||
thd->cuted_fields=0;
|
thd->cuted_fields=0;
|
||||||
|
if (info.ignore || info.handle_duplicates != DUP_ERROR)
|
||||||
|
table->file->extra(HA_EXTRA_IGNORE_DUP_KEY);
|
||||||
thd->no_trans_update= 0;
|
thd->no_trans_update= 0;
|
||||||
thd->abort_on_warning= (!info.ignore &&
|
thd->abort_on_warning= (!info.ignore &&
|
||||||
(thd->variables.sql_mode &
|
(thd->variables.sql_mode &
|
||||||
@ -1847,14 +1847,9 @@ select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
|||||||
int select_insert::prepare2(void)
|
int select_insert::prepare2(void)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("select_insert::prepare2");
|
DBUG_ENTER("select_insert::prepare2");
|
||||||
|
|
||||||
if (thd->lex->current_select->options & OPTION_BUFFER_RESULT)
|
if (thd->lex->current_select->options & OPTION_BUFFER_RESULT)
|
||||||
{
|
|
||||||
if (info.ignore || info.handle_duplicates != DUP_ERROR)
|
|
||||||
table->file->extra(HA_EXTRA_IGNORE_DUP_KEY);
|
|
||||||
table->file->start_bulk_insert((ha_rows) 0);
|
table->file->start_bulk_insert((ha_rows) 0);
|
||||||
}
|
DBUG_RETURN(0);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user