summaryrefslogtreecommitdiff
path: root/sql/sql_prepare.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2016-07-02 15:02:21 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2016-07-27 19:00:54 +0200
commitc7c7755e0de494ef8e898708c5b13c6f7abf24ee (patch)
tree205ebf6ea2f25a88ba768245b748a8d8d2634a07 /sql/sql_prepare.cc
parent41535a435dff427252cf56abe07f69a356cdcb38 (diff)
downloadmariadb-git-10.2-MDEV-9114.tar.gz
Separate command removed.10.2-MDEV-9114
Default value indicator for INSERT added. Bugs fixed.
Diffstat (limited to 'sql/sql_prepare.cc')
-rw-r--r--sql/sql_prepare.cc19
1 files changed, 11 insertions, 8 deletions
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc
index 9f618d1ef9b..60e3bf19e58 100644
--- a/sql/sql_prepare.cc
+++ b/sql/sql_prepare.cc
@@ -991,7 +991,7 @@ static bool insert_bulk_params(Prepared_statement *stmt,
indicators= *((*read_pos)++);
else
indicators= STMT_INDICATOR_NONE;
- if ((*read_pos) >= data_end)
+ if ((*read_pos) > data_end)
DBUG_RETURN(1);
switch (indicators) {
case STMT_INDICATOR_NONE:
@@ -1005,8 +1005,8 @@ static bool insert_bulk_params(Prepared_statement *stmt,
param->set_null();
break;
case STMT_INDICATOR_DEFAULT:
- // TODO: support default
- DBUG_ASSERT(0);
+ if (param->set_default())
+ DBUG_RETURN(1);
break;
}
}
@@ -4079,11 +4079,12 @@ reexecute:
my_bool bulk_parameters_set(THD *thd)
{
+ DBUG_ENTER("bulk_parameters_set");
Prepared_statement *stmt= (Prepared_statement *) thd->bulk_param;
if (stmt && stmt->set_bulk_parameters())
- return FALSE;
- return FALSE;
+ DBUG_RETURN(TRUE);
+ DBUG_RETURN(FALSE);
}
ulong bulk_parameters_iterations(THD *thd)
@@ -4097,6 +4098,8 @@ ulong bulk_parameters_iterations(THD *thd)
my_bool Prepared_statement::set_bulk_parameters()
{
+ DBUG_ENTER("Prepared_statement::set_bulk_parameters");
+ DBUG_PRINT("info", ("iteration: %lu", iterations));
if (iterations)
{
#ifndef EMBEDDED_LIBRARY
@@ -4108,12 +4111,12 @@ my_bool Prepared_statement::set_bulk_parameters()
my_error(ER_WRONG_ARGUMENTS, MYF(0),
"mysqld_stmt_bulk_execute");
reset_stmt_params(this);
- return true;
+ DBUG_RETURN(true);
}
iterations--;
}
start_param= 0;
- return false;
+ DBUG_RETURN(false);
}
ulong Prepared_statement::bulk_iterations()
@@ -4170,7 +4173,7 @@ Prepared_statement::execute_bulk_loop(String *expanded_query,
}
#ifdef NOT_YET_FROM_MYSQL_5_6
- if (unlikely(thd->security_ctx->password_expired &&
+ if (unlikely(thd->security_ctx->password_expired &&
!lex->is_change_password))
{
my_error(ER_MUST_CHANGE_PASSWORD, MYF(0));