fix extracting wrong query range with mutable function
This commit is contained in:
		| @ -1711,18 +1711,21 @@ public: | ||||
|   int add_child_flags(const ObExprInfo &flags); | ||||
|   bool has_flag(ObExprInfoFlag flag) const; | ||||
|   int clear_flag(int32_t flag); | ||||
|   /**                                                   +-is_static_scalar_const_expr | ||||
|    *                               (1、1+2、sysdate)   |     (1,not for[1,2,3]) | ||||
|   /**                                                   +-is_immutable_const_expr-+ | ||||
|    *                               (1、1+2、sysdate)   |        (1、1+2) | ||||
|    *                             +-is_static_const_expr-+ | ||||
|    *                             | | ||||
|    * is_const_or_calculable_expr-+ | ||||
|    *    (1、1+2、2+?、sysdate)   | | ||||
|    *                             +-is_dynamic_const_expr | ||||
|    *                                 (2 + ?) | ||||
|    * immutable const: is const for all queries | ||||
|    * static const: is const in a query sql | ||||
|    * dynamic const: is const in a query block | ||||
|    */ | ||||
|   bool is_param_expr() const; | ||||
|   bool cnt_param_expr() const; | ||||
|   bool is_const_expr() const; | ||||
|   bool is_immutable_const_expr() const; | ||||
|   bool is_static_const_expr() const; | ||||
|   bool is_static_scalar_const_expr() const; | ||||
|   bool is_dynamic_const_expr() const; | ||||
| @ -1966,16 +1969,17 @@ inline bool ObRawExpr::is_param_expr() const | ||||
|   return has_flag(IS_STATIC_PARAM) || has_flag(IS_DYNAMIC_PARAM); | ||||
| } | ||||
|  | ||||
| inline bool ObRawExpr::cnt_param_expr() const | ||||
| { | ||||
|   return has_flag(CNT_STATIC_PARAM) || has_flag(CNT_DYNAMIC_PARAM); | ||||
| } | ||||
|  | ||||
| inline bool ObRawExpr::is_const_expr() const | ||||
| { | ||||
|   return has_flag(IS_CONST) || has_flag(IS_CONST_EXPR); | ||||
| } | ||||
|  | ||||
| inline bool ObRawExpr::is_immutable_const_expr() const | ||||
| { | ||||
|   // todo: support recognize 1+1 by introducing new expr flag like IS_MUTABLE_FUNC | ||||
|   return is_const_raw_expr() && !is_param_expr(); | ||||
| } | ||||
|  | ||||
| inline bool ObRawExpr::is_static_const_expr() const | ||||
| { | ||||
|   return is_const_expr() && | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 yinyj17
					yinyj17