mirror of
https://github.com/MariaDB/server.git
synced 2026-04-23 00:35:32 +02: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:
|
public:
|
||||||
virtual Item* create(THD *thd, LEX_STRING db, LEX_STRING name,
|
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;
|
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))
|
if (thd->copy_db_to(&db.str, &db.length))
|
||||||
return NULL;
|
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*
|
Item*
|
||||||
Create_sp_func::create(THD *thd, LEX_STRING db, LEX_STRING name,
|
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;
|
int arg_count= 0;
|
||||||
Item *func= NULL;
|
Item *func= NULL;
|
||||||
|
|
@ -2458,7 +2458,7 @@ Create_sp_func::create(THD *thd, LEX_STRING db, LEX_STRING name,
|
||||||
if (item_list != NULL)
|
if (item_list != NULL)
|
||||||
arg_count= item_list->elements;
|
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);
|
qname->init_qname(thd);
|
||||||
sp_add_used_routine(lex, thd, qname, TYPE_ENUM_FUNCTION);
|
sp_add_used_routine(lex, thd, qname, TYPE_ENUM_FUNCTION);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,11 +87,12 @@ public:
|
||||||
@param thd The current thread
|
@param thd The current thread
|
||||||
@param db The database name
|
@param db The database name
|
||||||
@param name The function 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
|
@param item_list The list of arguments to the function, can be NULL
|
||||||
@return An item representing the parsed function call
|
@return An item representing the parsed function call
|
||||||
*/
|
*/
|
||||||
virtual Item* create(THD *thd, LEX_STRING db, LEX_STRING name,
|
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:
|
protected:
|
||||||
/** Constructor. */
|
/** Constructor. */
|
||||||
|
|
|
||||||
|
|
@ -6921,7 +6921,7 @@ function_call_generic:
|
||||||
|
|
||||||
builder= find_qualified_function_builder(thd);
|
builder= find_qualified_function_builder(thd);
|
||||||
DBUG_ASSERT(builder);
|
DBUG_ASSERT(builder);
|
||||||
item= builder->create(thd, $1, $3, $5);
|
item= builder->create(thd, $1, $3, true, $5);
|
||||||
|
|
||||||
if (! ($$= item))
|
if (! ($$= item))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue