diff options
author | unknown <iggy@recycle.(none)> | 2007-03-29 11:12:12 -0400 |
---|---|---|
committer | unknown <iggy@recycle.(none)> | 2007-03-29 11:12:12 -0400 |
commit | 09eff0aa5bdbfaebe47c155084d5d84e6f5adec4 (patch) | |
tree | 14bbae6fb1546e1d0acc5ace4a9e3450c777ab9e /sql | |
parent | 1edf36853b8ce2c4a3e5a3b2676445baef60b50f (diff) | |
download | mariadb-git-09eff0aa5bdbfaebe47c155084d5d84e6f5adec4.tar.gz |
Bug #23491 MySQLDump prefix function call in a view by database name
- 5.0 merged to 5.1 differences.
sql/item_create.cc:
Bug #23491 MySQLDump prefix function call in a view by database name
- Added use_explicit_name to Create_sp_func::create method.
- Default use_explicit_name to false when db name not specified.
- Use use_explicit_name when creating sp_name object.
sql/item_create.h:
Bug #23491 MySQLDump prefix function call in a view by database name
- Updated virtual function definition.
sql/sql_yacc.yy:
Bug #23491 MySQLDump prefix function call in a view by database name
- Use new create method.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_create.cc | 8 | ||||
-rw-r--r-- | sql/item_create.h | 3 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 2 |
3 files changed, 7 insertions, 6 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index ff5825ef389..617a24fac45 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -167,7 +167,7 @@ class Create_sp_func : public Create_qfunc { public: virtual Item* create(THD *thd, LEX_STRING db, LEX_STRING name, - List<Item> *item_list); + bool use_explicit_name, List<Item> *item_list); static Create_sp_func s_singleton; @@ -2316,7 +2316,7 @@ Create_qfunc::create(THD *thd, LEX_STRING name, List<Item> *item_list) if (thd->copy_db_to(&db.str, &db.length)) return NULL; - return create(thd, db, name, item_list); + return create(thd, db, name, false, item_list); } @@ -2433,7 +2433,7 @@ Create_sp_func Create_sp_func::s_singleton; Item* Create_sp_func::create(THD *thd, LEX_STRING db, LEX_STRING name, - List<Item> *item_list) + bool use_explicit_name, List<Item> *item_list) { int arg_count= 0; Item *func= NULL; @@ -2458,7 +2458,7 @@ Create_sp_func::create(THD *thd, LEX_STRING db, LEX_STRING name, if (item_list != NULL) arg_count= item_list->elements; - qname= new (thd->mem_root) sp_name(db, name); + qname= new (thd->mem_root) sp_name(db, name, use_explicit_name); qname->init_qname(thd); sp_add_used_routine(lex, thd, qname, TYPE_ENUM_FUNCTION); diff --git a/sql/item_create.h b/sql/item_create.h index 985c4428d8f..0a668b3e67f 100644 --- a/sql/item_create.h +++ b/sql/item_create.h @@ -87,11 +87,12 @@ public: @param thd The current thread @param db The database name @param name The function name + @param use_explicit_name Should the function be represented as 'db.name'? @param item_list The list of arguments to the function, can be NULL @return An item representing the parsed function call */ virtual Item* create(THD *thd, LEX_STRING db, LEX_STRING name, - List<Item> *item_list) = 0; + bool use_explicit_name, List<Item> *item_list) = 0; protected: /** Constructor. */ diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 2a187f0138d..d6f8dd33588 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -6921,7 +6921,7 @@ function_call_generic: builder= find_qualified_function_builder(thd); DBUG_ASSERT(builder); - item= builder->create(thd, $1, $3, $5); + item= builder->create(thd, $1, $3, true, $5); if (! ($$= item)) { |