Workaround for DTrace-related bugs.
Bumped up version number to 0.2.1
This commit is contained in:
parent
8ea8ab63e3
commit
d48cea15cc
@ -1401,7 +1401,7 @@ set_solaris_configs()
|
|||||||
compiler_flags="$compiler_flags -xregs=frameptr"
|
compiler_flags="$compiler_flags -xregs=frameptr"
|
||||||
compiler_flags="$compiler_flags -xO4"
|
compiler_flags="$compiler_flags -xO4"
|
||||||
elif test "x$fast_flag" = "xgeneric" ; then
|
elif test "x$fast_flag" = "xgeneric" ; then
|
||||||
compiler_flags="$compiler_flags -xO3"
|
compiler_flags="$compiler_flags -xO2"
|
||||||
else
|
else
|
||||||
compiler_flags="$compiler_flags -xO"
|
compiler_flags="$compiler_flags -xO"
|
||||||
fi
|
fi
|
||||||
|
@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM
|
|||||||
#
|
#
|
||||||
# When changing major version number please also check switch statement
|
# When changing major version number please also check switch statement
|
||||||
# in mysqlbinlog::check_master_version().
|
# in mysqlbinlog::check_master_version().
|
||||||
AM_INIT_AUTOMAKE(mysql, 5.1.31-pv-0.2.0)
|
AM_INIT_AUTOMAKE(mysql, 5.1.31-pv-0.2.1)
|
||||||
AM_CONFIG_HEADER([include/config.h:config.h.in])
|
AM_CONFIG_HEADER([include/config.h:config.h.in])
|
||||||
|
|
||||||
PROTOCOL_VERSION=10
|
PROTOCOL_VERSION=10
|
||||||
|
@ -1226,7 +1226,8 @@ bool mysql_multi_update(THD *thd, TABLE_LIST *table_list,
|
|||||||
List<Item> *fields, List<Item> *values,
|
List<Item> *fields, List<Item> *values,
|
||||||
COND *conds, ulonglong options,
|
COND *conds, ulonglong options,
|
||||||
enum enum_duplicates handle_duplicates, bool ignore,
|
enum enum_duplicates handle_duplicates, bool ignore,
|
||||||
SELECT_LEX_UNIT *unit, SELECT_LEX *select_lex);
|
SELECT_LEX_UNIT *unit, SELECT_LEX *select_lex,
|
||||||
|
multi_update **result);
|
||||||
bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, TABLE *table,
|
bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, TABLE *table,
|
||||||
List<Item> &fields, List_item *values,
|
List<Item> &fields, List_item *values,
|
||||||
List<Item> &update_fields,
|
List<Item> &update_fields,
|
||||||
|
@ -3046,13 +3046,31 @@ end_with_restore_list:
|
|||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
} /* unlikely */
|
} /* unlikely */
|
||||||
#endif
|
#endif
|
||||||
MYSQL_MULTI_UPDATE_START(thd->query);
|
{
|
||||||
res= mysql_multi_update(thd, all_tables,
|
multi_update *result_obj;
|
||||||
&select_lex->item_list,
|
MYSQL_MULTI_UPDATE_START(thd->query);
|
||||||
&lex->value_list,
|
res= mysql_multi_update(thd, all_tables,
|
||||||
select_lex->where,
|
&select_lex->item_list,
|
||||||
select_lex->options,
|
&lex->value_list,
|
||||||
lex->duplicates, lex->ignore, unit, select_lex);
|
select_lex->where,
|
||||||
|
select_lex->options,
|
||||||
|
lex->duplicates,
|
||||||
|
lex->ignore,
|
||||||
|
unit,
|
||||||
|
select_lex,
|
||||||
|
&result_obj);
|
||||||
|
if (result_obj)
|
||||||
|
{
|
||||||
|
MYSQL_MULTI_UPDATE_DONE(res, result_obj->num_found(),
|
||||||
|
result_obj->num_updated());
|
||||||
|
res= FALSE; /* Ignore errors here */
|
||||||
|
delete result_obj;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MYSQL_MULTI_UPDATE_DONE(1, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SQLCOM_REPLACE:
|
case SQLCOM_REPLACE:
|
||||||
|
@ -1193,19 +1193,20 @@ bool mysql_multi_update(THD *thd,
|
|||||||
List<Item> *values,
|
List<Item> *values,
|
||||||
COND *conds,
|
COND *conds,
|
||||||
ulonglong options,
|
ulonglong options,
|
||||||
enum enum_duplicates handle_duplicates, bool ignore,
|
enum enum_duplicates handle_duplicates,
|
||||||
SELECT_LEX_UNIT *unit, SELECT_LEX *select_lex)
|
bool ignore,
|
||||||
|
SELECT_LEX_UNIT *unit,
|
||||||
|
SELECT_LEX *select_lex,
|
||||||
|
multi_update **result)
|
||||||
{
|
{
|
||||||
multi_update *result;
|
|
||||||
bool res;
|
bool res;
|
||||||
DBUG_ENTER("mysql_multi_update");
|
DBUG_ENTER("mysql_multi_update");
|
||||||
|
|
||||||
if (!(result= new multi_update(table_list,
|
if (!(*result= new multi_update(table_list,
|
||||||
thd->lex->select_lex.leaf_tables,
|
thd->lex->select_lex.leaf_tables,
|
||||||
fields, values,
|
fields, values,
|
||||||
handle_duplicates, ignore)))
|
handle_duplicates, ignore)))
|
||||||
{
|
{
|
||||||
MYSQL_MULTI_UPDATE_DONE(1, 0, 0);
|
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1221,20 +1222,18 @@ bool mysql_multi_update(THD *thd,
|
|||||||
(ORDER *)NULL,
|
(ORDER *)NULL,
|
||||||
options | SELECT_NO_JOIN_CACHE | SELECT_NO_UNLOCK |
|
options | SELECT_NO_JOIN_CACHE | SELECT_NO_UNLOCK |
|
||||||
OPTION_SETUP_TABLES_DONE,
|
OPTION_SETUP_TABLES_DONE,
|
||||||
result, unit, select_lex);
|
*result, unit, select_lex);
|
||||||
DBUG_PRINT("info",("res: %d report_error: %d", res,
|
DBUG_PRINT("info",("res: %d report_error: %d", res,
|
||||||
(int) thd->is_error()));
|
(int) thd->is_error()));
|
||||||
res|= thd->is_error();
|
res|= thd->is_error();
|
||||||
if (unlikely(res))
|
if (unlikely(res))
|
||||||
{
|
{
|
||||||
/* If we had a another error reported earlier then this will be ignored */
|
/* If we had a another error reported earlier then this will be ignored */
|
||||||
result->send_error(ER_UNKNOWN_ERROR, ER(ER_UNKNOWN_ERROR));
|
(*result)->send_error(ER_UNKNOWN_ERROR, ER(ER_UNKNOWN_ERROR));
|
||||||
result->abort();
|
(*result)->abort();
|
||||||
}
|
}
|
||||||
MYSQL_MULTI_UPDATE_DONE(res, result->num_found(), result->num_updated());
|
|
||||||
delete result;
|
|
||||||
thd->abort_on_warning= 0;
|
thd->abort_on_warning= 0;
|
||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user