- 03 Dec, 2017 20 commits
-
-
Monty authored
Includes Spider patches - 062_mariadb-10.2.0.direct_join_1and3.diff - 063_mariadb-10.2.0.direct_join_for_single_partition.diff - Test cases from Kentoku Allows Spider to push full joins to the Spider engine trough the create_group_by interface. Other things: - Increased MYSQL_VERSION_ID to check for 10211 (latest 10.2 version) - Fix for const_table at calling create_group_by(). Original author: Kentoku SHIBA
-
Jacob Mathew authored
Signed-off-by: Monty <monty@mariadb.org>
-
Kentoku SHIBA authored
New features in 3.3.13 are: - Join Push Down for 1 by 1 table and single partition.
-
Kentoku SHIBA authored
Add support for direct update and direct delete requests for spider. A direct update/delete request handles all qualified rows in a single operation rather than one row at a time. Contains Spiral patches: 006_mariadb-10.2.0.direct_update_rows.diff MDEV-7704 008_mariadb-10.2.0.partition_direct_update.diff MDEV-7706 010_mariadb-10.2.0.direct_update_rows2.diff MDEV-7708 011_mariadb-10.2.0.aggregate.diff MDEV-7709 027_mariadb-10.2.0.force_bulk_update.diff MDEV-7724 061_mariadb-10.2.0.mariadb-10.1.8.diff MDEV-12870 - The 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. - Added info_push() (Was originally part of bulk access patch) - Didn't include code related to handler socket - Added HA_CAN_DIRECT_UPDATE_AND_DELETE Original author: Kentoku SHIBA First reviewer: Jacob Mathew Second reviewer: Michael Widenius
-
Michael Widenius authored
-
Michael Widenius authored
- Ensure that var= doesn't have a space before = - Fixed DBUG_PRINT to use %u for unsigned types - Use "enter" when printing function arguments - Fixed typos - Added some extra DBUG_PRINT - Removed not needed assignment
-
Monty authored
This is about adding more options to force slave retries Two new variables has been added: slave_transaction_retry_errors - Tells the slave thread to retry transaction for replication when a query event returns an error from the provided list. Deadlock and elapsed lock wait timeout errors are automatically added to this list slave-transaction-retry-interval - Interval of the slave SQL thread will retry a transaction in case it failed with a deadlock or elapsed lock wait timeout or listed in slave_transaction_retry_errors Other changes: - Simplifed code for slave_skip_errors (to be aligned with slave_transaction_retry_errors) - Renamed print_slave_skip_errors() to make_slave_skip_errors_printable() - Remove printing error from init_slave_skip_errors as my_bitmap_init() will do that if needed. - Generalize has_temporary_error()
-
Monty authored
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
-
Monty authored
- 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 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
-
Monty authored
Contains Spiral patches: 022_mariadb-10.2.0.auto_increment.diff MDEV-7720 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
-
Monty authored
Contains Spiral patches: 007_mariadb-10.2.0.partition_fulltext.diff MDEV-7705 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
-
Monty authored
-
Monty authored
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
-
Monty authored
Done to simplify spider patch for direct aggregates
-
Monty authored
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
-
Monty authored
Allow partition engines to access table->s->connect_string for engines that uses HTON_CAN_READ_CONNECT_STRING_IN_PARTITION Don't reset table->s->connect_string in ha_partition::open
-
Monty authored
Added Spider patches: 003_mariadb-10.0.15.vp.diff 060_mariadb-10.2.0.partition_reset_top_table_fields.diff - Support HA_EXTRA_ADD_CHILDREN_LIST,HA_EXTRA_ATTACH_CHILDREN, HA_EXTRA_IS_ATTACHED_CHILDREN and HA_EXTRA_DETACH_CHILDREN in partition handler for handlers that has HA_CAN_MULTISTEPL_MERGE flag - Added HA_CAN_MULTISTEPL_MERGE to MERGE handler. - Added handler::get_child_handlers() - Change m_num_lock to contain total number of locks. This was needed as we now adjust number of locks when extra(HA_EXTRA_ATTACH_CHILDREN) is called.
-
Monty authored
- Enable HA_EXTRA_WRITE_CAN_REPLACE and HA_EXTRA_WRITE_CANNOT_REPLACE for partition engine.
-
Monty authored
- Added cond_push() and cond_pop() to ha_partition.cc
-
Monty authored
013_mariadb-10.0.15.vp_handler.diff 034_mariadb-10.0.15.vp_handler2.diff 005_mariadb-10.0.15.hs.diff 041_mariadb-10.0.15.vp_handler2.diff + Fixes from Kentoku + Added handler/suite.pm and handler/suite.opt to be able to run test cases in spider/handler
-
- 02 Dec, 2017 4 commits
-
-
Monty authored
Also changed Unique row not found to use uppercase first. This was done to make these messages consistent with the rest
-
Monty authored
- mysql_install_db now prints position to error file, if log-error is used - Warning about compatibility now mentions MySQL 5.6 and 5.7 - Give warning if --show_compatibility_56 is used
-
Monty authored
-
Monty authored
This was done to make thing consistent. It gives the additional benefit that EXPLAIN EXTENDED now treat null_tables like constant's and replaces columns with NULL, in a similar way that it replaces columns with constants for constant tables. - Null tables are tables where all columns are always NULL. The most common NULL TABLE is a table used in a LEFT_JOIN that is never true. - All result changes comes from replacing columns with NULL for null_tables. - "Impossible where" is now also shows constants for const columns. - Removed duplicated s->type= JT_CONST - Reset found_const_table_map when JOIN is created (safety fix)
-
- 01 Dec, 2017 4 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
srv_purge_wakeup(): If thd_destructor_proxy has initiated the first step of shutdown, ensure that all purge threads terminate. logs_empty_and_mark_files_at_shutdown(): Add a debug assertion. (The purge threads should have been shut down already before this step.)
-
- 30 Nov, 2017 3 commits
-
-
Vladislav Vaintroub authored
(possibly intermittent) checksum mismatch.
-
Sergey Vojtovich authored
trx_set_rw_mode() is never called for read-only transactions, this is guarded by callers. Removing this condition from critical section immediately gives 5% scalability improvement in OLTP index updates benchmark.
-
Marko Mäkelä authored
-
- 29 Nov, 2017 6 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
is detected. The checksum mismatch can be due to partial write, thus retry the read
-
Aleksey Midenkov authored
From comment in unreg.h: Types of values in the MariaDB extra2 frm segment. Each value is written as type: 1 byte length: 1 byte (1..255) or \0 and 2 bytes. binary value of the 'length' bytes. length == 1 is valid.
-
Alexander Barkov authored
-
Vicențiu Ciorbaru authored
Window is a reserved keyword according to SQL Standard 2016. However, we can make the grammar slightly flexible by allowing WINDOW keyword everywhere except table aliases. Change yacc grammar to separate between all keywords and table_alias keywords.
-
Alexander Barkov authored
1. Removing data type specific constants from enum_item_param_state, adding SHORT_DATA_VALUE instead. 2. Replacing tests for Item_param::state for the removed constants to tests for Type_handler::cmp_type() against {INT|REAL|TIME|DECIAML}_RESULT. Deriving Item_param::PValue from Type_handler_hybrid_field_type, to store the data type handler of the current value of the parameter. 3. Moving Item_param::decimal_value and Item_param::str_value_ptr to Item_param::PValue. Adding Item_param::PValue::m_string and changing Item_param to use it to store string values, instead of Item::str_value. The intent is to replace Item_param::value to a st_value based implementation in the future, to avoid duplicate code. Adding a sub-class Item::PValue_simple, to implement Item_param::PValue::swap() easier. Remaming Item_basic_value::fix_charset_and_length_from_str_value() to fix_charset_and_length() and adding the "CHARSET_INFO" pointer parameter, instead of getting it directly from item->str_value.charset(). Changing Item_param to pass value.m_string.charset() instead of str_value.charset(). Adding a String argument to the overloaded fix_charset_and_length_from_str_value() and changing Item_param to pass value.m_string instead of str_value. 4. Replacing the case in Item_param::save_in_field() to a call for Type_handler::Item_save_in_field(). 5. Adding new methods into Item_param::PValue: val_real(), val_int(), val_decimal(), val_str(). Changing the corresponding Item_param methods to use these new Item_param::PValue methods internally. Adding a helper method Item_param::can_return_value() and removing duplicate code in Item_param::val_xxx(). 6. Removing value.set_handler() from Item_param::set_conversion() and Type_handler_xxx::Item_param_set_from_value(). It's now done inside Item_param::set_param_func(), Item_param::set_value() and Item_param::set_limit_clause_param(). 7. Changing Type_handler_int_result::Item_param_set_from_value() to set max_length using attr->max_length instead of MY_INT64_NUM_DECIMAL_DIGITS, to preserve the data type of the assigned expression more precisely. 8. Adding Type_handler_hybrid_field_type::swap(), using it in Item_param::PValue::swap(). 9. Moving the data-type specific code from Item_param::query_val_str(), Item_param::eq(), Item_param::clone_item() to Item_param::value_query_type_str(), Item_param::value_eq(), Item_param::value_clone_item(), to split the "state" dependent code and the data type dependent code. Later we'll split the data type related code further and add new methods in Type_handler. This will be done after we replace Item_param::PValue to st_value. 10. Adding asserts into set_int(), set_double(), set_decimal(), set_time(), set_str(), set_longdata() to make sure that the value set to Item_param corresponds to the previously set data type handler. 11. Adding tests into t/ps.test and suite/binlog/t/binlog_stm_ps.test, to cover Item_param::print() and Item_param::append_for_log() for LIMIT clause parameters. Note, the patch does not change the behavior covered by the new tests. Adding for better code coverage. 12. Adding tests for more precise integer data type in queries like this: EXECUTE IMMEDIATE 'CREATE OR REPLACE TABLE t1 AS SELECT 999999999 AS a,? AS b' USING 999999999; The explicit integer literal and the same integer literal passed as a PS parameter now produce columns of the same data type. Re-recording old results in ps.result, gis.result, func_hybrid_type.result accordingly.
-
- 28 Nov, 2017 3 commits
-
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-