26 const std::pair<shared::TableKey, shared::TableKey>
30 std::unordered_set<shared::TableKey> table_keys;
34 table_keys.emplace(cv->getTableKey());
36 if (table_keys.size() == 2) {
37 const auto inner_table_key =
geo_arg_cvs_.front()->getTableKey();
43 if (table_key != inner_table_key) {
44 outer_table_key = table_key;
47 return std::make_pair(inner_table_key, outer_table_key);
60 for (
size_t i = 0; i < func_oper->
getArity(); i++) {
61 if (
auto cv = dynamic_cast<const Analyzer::ColumnVar*>(func_oper->
getArg(i))) {
70 if (
auto cv = dynamic_cast<const Analyzer::ColumnVar*>(arg)) {
void * visitFunctionOper(const Analyzer::FunctionOper *func_oper) const override
const std::vector< const Analyzer::ColumnVar * > & getGeoArgCvs() const
virtual std::vector< Analyzer::Expr * > getChildExprs() const
void * visitGeoExpr(const Analyzer::GeoExpr *geo_expr) const override
const std::string & getGeoFunctionName() const
std::vector< const Analyzer::ColumnVar * > geo_arg_cvs_
const Analyzer::Expr * getArg(const size_t i) const
std::string getName() const
std::string geo_func_name_
const std::pair< shared::TableKey, shared::TableKey > getTableIdsOfGeoExpr() const