fix pdml bug after or expansion transformation

This commit is contained in:
obdev
2024-02-10 09:04:18 +00:00
committed by ob-robot
parent 59be123c65
commit b528857934
6 changed files with 37 additions and 27 deletions

View File

@ -419,6 +419,7 @@ int ObDelUpdStmt::deep_copy_stmt_struct(ObIAllocator &allocator,
ignore_ = other.ignore_;
has_global_index_ = other.has_global_index_;
has_instead_of_trigger_ = other.has_instead_of_trigger_;
pdml_disabled_ = other.pdml_disabled_;
}
return ret;
}
@ -443,6 +444,7 @@ int ObDelUpdStmt::assign(const ObDelUpdStmt &other)
has_global_index_ = other.has_global_index_;
has_instead_of_trigger_ = other.has_instead_of_trigger_;
ab_stmt_id_expr_ = other.ab_stmt_id_expr_;
pdml_disabled_ = other.pdml_disabled_;
}
return ret;
}

View File

@ -402,7 +402,8 @@ public:
error_log_info_(),
has_instead_of_trigger_(false),
ab_stmt_id_expr_(nullptr),
dml_source_from_join_(false)
dml_source_from_join_(false),
pdml_disabled_(false)
{ }
virtual ~ObDelUpdStmt() { }
int deep_copy_stmt_struct(ObIAllocator &allocator,
@ -469,6 +470,8 @@ public:
void set_dml_source_from_join(bool from_join) { dml_source_from_join_ = from_join; }
inline bool dml_source_from_join() const { return dml_source_from_join_; }
int check_dml_source_from_join();
bool is_pdml_disabled() const { return pdml_disabled_; }
void set_pdml_disabled() { pdml_disabled_ = true; }
protected:
common::ObSEArray<ObRawExpr*, common::OB_PREALLOCATED_NUM, common::ModulePageAllocator, true> returning_exprs_;
common::ObSEArray<ObRawExpr*, common::OB_PREALLOCATED_NUM, common::ModulePageAllocator, true> returning_into_exprs_;
@ -482,6 +485,7 @@ protected:
common::ObSEArray<ObRawExpr *, 16, common::ModulePageAllocator, true> sharding_conditions_;
ObRawExpr *ab_stmt_id_expr_; //for array binding batch execution to mark the stmt id
bool dml_source_from_join_;
bool pdml_disabled_; // pdml is disabled after some transformation like or-expansion
};
}
}