fix lob pushdown problem
Co-authored-by: chaser-ch <chaser.ch@antgroup.com>
This commit is contained in:
parent
6f294fda6b
commit
ab3056c41a
@ -163,12 +163,18 @@ int ObPushdownFilterConstructor::is_white_mode(const ObRawExpr* raw_expr, bool &
|
||||
} else if (ObRawExpr::EXPR_COLUMN_REF != child->get_expr_class()) {
|
||||
need_check = false;
|
||||
} else {
|
||||
const ObObjMeta &col_meta = child->get_result_meta();
|
||||
for (int64_t i = 1; OB_SUCC(ret) && need_check && i < raw_expr->get_param_count(); i++) {
|
||||
if (OB_ISNULL(child = raw_expr->get_param_expr(i))) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("Unexpected null child expr", K(ret), K(i));
|
||||
} else {
|
||||
need_check = child->is_const_expr();
|
||||
if (need_check) {
|
||||
const ObObjMeta ¶m_meta = child->get_result_meta();
|
||||
need_check = param_meta.is_null() ||
|
||||
(col_meta.get_type() == param_meta.get_type() && col_meta.get_collation_type() == param_meta.get_collation_type());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ int ObColMap::init(const int64_t col_count)
|
||||
STORAGE_LOG(WARN, "ObColMap init twice", K(ret));
|
||||
} else if (count <= FINAL_LEVEL_MAX_COL_NUM) {
|
||||
if (OB_UNLIKELY(count > FIRST_LEVEL_MAX_COL_NUM)) {
|
||||
if (NULL == (ptr = ob_malloc(sizeof(ColMapFinal)))) {
|
||||
if (NULL == (ptr = ob_malloc(sizeof(ColMapFinal), ObModIds::OB_COL_MAP))) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
STORAGE_LOG(ERROR, "fail to allocate memory for column_ids map", K(ret));
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user