Fix usage of mysqld option --new, --old, --safe and --skip_new to not disable things that are proven stable or enable things that are not usefull.
sql/field.cc: Remove feature of 'new_mode' that was never implemtented in a newer MySQL version. sql/item_cmpfunc.cc: Boyer more is stable; Don't have to be protected by --skip-new anymore sql/mysqld.cc: Don't disable some proven stable functions with --skip-new sql/records.cc: Don't disable record caching with --safe-mode anymore sql/sql_delete.cc: Do fast truncate even if --skip-new or --safe is used sql/sql_parse.cc: Use always mysql_optimizer() for optimizer (instead of mysql_recreate_table() in case of --safe or --skip-new) sql/sql_select.cc: Don't disable 'only_eq_ref_tables' if --safe is used. sql/sql_yacc.yy: Removed not meaningfull test of --old
This commit is contained in:
parent
ec06ba2455
commit
5ce4825b63
@ -6703,8 +6703,7 @@ void Field_string::sql_type(String &res) const
|
|||||||
|
|
||||||
length= cs->cset->snprintf(cs,(char*) res.ptr(),
|
length= cs->cset->snprintf(cs,(char*) res.ptr(),
|
||||||
res.alloced_length(), "%s(%d)",
|
res.alloced_length(), "%s(%d)",
|
||||||
((type() == MYSQL_TYPE_VAR_STRING &&
|
(type() == MYSQL_TYPE_VAR_STRING ?
|
||||||
!thd->variables.new_mode) ?
|
|
||||||
(has_charset() ? "varchar" : "varbinary") :
|
(has_charset() ? "varchar" : "varbinary") :
|
||||||
(has_charset() ? "char" : "binary")),
|
(has_charset() ? "char" : "binary")),
|
||||||
(int) field_length / charset()->mbmaxlen);
|
(int) field_length / charset()->mbmaxlen);
|
||||||
|
@ -4683,8 +4683,7 @@ bool Item_func_like::fix_fields(THD *thd, Item **ref)
|
|||||||
We could also do boyer-more for non-const items, but as we would have to
|
We could also do boyer-more for non-const items, but as we would have to
|
||||||
recompute the tables for each row it's not worth it.
|
recompute the tables for each row it's not worth it.
|
||||||
*/
|
*/
|
||||||
if (args[1]->const_item() && !use_strnxfrm(collation.collation) &&
|
if (args[1]->const_item() && !use_strnxfrm(collation.collation))
|
||||||
!(specialflag & SPECIAL_NO_NEW_FUNC))
|
|
||||||
{
|
{
|
||||||
String* res2 = args[1]->val_str(&cmp.value2);
|
String* res2 = args[1]->val_str(&cmp.value2);
|
||||||
if (!res2)
|
if (!res2)
|
||||||
|
@ -8725,11 +8725,7 @@ mysqld_get_one_option(int optid,
|
|||||||
case (int) OPT_SKIP_NEW:
|
case (int) OPT_SKIP_NEW:
|
||||||
opt_specialflag|= SPECIAL_NO_NEW_FUNC;
|
opt_specialflag|= SPECIAL_NO_NEW_FUNC;
|
||||||
delay_key_write_options= (uint) DELAY_KEY_WRITE_NONE;
|
delay_key_write_options= (uint) DELAY_KEY_WRITE_NONE;
|
||||||
myisam_concurrent_insert=0;
|
ha_open_options&= ~(HA_OPEN_DELAY_KEY_WRITE);
|
||||||
myisam_recover_options= HA_RECOVER_NONE;
|
|
||||||
sp_automatic_privileges=0;
|
|
||||||
my_use_symdir=0;
|
|
||||||
ha_open_options&= ~(HA_OPEN_ABORT_IF_CRASHED | HA_OPEN_DELAY_KEY_WRITE);
|
|
||||||
#ifdef HAVE_QUERY_CACHE
|
#ifdef HAVE_QUERY_CACHE
|
||||||
query_cache_size=0;
|
query_cache_size=0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -216,7 +216,6 @@ bool init_read_record(READ_RECORD *info,THD *thd, TABLE *table,
|
|||||||
*/
|
*/
|
||||||
if (!disable_rr_cache &&
|
if (!disable_rr_cache &&
|
||||||
!table->sort.addon_field &&
|
!table->sort.addon_field &&
|
||||||
! (specialflag & SPECIAL_SAFE_MODE) &&
|
|
||||||
thd->variables.read_rnd_buff_size &&
|
thd->variables.read_rnd_buff_size &&
|
||||||
!(table->file->ha_table_flags() & HA_FAST_KEY_READ) &&
|
!(table->file->ha_table_flags() & HA_FAST_KEY_READ) &&
|
||||||
(table->db_stat & HA_READ_ONLY ||
|
(table->db_stat & HA_READ_ONLY ||
|
||||||
|
@ -130,7 +130,6 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
|
|||||||
- there should be no delete triggers associated with the table.
|
- there should be no delete triggers associated with the table.
|
||||||
*/
|
*/
|
||||||
if (!using_limit && const_cond_result &&
|
if (!using_limit && const_cond_result &&
|
||||||
!(specialflag & (SPECIAL_NO_NEW_FUNC | SPECIAL_SAFE_MODE)) &&
|
|
||||||
(thd->lex->sql_command == SQLCOM_TRUNCATE ||
|
(thd->lex->sql_command == SQLCOM_TRUNCATE ||
|
||||||
(!thd->current_stmt_binlog_row_based &&
|
(!thd->current_stmt_binlog_row_based &&
|
||||||
!(table->triggers && table->triggers->has_delete_triggers()))))
|
!(table->triggers && table->triggers->has_delete_triggers()))))
|
||||||
|
@ -3086,9 +3086,7 @@ end_with_restore_list:
|
|||||||
goto error; /* purecov: inspected */
|
goto error; /* purecov: inspected */
|
||||||
thd->enable_slow_log= opt_log_slow_admin_statements;
|
thd->enable_slow_log= opt_log_slow_admin_statements;
|
||||||
thd->query_plan_flags|= QPLAN_ADMIN;
|
thd->query_plan_flags|= QPLAN_ADMIN;
|
||||||
res= (specialflag & (SPECIAL_SAFE_MODE | SPECIAL_NO_NEW_FUNC)) ?
|
res= mysql_optimize_table(thd, first_table, &lex->check_opt);
|
||||||
mysql_recreate_table(thd, first_table) :
|
|
||||||
mysql_optimize_table(thd, first_table, &lex->check_opt);
|
|
||||||
/* ! we write after unlocking the table */
|
/* ! we write after unlocking the table */
|
||||||
if (!res && !lex->no_write_to_binlog)
|
if (!res && !lex->no_write_to_binlog)
|
||||||
{
|
{
|
||||||
|
@ -7187,8 +7187,6 @@ eq_ref_table(JOIN *join, ORDER *start_order, JOIN_TAB *tab)
|
|||||||
static bool
|
static bool
|
||||||
only_eq_ref_tables(JOIN *join,ORDER *order,table_map tables)
|
only_eq_ref_tables(JOIN *join,ORDER *order,table_map tables)
|
||||||
{
|
{
|
||||||
if (specialflag & SPECIAL_SAFE_MODE)
|
|
||||||
return 0; // skip this optimize /* purecov: inspected */
|
|
||||||
tables&= ~PSEUDO_TABLE_BITS;
|
tables&= ~PSEUDO_TABLE_BITS;
|
||||||
for (JOIN_TAB **tab=join->map2table ; tables ; tab++, tables>>=1)
|
for (JOIN_TAB **tab=join->map2table ; tables ; tab++, tables>>=1)
|
||||||
{
|
{
|
||||||
|
@ -6757,8 +6757,6 @@ cache_keys_spec:
|
|||||||
{
|
{
|
||||||
Lex->select_lex.alloc_index_hints(YYTHD);
|
Lex->select_lex.alloc_index_hints(YYTHD);
|
||||||
Select->set_index_hint_type(INDEX_HINT_USE,
|
Select->set_index_hint_type(INDEX_HINT_USE,
|
||||||
global_system_variables.old_mode ?
|
|
||||||
INDEX_HINT_MASK_JOIN :
|
|
||||||
INDEX_HINT_MASK_ALL);
|
INDEX_HINT_MASK_ALL);
|
||||||
}
|
}
|
||||||
cache_key_list_or_empty
|
cache_key_list_or_empty
|
||||||
|
Loading…
x
Reference in New Issue
Block a user