maria:bb-10.2-spider-extra-jacob

Last commit made on 2017-11-10
Get this branch:
git clone -b bb-10.2-spider-extra-jacob https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.2-spider-extra-jacob
Repository:
lp:maria

Recent commits

26211d5... by Jacob Mathew on 2017-10-14

Adding direct update/delete to the server and to the partition engine.

Contains Spiral patches:
- Spiral Patch 006: 006_mariadb-10.2.0.direct_update_rows.diff MDEV-7704
- Spiral Patch 008: 008_mariadb-10.2.0.partition_direct_update.diff MDEV-7706
- Spiral Patch 010: 010_mariadb-10.2.0.direct_update_rows2.diff MDEV-7708
- Spiral Patch 011: 011_mariadb-10.2.0.aggregate.diff MDEV-7709
- Spiral Patch 027: 027_mariadb-10.2.0.force_bulk_update.diff MDEV-7724
- Spiral Patch 061: 061_mariadb-10.2.0.mariadb-10.1.8.diff MDEV-12870

- Add support for direct update and direct delete requests. A direct
  update/delete request handles all qualified rows in a single operation,
  rather than one row at a time.

- This commit has the following differences compared to the original patches:
  - Most of the parameters of the new functions are unnecessary. The
    unnecessary parameters have been removed.
  - Changed bit positions for new handler flags upon consideration of
    handler flags not needed by other Spiral patches and handler flags
    merged from MySQL.

6e2e040... by Jacob Mathew on 2017-10-13

Spiral Patch 020: 020_mariadb-10.2.0.bulk_access.diff MDEV-7718

- Support for bulk access in the partition engine.
- This patch has the following differences compared to the original patch:
  - Omitted the parts of the patch that pertain to direct update and
    direct delete, which are a different feature. The omitted changes will
    be committed as part of the direct update/delete feature.
  - Omitted the additional_lock() function which is not called anywhere.
  - Reduced the size of and code duplication in "pre_" functions by using the
    m_pre_calling variable.

7c554e1... by Monty <email address hidden> on 2017-09-29

Fix index scan cleanup in the partition engine.

Spiral Patch 057: 057_mariadb-10.2.0.partition_index_end.diff MDEV-12999

Original author: Kentoku SHIBA
First reviewer: Jacob Mathew
Second reviewer: Michael Widenius

04ef45c... by Monty <email address hidden> on 2017-09-28

Adding option to tell that cmp_ref handler call is expensive

- In Spider, calling cmp_ref() can be very expensive. In ha_partition.cc
  we don't anymore sort rows according to position for the Spider
  engine.
- Removed Spider specific call info(HA_EXTRA_STARTING_ORDERED_INDEX_SCAN)
  from handle_ordered_index_scan(). It's caused performance issues and
  does not change results for queries with ORDER BY.
- The visible effect of this patch is that for some storage engines,
  rows may be returned in a different order if there is no ORDER BY clause.

- Based in Spiral Patch 052:
  052_mariadb-10.2.0.add_partition_skip_pk_sort_for_non_clustered_index.diff
  MDEV-7748
- The major difference from original patch is that there is no variable to
  get the old behaviour.

- Other things:
  - Optimized ha_partition::cmp_ref() and cmp_part_ids() to make them
    simpler and faster.
  - Changed arguments to cmp_key_part_id() to be same as cmp_key_rowid_part_id
    to simplify code.

Original author: Kentoku SHIBA
First reviewer: Jacob Mathew
Second reviewer: Michael Widenius

611b1c7... by Monty <email address hidden> on 2017-09-27

Adding support for auto_increment in the partition engine.

Contains Spiral patches:
- Spiral Patch 022: 022_mariadb-10.2.0.auto_increment.diff MDEV-7720
- Spiral Patch 030: 030_mariadb-10.2.0.partition_auto_inc_init.diff MDEV-7726

These patches have the following differences compared to the original
patches:
- Added the new #defines for the feature in spd_environ.h instead of in
  handler.h because these #defines are needed by Spider and are not needed by
  the server.
- Cleaned up code related to the removed variable m_need_info_for_auto_inc
. Changed variable assignment in lock_auto_increment() and
  unlock_auto_increment() so that the assignments are done under locks.
- Added a test case.
- Added test result changes resulting from a bug that was fixed by these
  patches.

Original author: Kentoku SHIBA
First reviewer: Jacob Mathew
Second reviewer: Michael Widenius

4ed3b91... by Monty <email address hidden> on 2017-09-25

Adding Full Text Search support to partitions

Contains Spiral patches:
- Spiral Patch 007: 007_mariadb-10.2.0.partition_fulltext.diff MDEV-7705
- Spiral Patch 038: 038_mariadb-10.2.0.partition_fulltext2.diff MDEV-7734

- This commit has the following differences compared to the original patches:
  - Added necessary full text search cleanup at the storage engine layer
    that was omitted in the original patch.
  - Added test case.
- A lot of code cleanups to make the code notable smaller.
- Changed SQL code to use ha_ft_end() instead of ft_end()

Original author: Kentoku SHIBA
First reviewer: Jacob Mathew
Second reviewer: Michael Widenius

052e57b... by Monty <email address hidden> on 2017-09-25

Fixed indentation in ha_partition.cc when assigning variables

f595ce1... by Monty <email address hidden> on 2017-09-09

Add direct aggregates

Spider patches 026 (MDEV-7723), 031 (MDEV-7727) and 058 (MDEV-12532)

This allows the storage engine to internally compute sum and count
operations.

- Enhance sum items to be able to store the sum value directly.
- return_record_by_parent() is enabled in spider as
  HANDLER_HAS_DIRECT_AGGREGATE is defined
- Added spd_environ.h to spider. This is loaded first to ensure that all
  MariaDB specific defines that are used by include files are properly
  defined.
- This code is tested by the existing spider tests direct_aggregate.test
  and direct_aggregate_part.test and also partition.test

74adf88... by Monty <email address hidden> on 2017-07-22

Added more DBUG information

Done to simplify spider patch for direct aggregates

64ef56f... by Monty <email address hidden> on 2017-07-05

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