summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2017-11-15 19:18:28 +0400
committerAlexander Barkov <bar@mariadb.org>2017-11-15 19:18:28 +0400
commit1c3460843613c6e7ac28456c0f24085a8877e13f (patch)
tree675017a6b5666a1629100fb2ad4eb728d8f73473 /sql
parent7663773e56e64098b1126651a6ff3cbc41192329 (diff)
downloadmariadb-git-1c3460843613c6e7ac28456c0f24085a8877e13f.tar.gz
MDEV-14404 Don't use LEX::check_exists in ALTER SEQUENCE
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_alter.h6
-rw-r--r--sql/sql_sequence.cc4
-rw-r--r--sql/sql_yacc.yy4
-rw-r--r--sql/sql_yacc_ora.yy4
4 files changed, 10 insertions, 8 deletions
diff --git a/sql/sql_alter.h b/sql/sql_alter.h
index c0232dd7358..5c898a5407c 100644
--- a/sql/sql_alter.h
+++ b/sql/sql_alter.h
@@ -387,13 +387,15 @@ public:
/**
Sql_cmd_alter_sequence represents the ALTER SEQUENCE statement.
*/
-class Sql_cmd_alter_sequence : public Sql_cmd
+class Sql_cmd_alter_sequence : public Sql_cmd,
+ public DDL_options
{
public:
/**
Constructor, used to represent a ALTER TABLE statement.
*/
- Sql_cmd_alter_sequence()
+ Sql_cmd_alter_sequence(const DDL_options &options)
+ :DDL_options(options)
{}
~Sql_cmd_alter_sequence()
diff --git a/sql/sql_sequence.cc b/sql/sql_sequence.cc
index ec40dc5a507..82d53486c95 100644
--- a/sql/sql_sequence.cc
+++ b/sql/sql_sequence.cc
@@ -851,10 +851,10 @@ bool Sql_cmd_alter_sequence::execute(THD *thd)
if (check_grant(thd, ALTER_ACL, first_table, FALSE, UINT_MAX, FALSE))
DBUG_RETURN(TRUE); /* purecov: inspected */
- if (lex->check_exists)
+ if (if_exists())
thd->push_internal_handler(&no_such_table_handler);
error= open_and_lock_tables(thd, first_table, FALSE, 0);
- if (lex->check_exists)
+ if (if_exists())
{
trapped_errors= no_such_table_handler.safely_trapped_errors();
thd->pop_internal_handler();
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index c43edc8a513..bf9e1ba660e 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -7314,7 +7314,7 @@ alter:
Lex->create_info.set($2);
Lex->sql_command= SQLCOM_ALTER_USER;
}
- | ALTER SEQUENCE_SYM opt_if_exists_table_element
+ | ALTER SEQUENCE_SYM opt_if_exists
{
LEX *lex= Lex;
lex->name= null_clex_str;
@@ -7337,7 +7337,7 @@ alter:
sequence_defs
{
/* Create a generic ALTER SEQUENCE statment. */
- Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_sequence();
+ Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_sequence($3);
if (Lex->m_sql_cmd == NULL)
MYSQL_YYABORT;
}
diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy
index 11c577884d8..30c4b6a0f7c 100644
--- a/sql/sql_yacc_ora.yy
+++ b/sql/sql_yacc_ora.yy
@@ -7301,7 +7301,7 @@ alter:
Lex->create_info.set($2);
Lex->sql_command= SQLCOM_ALTER_USER;
}
- | ALTER SEQUENCE_SYM opt_if_exists_table_element
+ | ALTER SEQUENCE_SYM opt_if_exists
{
LEX *lex= Lex;
lex->name= null_clex_str;
@@ -7324,7 +7324,7 @@ alter:
sequence_defs
{
/* Create a generic ALTER SEQUENCE statment. */
- Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_sequence();
+ Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_sequence($3);
if (Lex->m_sql_cmd == NULL)
MYSQL_YYABORT;
}