fix copy shared exec param bug

This commit is contained in:
obdev
2024-02-07 06:56:08 +00:00
committed by ob-robot
parent 15e2161984
commit 2f4a337e83
3 changed files with 37 additions and 9 deletions

View File

@ -26,6 +26,9 @@ public:
virtual int check_need_copy(const ObRawExpr *old_expr, ObRawExpr *&new_expr) = 0;
// check if old expr has already been copied, and if it has been copied, takes it directly.
virtual int find_in_copy_context(const ObRawExpr *old_expr, ObRawExpr *&new_expr) = 0;
virtual int do_copy_expr(const ObRawExpr *old_expr, ObRawExpr *&new_expr) = 0;
virtual bool deep_copy_attributes() const { return false; }
@ -76,6 +79,8 @@ public:
int do_copy_expr(const ObRawExpr *old_expr, ObRawExpr *&new_expr) override;
bool deep_copy_attributes() const { return true; }
int find_in_copy_context(const ObRawExpr *old_expr, ObRawExpr *&new_expr) override;
};
/**
@ -154,6 +159,8 @@ public:
int get_copied_exprs(ObIArray<std::pair<ObRawExpr *, ObRawExpr *>> &from_to_exprs);
int find_in_copy_context(const ObRawExpr *old_expr, ObRawExpr *&new_expr) override;
private:
int add_expr(const ObRawExpr *from, const ObRawExpr *to);