1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Adding multi_range_read support to partitions

Other things:
- Cleanup of allocated bitmaps done in open(), which
  simplifies init_partition_bitmaps()
- Add needed defines in ha_spider.cc to enable new spider code
- Fixed some DBUG_PRINT() to be consistent with normal code
- Removed end space
- The changes in test cases partition_innodb, partition_range,
  partition_pruning etc are becasue partitions can now more exactly
  calculate the number of rows in a range.

Contains spider patches:
014,015,023,033,035,037,040,042,044,045,049,050,051,053,059
This commit is contained in:
Monty
2017-07-05 18:20:06 +03:00
parent d5268a610a
commit 8eeb689e9f
26 changed files with 2486 additions and 224 deletions

View File

@ -3095,6 +3095,7 @@ public:
Number of rows in table. It will only be called if
(table_flags() & (HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT)) != 0
*/
virtual int pre_records() { return 0; }
virtual ha_rows records() { return stats.records; }
/**
Return upper bound of current number of records in the table
@ -3172,6 +3173,37 @@ public:
DBUG_ASSERT(FALSE);
return HA_ERR_WRONG_COMMAND;
}
virtual int pre_index_read_map(const uchar *key,
key_part_map keypart_map,
enum ha_rkey_function find_flag,
bool use_parallel)
{ return 0; }
virtual int pre_index_first(bool use_parallel)
{ return 0; }
virtual int pre_index_last(bool use_parallel)
{ return 0; }
virtual int pre_index_read_last_map(const uchar *key,
key_part_map keypart_map,
bool use_parallel)
{ return 0; }
/*
virtual int pre_read_multi_range_first(KEY_MULTI_RANGE **found_range_p,
KEY_MULTI_RANGE *ranges,
uint range_count,
bool sorted, HANDLER_BUFFER *buffer,
bool use_parallel);
*/
virtual int pre_multi_range_read_next(bool use_parallel)
{ return 0; }
virtual int pre_read_range_first(const key_range *start_key,
const key_range *end_key,
bool eq_range, bool sorted,
bool use_parallel)
{ return 0; }
virtual int pre_ft_read(bool use_parallel)
{ return 0; }
virtual int pre_rnd_next(bool use_parallel)
{ return 0; }
/**
@brief
Positions an index cursor to the index specified in the
@ -3467,6 +3499,7 @@ public:
return 0;
}
virtual void set_part_info(partition_info *part_info) {return;}
virtual void return_record_by_parent() {return;}
virtual ulong index_flags(uint idx, uint part, bool all_parts) const =0;