[FEAT MERGE] impl vectorization 2.0

Co-authored-by: oceanoverflow <oceanoverflow@gmail.com>
Co-authored-by: hezuojiao <hezuojiao@gmail.com>
Co-authored-by: Monk-Liu <1152761042@qq.com>
This commit is contained in:
obdev
2024-02-08 05:32:52 +00:00
committed by ob-robot
parent 64a276a23f
commit 0d0b11c0cc
592 changed files with 358124 additions and 303277 deletions

View File

@ -37,7 +37,8 @@ namespace sql
topk_limit_expr_(NULL),
topk_offset_expr_(NULL),
is_fetch_with_ties_(false),
part_cnt_(0)
part_cnt_(0),
sort_key_width_(0.0)
{}
virtual ~ObLogSort()
{}
@ -96,12 +97,14 @@ namespace sql
topk_precision_ = topk_precision;
}
inline int64_t get_topk_precision() const {return topk_precision_;}
inline double get_sort_key_width() const { return sort_key_width_; }
virtual bool is_block_op() const override { return !is_prefix_sort(); }
virtual int compute_op_ordering() override;
virtual int get_plan_item_info(PlanText &plan_text,
ObSqlPlanItem &plan_item) override;
protected:
virtual int inner_replace_op_exprs(ObRawExprReplacer &replacer);
int est_sort_key_width();
private:
OrderItem hash_sortkey_;
common::ObSEArray<OrderItem, 8, common::ModulePageAllocator, true> sort_keys_;
@ -115,6 +118,7 @@ namespace sql
ObRawExpr *topk_offset_expr_;
bool is_fetch_with_ties_;
int64_t part_cnt_;
double sort_key_width_;
};
} // end of namespace sql
} // end of namespace oceanbase