mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
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.
This commit is contained in:
parent
1edf36853b
commit
09eff0aa5b
3 changed files with 7 additions and 6 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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))
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue