mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
WL#2985 "Partition Pruning"
sql/ha_ndbcluster.cc:
WL#2985 "Partition Pruning": added part_info->used_partitions initialization
sql/ha_partition.cc:
WL#2985 "Partition Pruning": added part_info->used_partitions initialization
sql/handler.h:
WL#2985 "Partition Pruning":
Added function prototypes
in partition_info:
- Added 'used_partitions' bitmap
- Added comments
sql/item.h:
WL#2985 "Partition Pruning":
- added enum monotonicity_info
- added virtual Item::get_monotonicity_info()
sql/item_timefunc.cc:
WL#2985 "Partition Pruning":
- added Item_func_to_days::get_monotonicity_info()
- added Item_func_year::get_monotonicity_info()
sql/item_timefunc.h:
WL#2985 "Partition Pruning":
- added Item_func_to_days::get_monotonicity_info()
- added Item_func_year::get_monotonicity_info()
sql/opt_range.cc:
WL#2985 "Partition Pruning":
- Split out PARAM structure into PARAM and RANGE_OPT_PARAM part.
- Added partition pruning module code.
sql/opt_range.h:
WL#2985 "Partition Pruning":
Added prune_partitions() function declaration. This is the entry point for partition pruning
module
sql/sql_class.cc:
WL#2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
sql/sql_lex.h:
WL#2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
sql/sql_partition.cc:
WL#2985 "Partition Pruning":
- Added get_list_array_idx_for_endpoint and get_range_... functions to support partition
pruning on "partition_field < const"-like intervals.
- Added partition_info::used_partitions bitmap.
- Added make_used_partitions_str function
- Fixed BUG#15819
sql/sql_select.cc:
WL#2985 "Partition Pruning":
- Added prune_partitions() invocation right before the range analysis
- Added code to handle return value from prune_partitions()
- Added support for "EXPLAIN PARTITIONS SELECT ..."
sql/sql_yacc.yy:
#2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
This commit is contained in:
@@ -249,6 +249,7 @@ public:
|
||||
|
||||
|
||||
struct st_qsel_param;
|
||||
class PARAM;
|
||||
class SEL_ARG;
|
||||
|
||||
/*
|
||||
@@ -283,12 +284,12 @@ protected:
|
||||
QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table,
|
||||
struct st_table_ref *ref,
|
||||
ha_rows records);
|
||||
friend bool get_quick_keys(struct st_qsel_param *param,
|
||||
friend bool get_quick_keys(PARAM *param,
|
||||
QUICK_RANGE_SELECT *quick,KEY_PART *key,
|
||||
SEL_ARG *key_tree,
|
||||
char *min_key, uint min_key_flag,
|
||||
char *max_key, uint max_key_flag);
|
||||
friend QUICK_RANGE_SELECT *get_quick_select(struct st_qsel_param*,uint idx,
|
||||
friend QUICK_RANGE_SELECT *get_quick_select(PARAM*,uint idx,
|
||||
SEL_ARG *key_tree,
|
||||
MEM_ROOT *alloc);
|
||||
friend class QUICK_SELECT_DESC;
|
||||
@@ -718,4 +719,8 @@ QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table,
|
||||
ha_rows records);
|
||||
uint get_index_for_order(TABLE *table, ORDER *order, ha_rows limit);
|
||||
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
bool prune_partitions(THD *thd, TABLE *table, Item *pprune_cond);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user