summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <iggy@recycle.(none)>2007-03-29 11:12:12 -0400
committerunknown <iggy@recycle.(none)>2007-03-29 11:12:12 -0400
commit09eff0aa5bdbfaebe47c155084d5d84e6f5adec4 (patch)
tree14bbae6fb1546e1d0acc5ace4a9e3450c777ab9e /sql
parent1edf36853b8ce2c4a3e5a3b2676445baef60b50f (diff)
downloadmariadb-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.cc8
-rw-r--r--sql/item_create.h3
-rw-r--r--sql/sql_yacc.yy2
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))
{