summaryrefslogtreecommitdiff
path: root/sql/ha_partition.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/ha_partition.h')
-rw-r--r--sql/ha_partition.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index a2904562930..f5695e91ee0 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -136,7 +136,13 @@ private:
PARTITION_SHARE *share; /* Shared lock info */
#endif
+ /*
+ TRUE <=> this object was created with ha_partition::clone and doesn't
+ "own" the m_part_info structure.
+ */
+ bool is_clone;
public:
+ handler *clone(MEM_ROOT *mem_root);
virtual void set_part_info(partition_info *part_info)
{
m_part_info= part_info;
@@ -382,9 +388,8 @@ public:
any end processing needed.
*/
virtual int index_read(byte * buf, const byte * key,
- uint key_len, enum ha_rkey_function find_flag);
- virtual int index_read_idx(byte * buf, uint idx, const byte * key,
- uint key_len, enum ha_rkey_function find_flag);
+ key_part_map keypart_map,
+ enum ha_rkey_function find_flag);
virtual int index_init(uint idx, bool sorted);
virtual int index_end();
@@ -397,7 +402,8 @@ public:
virtual int index_first(byte * buf);
virtual int index_last(byte * buf);
virtual int index_next_same(byte * buf, const byte * key, uint keylen);
- virtual int index_read_last(byte * buf, const byte * key, uint keylen);
+ virtual int index_read_last(byte * buf, const byte * key,
+ key_part_map keypart_map);
/*
read_first_row is virtual method but is only implemented by
@@ -423,7 +429,8 @@ public:
private:
int common_index_read(byte * buf, const byte * key,
- uint key_len, enum ha_rkey_function find_flag);
+ key_part_map keypart_map,
+ enum ha_rkey_function find_flag);
int common_first_last(byte * buf);
int partition_scan_set_up(byte * buf, bool idx_read_flag);
int handle_unordered_next(byte * buf, bool next_same);