fix misuse const flag leads result wrong || core
This commit is contained in:
		| @ -75,7 +75,7 @@ int ObChunkDatumStore::StoredRow::to_expr_skip_const(const ObIArray<ObExpr*> &ex | |||||||
|   } else { |   } else { | ||||||
|     for (uint32_t i = 0; i < cnt_; ++i) { |     for (uint32_t i = 0; i < cnt_; ++i) { | ||||||
|       const ObExpr *expr = exprs.at(i); |       const ObExpr *expr = exprs.at(i); | ||||||
|       if (expr->is_dynamic_const_ || expr->is_static_const_) { // T_QUESTIONMARK is included in dynamic_const |       if (expr->is_const_expr()) { // T_QUESTIONMARK is included in dynamic_const | ||||||
|         continue; |         continue; | ||||||
|       } else { |       } else { | ||||||
|         expr->locate_expr_datum(ctx) = cells()[i]; |         expr->locate_expr_datum(ctx) = cells()[i]; | ||||||
|  | |||||||
| @ -1203,7 +1203,7 @@ int ObChunkDatumStore::Iterator::get_next_row_skip_const(ObEvalCtx &ctx, | |||||||
|     // logical operator, we can not add expr in CG. |     // logical operator, we can not add expr in CG. | ||||||
|     for (int64_t i = 0; i < sr->cnt_; i++) { |     for (int64_t i = 0; i < sr->cnt_; i++) { | ||||||
|       const ObExpr *expr = exprs.at(i); |       const ObExpr *expr = exprs.at(i); | ||||||
|       if (expr->is_dynamic_const_) { // T_QUESTIONMARK is included in is_dynamic_const |       if (expr->is_const_expr()) { // T_QUESTIONMARK is included in is_dynamic_const | ||||||
|         continue; |         continue; | ||||||
|       } else { |       } else { | ||||||
|         const ObDatum &src = sr->cells()[i]; |         const ObDatum &src = sr->cells()[i]; | ||||||
| @ -1270,7 +1270,7 @@ void ObChunkDatumStore::Iterator::attach_rows( | |||||||
|   if (NULL != srows) { |   if (NULL != srows) { | ||||||
|     for (int64_t col_idx = 0; col_idx < exprs.count(); col_idx++) { |     for (int64_t col_idx = 0; col_idx < exprs.count(); col_idx++) { | ||||||
|       ObExpr *e = exprs.at(col_idx); |       ObExpr *e = exprs.at(col_idx); | ||||||
|       if (skip_const && e->is_dynamic_const_) { |       if (skip_const && e->is_const_expr()) { | ||||||
|         continue; |         continue; | ||||||
|       } |       } | ||||||
|       if (OB_LIKELY(!fill_invariable_res_buf || e->is_variable_res_buf())) { |       if (OB_LIKELY(!fill_invariable_res_buf || e->is_variable_res_buf())) { | ||||||
|  | |||||||
| @ -131,7 +131,7 @@ int ObRADatumStore::StoredRow::to_expr(const common::ObIArray<ObExpr*> &exprs, | |||||||
|     LOG_WARN("datum count mismatch", K(ret), K(cnt_), K(exprs.count())); |     LOG_WARN("datum count mismatch", K(ret), K(cnt_), K(exprs.count())); | ||||||
|   } else { |   } else { | ||||||
|     for (uint32_t i = 0; i < cnt_; ++i) { |     for (uint32_t i = 0; i < cnt_; ++i) { | ||||||
|       if (exprs.at(i)->is_static_const_) { |       if (exprs.at(i)->is_const_expr()) { | ||||||
|         continue; |         continue; | ||||||
|       } else { |       } else { | ||||||
|         exprs.at(i)->locate_expr_datum(ctx) = cells()[i]; |         exprs.at(i)->locate_expr_datum(ctx) = cells()[i]; | ||||||
|  | |||||||
| @ -459,6 +459,8 @@ public: | |||||||
|     return OBJ_DATUM_STRING == obj_datum_map_; |     return OBJ_DATUM_STRING == obj_datum_map_; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  |   inline bool is_const_expr() const { return is_static_const_ || is_dynamic_const_; } | ||||||
|  |  | ||||||
|   // Evaluate all parameters, assign the first sizeof...(args) parameters to %args. |   // Evaluate all parameters, assign the first sizeof...(args) parameters to %args. | ||||||
|   // |   // | ||||||
|   // e.g.: |   // e.g.: | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev