summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2005-11-20 20:47:07 +0200
committerunknown <bell@sanja.is.com.ua>2005-11-20 20:47:07 +0200
commitfe63e095816a744950e3a3f6d978f074fd3fcd93 (patch)
tree178b80a009c667cc88b5c83cbe9636892d375946 /sql/sql_select.cc
parent5d425f936190057f727f73c8575fe5953cf56101 (diff)
downloadmariadb-git-fe63e095816a744950e3a3f6d978f074fd3fcd93.tar.gz
Inefficient usage of String::append() fixed.
Bad examples of usage of a string with its length fixed. The incorrect length in the trigger file configuration descriptor fixed (BUG#14090). A hook for unknown keys added to the parser to support old .TRG files. sql/field.cc: Inefficient usage of String::append() fixed. Bad examples of usage of a string with its length fixed. sql/ha_berkeley.cc: A bad example of usage of a string with its length fixed. sql/ha_federated.cc: Inefficient usage of String::append() fixed. sql/ha_myisammrg.cc: Bad examples of usage of a string with its length fixed. sql/handler.cc: Inefficient usage of String::append() fixed. sql/item.cc: Bad examples of usage of a string with its length fixed. sql/item.h: A bad example of usage of a string with its length fixed. sql/item_cmpfunc.cc: Bad examples of usage of a string with its length fixed. sql/item_func.cc: Bad examples of usage of a string with its length fixed. sql/item_strfunc.cc: Bad examples of usage of a string with its length fixed. sql/item_subselect.cc: Bad examples of usage of a string with its length fixed. sql/item_sum.cc: Bad examples of usage of a string with its length fixed. Inefficient usage of String::append() fixed. sql/item_timefunc.cc: Inefficient using of String::append() fixed. Bad examples of usage of a string with its length fixed. sql/item_uniq.h: Bad examples of usage of a string with its length fixed. sql/key.cc: Bad examples of usage of a string with its length fixed. sql/log.cc: Bad examples of usage of a string with its length fixed. sql/log_event.cc: Bad examples of usage of a string with its length fixed. sql/mysqld.cc: The dummy parser hook allocated. sql/opt_range.cc: Inefficient usage of String::append() fixed. sql/parse_file.cc: Bad examples of usage of a string with its length fixed. A hook for unknown keys added to the parser. sql/parse_file.h: A hook for unknown keys added to the parser. sql/protocol.cc: A bad example of usage of a string with its length fixed. sql/repl_failsafe.cc: Bad examples of usage of a string with its length fixed. sql/share/errmsg.txt: A warning for old format config file. sql/slave.cc: Bad examples of usage of a string with its length fixed. sql/sp.cc: Bad examples of usage of a string with its length fixed. sql/sp_head.cc: Bad examples of usage of a string with its length fixed. sql/spatial.cc: A bad example of usage of a string with its length fixed. sql/sql_acl.cc: Bad examples of usage of a string with its length fixed. sql/sql_analyse.cc: Bad examples of usage of a string with its length fixed. Inefficient usage of String::append() fixed. sql/sql_lex.cc: Bad examples of usage of a string with its length fixed. sql/sql_load.cc: A bad example of usage of a string with its length fixed. sql/sql_parse.cc: Bad examples of usage of a string with its length fixed. sql/sql_prepare.cc: A bad example of usage of a string with its length fixed. sql/sql_select.cc: Bad examples of usage of a string with its length fixed. sql/sql_show.cc: Bad examples of usage of a string with its length fixed. sql/sql_string.cc: Bad examples of usage of a string with its length fixed. sql/sql_string.h: The macro definition moved to sql_string.h to be accessible in all parts of server. sql/sql_table.cc: Bad examples of usage of a string with its length fixed. sql/sql_trigger.cc: Bad examples of usage of a string with its length fixed. The incorrect length in the trigger file configuration descriptor fixed (BUG#14090). The hook for processing incorrect sql_mode record added. sql/sql_view.cc: A dummy hook used for parsing views. sql/structs.h: The macro definition moved to sql_string.h to be accessible in all parts of server. sql/table.cc: A bad example of usage of a string with its length fixed. sql/tztime.cc: A bad example of usage of a string with its length fixed.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc73
1 files changed, 39 insertions, 34 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 44c4ec998bb..f10e3f2f2c1 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -13672,7 +13672,7 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
{
SELECT_LEX *sl= join->unit->first_select();
uint len= 6, lastop= 0;
- memcpy(table_name_buffer, "<union", 6);
+ memcpy(table_name_buffer, STRING_WITH_LEN("<union"));
for (; sl && len + lastop + 5 < NAME_LEN; sl= sl->next_select())
{
len+= lastop;
@@ -13681,7 +13681,7 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
}
if (sl || len + lastop >= NAME_LEN)
{
- memcpy(table_name_buffer + len, "...>", 5);
+ memcpy(table_name_buffer + len, STRING_WITH_LEN("...>") + 1);
len+= 4;
}
else
@@ -13860,7 +13860,7 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
quick_type == QUICK_SELECT_I::QS_TYPE_ROR_INTERSECT ||
quick_type == QUICK_SELECT_I::QS_TYPE_INDEX_MERGE)
{
- extra.append("; Using ");
+ extra.append(STRING_WITH_LEN("; Using "));
tab->select->quick->add_info_string(&extra);
}
if (tab->select)
@@ -13868,7 +13868,8 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
if (tab->use_quick == 2)
{
char buf[MAX_KEY/8+1];
- extra.append("; Range checked for each record (index map: 0x");
+ extra.append(STRING_WITH_LEN("; Range checked for each "
+ "record (index map: 0x"));
extra.append(tab->keys.print(buf));
extra.append(')');
}
@@ -13878,38 +13879,39 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
if (thd->variables.engine_condition_pushdown && pushed_cond)
{
- extra.append("; Using where with pushed condition");
+ extra.append(STRING_WITH_LEN("; Using where with pushed "
+ "condition"));
if (thd->lex->describe & DESCRIBE_EXTENDED)
{
- extra.append(": ");
+ extra.append(STRING_WITH_LEN(": "));
((COND *)pushed_cond)->print(&extra);
}
}
else
- extra.append("; Using where");
+ extra.append(STRING_WITH_LEN("; Using where"));
}
}
if (key_read)
{
if (quick_type == QUICK_SELECT_I::QS_TYPE_GROUP_MIN_MAX)
- extra.append("; Using index for group-by");
+ extra.append(STRING_WITH_LEN("; Using index for group-by"));
else
- extra.append("; Using index");
+ extra.append(STRING_WITH_LEN("; Using index"));
}
if (table->reginfo.not_exists_optimize)
- extra.append("; Not exists");
+ extra.append(STRING_WITH_LEN("; Not exists"));
if (need_tmp_table)
{
need_tmp_table=0;
- extra.append("; Using temporary");
+ extra.append(STRING_WITH_LEN("; Using temporary"));
}
if (need_order)
{
need_order=0;
- extra.append("; Using filesort");
+ extra.append(STRING_WITH_LEN("; Using filesort"));
}
if (distinct & test_all_bits(used_tables,thd->used_tables))
- extra.append("; Distinct");
+ extra.append(STRING_WITH_LEN("; Distinct"));
/* Skip initial "; "*/
const char *str= extra.ptr();
@@ -14026,15 +14028,18 @@ static void print_join(THD *thd, String *str, List<TABLE_LIST> *tables)
{
TABLE_LIST *curr= *tbl;
if (curr->outer_join)
- str->append(" left join ", 11); // MySQL converts right to left joins
+ {
+ /* MySQL converts right to left joins */
+ str->append(STRING_WITH_LEN(" left join "));
+ }
else if (curr->straight)
- str->append(" straight_join ", 15);
+ str->append(STRING_WITH_LEN(" straight_join "));
else
- str->append(" join ", 6);
+ str->append(STRING_WITH_LEN(" join "));
curr->print(thd, str);
if (curr->on_expr)
{
- str->append(" on(", 4);
+ str->append(STRING_WITH_LEN(" on("));
curr->on_expr->print(str);
str->append(')');
}
@@ -14119,28 +14124,28 @@ void st_select_lex::print(THD *thd, String *str)
if (!thd)
thd= current_thd;
- str->append("select ", 7);
+ str->append(STRING_WITH_LEN("select "));
/* First add options */
if (options & SELECT_STRAIGHT_JOIN)
- str->append("straight_join ", 14);
+ str->append(STRING_WITH_LEN("straight_join "));
if ((thd->lex->lock_option == TL_READ_HIGH_PRIORITY) &&
(this == &thd->lex->select_lex))
- str->append("high_priority ", 14);
+ str->append(STRING_WITH_LEN("high_priority "));
if (options & SELECT_DISTINCT)
- str->append("distinct ", 9);
+ str->append(STRING_WITH_LEN("distinct "));
if (options & SELECT_SMALL_RESULT)
- str->append("sql_small_result ", 17);
+ str->append(STRING_WITH_LEN("sql_small_result "));
if (options & SELECT_BIG_RESULT)
- str->append("sql_big_result ", 15);
+ str->append(STRING_WITH_LEN("sql_big_result "));
if (options & OPTION_BUFFER_RESULT)
- str->append("sql_buffer_result ", 18);
+ str->append(STRING_WITH_LEN("sql_buffer_result "));
if (options & OPTION_FOUND_ROWS)
- str->append("sql_calc_found_rows ", 20);
+ str->append(STRING_WITH_LEN("sql_calc_found_rows "));
if (!thd->lex->safe_to_cache_query)
- str->append("sql_no_cache ", 13);
+ str->append(STRING_WITH_LEN("sql_no_cache "));
if (options & OPTION_TO_QUERY_CACHE)
- str->append("sql_cache ", 10);
+ str->append(STRING_WITH_LEN("sql_cache "));
//Item List
bool first= 1;
@@ -14161,7 +14166,7 @@ void st_select_lex::print(THD *thd, String *str)
*/
if (table_list.elements)
{
- str->append(" from ", 6);
+ str->append(STRING_WITH_LEN(" from "));
/* go through join tree */
print_join(thd, str, &top_join_list);
}
@@ -14172,22 +14177,22 @@ void st_select_lex::print(THD *thd, String *str)
cur_where= join->conds;
if (cur_where)
{
- str->append(" where ", 7);
+ str->append(STRING_WITH_LEN(" where "));
cur_where->print(str);
}
// group by & olap
if (group_list.elements)
{
- str->append(" group by ", 10);
+ str->append(STRING_WITH_LEN(" group by "));
print_order(str, (ORDER *) group_list.first);
switch (olap)
{
case CUBE_TYPE:
- str->append(" with cube", 10);
+ str->append(STRING_WITH_LEN(" with cube"));
break;
case ROLLUP_TYPE:
- str->append(" with rollup", 12);
+ str->append(STRING_WITH_LEN(" with rollup"));
break;
default:
; //satisfy compiler
@@ -14201,13 +14206,13 @@ void st_select_lex::print(THD *thd, String *str)
if (cur_having)
{
- str->append(" having ", 8);
+ str->append(STRING_WITH_LEN(" having "));
cur_having->print(str);
}
if (order_list.elements)
{
- str->append(" order by ", 10);
+ str->append(STRING_WITH_LEN(" order by "));
print_order(str, (ORDER *) order_list.first);
}