[scn] fix failure of mittest after refresh feature scn
This commit is contained in:
@ -220,7 +220,6 @@ struct ObCostTableScanInfo
|
||||
ObRangesArray ranges_; // all the ranges
|
||||
common::ObSEArray<ColumnItem, 4, common::ModulePageAllocator, true> range_columns_; // all the range columns
|
||||
common::ObSEArray<ColumnItem, 4, common::ModulePageAllocator, true> access_column_items_; // all the access columns
|
||||
common::ObSEArray<ColumnItem, 4, common::ModulePageAllocator, true> index_access_column_items_; // all the access columns
|
||||
|
||||
//这几个filter的分类参考OptimizerUtil::classify_filters()
|
||||
common::ObSEArray<ObRawExpr *, 4, common::ModulePageAllocator, true> prefix_filters_; // filters match index prefix
|
||||
@ -584,13 +583,15 @@ class ObOptEstCostModel
|
||||
public:
|
||||
const static int64_t DEFAULT_LOCAL_ORDER_DEGREE;
|
||||
const static int64_t DEFAULT_MAX_STRING_WIDTH;
|
||||
const static int64_t DEFAULT_WIDE_TABLE_ROWS_IN_ONE_BLOCK;
|
||||
const static int64_t DEFAULT_FIXED_OBJ_WIDTH;
|
||||
|
||||
struct ObCostParams
|
||||
{
|
||||
explicit ObCostParams(
|
||||
const double DEFAULT_CPU_TUPLE_COST,
|
||||
const double DEFAULT_TABLE_SCAN_CPU_TUPLE_COST,
|
||||
const double DEFAULT_TABLE_SCAN_CPU_TUPLE_COST_WIDE,
|
||||
const double DEFAULT_TABLE_SCAN_CPU_TUPLE_COST_NARROW,
|
||||
const double DEFAULT_MICRO_BLOCK_SEQ_COST,
|
||||
const double DEFAULT_MICRO_BLOCK_RND_COST,
|
||||
const double DEFAULT_PROJECT_COLUMN_SEQ_INT_COST,
|
||||
@ -638,7 +639,8 @@ public:
|
||||
const double DEFAULT_DELETE_CHECK_PER_ROW_COST
|
||||
)
|
||||
: CPU_TUPLE_COST(DEFAULT_CPU_TUPLE_COST),
|
||||
TABLE_SCAN_CPU_TUPLE_COST(DEFAULT_TABLE_SCAN_CPU_TUPLE_COST),
|
||||
TABLE_SCAN_CPU_TUPLE_COST_WIDE(DEFAULT_TABLE_SCAN_CPU_TUPLE_COST_WIDE),
|
||||
TABLE_SCAN_CPU_TUPLE_COST_NARROW(DEFAULT_TABLE_SCAN_CPU_TUPLE_COST_NARROW),
|
||||
MICRO_BLOCK_SEQ_COST(DEFAULT_MICRO_BLOCK_SEQ_COST),
|
||||
MICRO_BLOCK_RND_COST(DEFAULT_MICRO_BLOCK_RND_COST),
|
||||
PROJECT_COLUMN_SEQ_INT_COST(DEFAULT_PROJECT_COLUMN_SEQ_INT_COST),
|
||||
@ -687,8 +689,10 @@ public:
|
||||
{}
|
||||
/** 读取一行的CPU开销,基本上只包括get_next_row()操作 */
|
||||
double CPU_TUPLE_COST;
|
||||
/** 存储层吐出一行的代价 **/
|
||||
double TABLE_SCAN_CPU_TUPLE_COST;
|
||||
/** 存储层吐出一行宽表的代价 **/
|
||||
double TABLE_SCAN_CPU_TUPLE_COST_WIDE;
|
||||
/** 存储层吐出一行窄表的代价 **/
|
||||
double TABLE_SCAN_CPU_TUPLE_COST_NARROW;
|
||||
/** 顺序读取一个微块并反序列化的开销 */
|
||||
double MICRO_BLOCK_SEQ_COST;
|
||||
/** 随机读取一个微块并反序列化的开销 */
|
||||
@ -877,8 +881,6 @@ public:
|
||||
|
||||
int cost_project(double rows, const ObIArray<ColumnItem> &columns, bool is_seq, double &cost);
|
||||
|
||||
int cost_full_table_scan_project(double rows, const ObCostTableScanInfo &est_cost_info, double &cost);
|
||||
|
||||
double cost_quals(double rows, const ObIArray<ObRawExpr *> &quals, bool need_scale = true);
|
||||
|
||||
double cost_hash(double rows, const ObIArray<ObRawExpr *> &hash_exprs);
|
||||
@ -916,7 +918,7 @@ public:
|
||||
double &cost,
|
||||
double &index_back_cost);
|
||||
|
||||
protected:
|
||||
private:
|
||||
int cost_sort(const ObSortCostInfo &cost_info,
|
||||
const common::ObIArray<ObExprResType> &order_col_types,
|
||||
double &cost);
|
||||
@ -1001,11 +1003,11 @@ protected:
|
||||
|
||||
// @param[in] is_index_back 仅在对索引扫描的回表扫描进行估计时为true
|
||||
//estimate one batch table scan cost, truly estimation function
|
||||
virtual int cost_table_scan_one_batch_inner(double row_count,
|
||||
const ObCostTableScanInfo &est_cost_info,
|
||||
bool is_scan_index,
|
||||
double &res);
|
||||
protected:
|
||||
int cost_table_scan_one_batch_inner(double row_count,
|
||||
const ObCostTableScanInfo &est_cost_info,
|
||||
bool is_scan_index,
|
||||
double &res);
|
||||
private:
|
||||
const double (&comparison_params_)[common::ObMaxTC + 1];
|
||||
const double (&hash_params_)[common::ObMaxTC + 1];
|
||||
const ObCostParams &cost_params_;
|
||||
|
||||
Reference in New Issue
Block a user