[Feature] [Lateral-View] support outer combinator of table function (#9147)

This commit is contained in:
Pxl
2022-04-24 12:09:40 +08:00
committed by GitHub
parent 4e1b75f5e7
commit 2d83167e50
17 changed files with 269 additions and 315 deletions

View File

@ -30,6 +30,8 @@ namespace doris {
// Currently, the memory allocated from table function is from malloc directly.
class TableFunctionState {};
constexpr auto COMBINATOR_SUFFIX_OUTER = "_outer";
class ExprContext;
class TupleRow;
class TableFunction {
@ -99,6 +101,14 @@ public:
}
bool is_outer() const { return _is_outer; }
void set_outer() {
if (is_outer()) {
return;
}
_is_outer = true;
_fn_name += COMBINATOR_SUFFIX_OUTER;
}
bool current_empty() const { return _is_current_empty; }
protected:
@ -115,7 +125,6 @@ protected:
// the size of current result
int64_t _cur_size = 0;
// set _is_outer to false for explode function, and should not return tuple while array is null or empty
bool _is_outer = true;
bool _is_outer = false;
};
} // namespace doris