Merge branch '2.2' into develop

This commit is contained in:
Markus Mäkelä
2018-04-13 14:53:00 +03:00
19 changed files with 457 additions and 80 deletions

View File

@ -1074,7 +1074,8 @@ public:
if (pExpr->flags & EP_xIsSelect)
{
update_field_infos_from_subselect(pAliases, pExpr->x.pSelect, pExclude);
ss_dassert(pAliases);
update_field_infos_from_subselect(*pAliases, pExpr->x.pSelect, pExclude);
if (zName)
@ -1299,7 +1300,7 @@ public:
while (pPrior)
{
update_field_infos_from_subselect(&aliases, pPrior, pExclude,
update_field_infos_from_subselect(aliases, pPrior, pExclude,
IGNORE_COMPOUND_SELECTS);
pPrior = pPrior->pPrior;
}
@ -1307,12 +1308,12 @@ public:
}
}
void update_field_infos_from_subselect(QcAliases* pAliases,
void update_field_infos_from_subselect(const QcAliases& existing_aliases,
const Select* pSelect,
const ExprList* pExclude,
compound_approach_t compound_approach = ANALYZE_COMPOUND_SELECTS)
{
QcAliases aliases(*pAliases);
QcAliases aliases(existing_aliases);
update_field_infos_from_select(aliases, pSelect, pExclude, compound_approach);
}
@ -1325,7 +1326,8 @@ public:
if (pCte->pSelect)
{
update_field_infos_from_subselect(pAliases, pCte->pSelect, NULL);
ss_dassert(pAliases);
update_field_infos_from_subselect(*pAliases, pCte->pSelect, NULL);
}
}
}
@ -2064,7 +2066,8 @@ public:
if (pExprList)
{
update_field_infos_from_exprlist(NULL, pExprList, NULL);
QcAliases aliases;
update_field_infos_from_exprlist(&aliases, pExprList, NULL);
}
exposed_sqlite3SrcListDelete(pParse->db, pName);

View File

@ -100,3 +100,6 @@ SELECT '2005-01-01' - INTERVAL 1 SECOND;
# MXS-1730
SELECT id as engine FROM users WHERE id = 1;
# MXS-1787
CALL p1((SELECT f1()), ?);