summaryrefslogtreecommitdiff
path: root/sql/ha_partition.h
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@askmonty.org>2018-01-29 11:01:14 +0400
committerAlexey Botchkov <holyfoot@askmonty.org>2018-01-29 11:01:14 +0400
commitb4a2baffa82e5c07b96a1c752228560dcac1359b (patch)
tree5520b02f5c3bd21bf36f1fdf00a85dc9143c7fe5 /sql/ha_partition.h
parent041a32abcdd9791761a15d93e77ff2ea7dbc9d7c (diff)
downloadmariadb-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.h6
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);