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