diff options
author | Alexey Botchkov <holyfoot@askmonty.org> | 2018-01-29 11:01:14 +0400 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2018-01-29 11:01:14 +0400 |
commit | b4a2baffa82e5c07b96a1c752228560dcac1359b (patch) | |
tree | 5520b02f5c3bd21bf36f1fdf00a85dc9143c7fe5 /sql/ha_partition.h | |
parent | 041a32abcdd9791761a15d93e77ff2ea7dbc9d7c (diff) | |
download | mariadb-git-b4a2baffa82e5c07b96a1c752228560dcac1359b.tar.gz |
MDEV-11084 Select statement with partition selection against MyISAM table opens all partitions.
Now we don't open partitions if it was explicitly cpecified.
ha_partition::m_opened_partition bitmap added to track
partitions that were actually opened.
Diffstat (limited to 'sql/ha_partition.h')
-rw-r--r-- | sql/ha_partition.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/ha_partition.h b/sql/ha_partition.h index ac41de16f20..66a70348cfd 100644 --- a/sql/ha_partition.h +++ b/sql/ha_partition.h @@ -385,6 +385,8 @@ private: /** partitions that returned HA_ERR_KEY_NOT_FOUND. */ MY_BITMAP m_key_not_found_partitions; bool m_key_not_found; + List<String> *m_partitions_to_open; + MY_BITMAP m_opened_partitions; public: handler **get_child_handlers() { @@ -836,6 +838,10 @@ public: virtual int info(uint); void get_dynamic_partition_info(PARTITION_STATS *stat_info, uint part_id); + void set_partitions_to_open(List<String> *partition_names); + int change_partitions_to_open(List<String> *partition_names); + int open_read_partitions(char *name_buff, size_t name_buff_size, + handler **sample); virtual int extra(enum ha_extra_function operation); virtual int extra_opt(enum ha_extra_function operation, ulong cachesize); virtual int reset(void); |