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 { | ||||
|     for (uint32_t i = 0; i < cnt_; ++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; | ||||
|       } else { | ||||
|         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. | ||||
|     for (int64_t i = 0; i < sr->cnt_; 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; | ||||
|       } else { | ||||
|         const ObDatum &src = sr->cells()[i]; | ||||
| @ -1270,7 +1270,7 @@ void ObChunkDatumStore::Iterator::attach_rows( | ||||
|   if (NULL != srows) { | ||||
|     for (int64_t col_idx = 0; col_idx < exprs.count(); col_idx++) { | ||||
|       ObExpr *e = exprs.at(col_idx); | ||||
|       if (skip_const && e->is_dynamic_const_) { | ||||
|       if (skip_const && e->is_const_expr()) { | ||||
|         continue; | ||||
|       } | ||||
|       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())); | ||||
|   } else { | ||||
|     for (uint32_t i = 0; i < cnt_; ++i) { | ||||
|       if (exprs.at(i)->is_static_const_) { | ||||
|       if (exprs.at(i)->is_const_expr()) { | ||||
|         continue; | ||||
|       } else { | ||||
|         exprs.at(i)->locate_expr_datum(ctx) = cells()[i]; | ||||
|  | ||||
| @ -459,6 +459,8 @@ public: | ||||
|     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. | ||||
|   // | ||||
|   // e.g.: | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev