1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-10-31 18:30:33 +03:00

feat(joblist): descend into SelectFilter even if it contains correlated sub.

This commit is contained in:
drrtuy
2025-09-12 16:32:48 +00:00
parent 9fe37d5919
commit 9cbb160130
3 changed files with 46 additions and 5 deletions

View File

@@ -48,6 +48,7 @@ using namespace joblist;
#include "functioncolumn.h"
#include "simplecolumn.h"
#include "simplefilter.h"
#include "selectfilter.h"
#include "aggregatecolumn.h"
#include "constantfilter.h"
#include "../../utils/windowfunction/windowfunction.h"
@@ -95,12 +96,13 @@ void getSimpleColsExtended(execplan::ParseTree* n, void* obj)
{
vector<SimpleColumn*>* list = reinterpret_cast<vector<SimpleColumn*>*>(obj);
TreeNode* tn = n->data();
SimpleColumn* sc = dynamic_cast<SimpleColumn*>(tn);
FunctionColumn* fc = dynamic_cast<FunctionColumn*>(tn);
ArithmeticColumn* ac = dynamic_cast<ArithmeticColumn*>(tn);
SimpleFilter* sf = dynamic_cast<SimpleFilter*>(tn);
ConstantFilter* cf = dynamic_cast<ConstantFilter*>(tn);
AggregateColumn* agc = dynamic_cast<AggregateColumn*>(tn);
ConstantFilter* cf = dynamic_cast<ConstantFilter*>(tn);
FunctionColumn* fc = dynamic_cast<FunctionColumn*>(tn);
SimpleColumn* sc = dynamic_cast<SimpleColumn*>(tn);
SelectFilter* selectFilter = dynamic_cast<SelectFilter*>(tn);
SimpleFilter* sf = dynamic_cast<SimpleFilter*>(tn);
if (sc)
{
@@ -126,6 +128,11 @@ void getSimpleColsExtended(execplan::ParseTree* n, void* obj)
sf->setSimpleColumnListExtended();
list->insert(list->end(), sf->simpleColumnListExtended().begin(), sf->simpleColumnListExtended().end());
}
else if (selectFilter)
{
selectFilter->setSimpleColumnListExtended();
list->insert(list->end(), selectFilter->simpleColumnListExtended().begin(), selectFilter->simpleColumnListExtended().end());
}
else if (cf)
{
cf->setSimpleColumnListExtended();