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

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

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>

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>

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>

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>

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>

Fixed indentation in ha_partition.cc when assigning variables

f595ce1... by Monty <email address hidden>

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>

Added more DBUG information

Done to simplify spider patch for direct aggregates

64ef56f... by Monty <email address hidden>

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