diff --git a/src/sql/rewrite/ob_query_range_define.cpp b/src/sql/rewrite/ob_query_range_define.cpp index 7f3a5aac5..94d2bf148 100644 --- a/src/sql/rewrite/ob_query_range_define.cpp +++ b/src/sql/rewrite/ob_query_range_define.cpp @@ -608,12 +608,14 @@ int ObPreRangeGraph::preliminary_extract_query_range(const ObIArray const ColumnIdInfoMap *geo_column_id_map /* = NULL*/) { int ret = OB_SUCCESS; - ObRawExprFactory expr_factory(allocator_); ObQueryRangeCtx ctx(exec_ctx); - if (OB_FAIL(fill_column_metas(range_columns))) { + if (OB_ISNULL(exec_ctx)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("get unexpeced null", K(ret), K(exec_ctx)); + } else if (OB_FAIL(fill_column_metas(range_columns))) { LOG_WARN("failed to fill column metas"); } else if (OB_FAIL(ctx.init(this, range_columns, expr_constraints, - params, &expr_factory, + params, exec_ctx->get_expr_factory(), phy_rowid_for_table_loc, ignore_calc_failure, index_prefix, geo_column_id_map))) { LOG_WARN("failed to init query range context");