summaryrefslogtreecommitdiff
path: root/mysql-test/main/gis.result
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.3 into 10.4Marko Mäkelä2020-04-221-0/+7
|\
| * Merge 10.2 into 10.3Marko Mäkelä2020-04-221-0/+7
| |
* | Merge 10.3 into 10.4Marko Mäkelä2020-03-201-3/+3
|\ \ | |/
| * Merge 10.2 into 10.3Marko Mäkelä2020-03-201-1/+1
| | | | | | | | Also, clean up the test innodb_gis.geometry a little further.
* | Merge commit '43882e764d6867c6855b1ff057758a3f08b25c55' into 10.4Alexander Barkov2019-08-131-0/+4
|\ \ | |/
| * MDEV-17544 No warning when trying to name a primary key constraint.Alexey Botchkov2019-07-301-0/+4
| | | | | | | | Warning added.
* | MDEV-19819 ALTER from POINT to LINESTRING erroneously preserves POINT valuesAlexander Barkov2019-06-211-0/+16
| |
* | Merge branch '10.3' into 10.4Oleksandr Byelkin2019-05-191-1/+33
|\ \ | |/
| * MDEV-16872 Add CAST(expr AS FLOAT)Alexander Barkov2019-05-161-0/+6
| |
| * Merge branch '10.2' into 10.3Oleksandr Byelkin2019-05-121-1/+27
| |
* | MDEV-16188 Post-merge corrections and adjustmentsIgor Babaev2019-02-041-5/+5
| |
* | Merge 10.3 into 10.4Marko Mäkelä2018-12-181-1/+1
|\ \ | |/
| * Merge 10.2 into 10.3Marko Mäkelä2018-12-181-1/+1
| |
* | Merge 10.3 into 10.4Marko Mäkelä2018-10-051-0/+16
|\ \ | |/
| * Merge branch '10.2' into 10.3Sergei Golubchik2018-09-281-0/+16
| |
| * MDEV-16878 Functions ADDTIME and SUBTIME get wrongly removed from WHERE by ↵Alexander Barkov2018-08-021-6/+6
| | | | | | | | the equal expression optimizer
* | MDEV-16864 Implement class Item_func_timestampAlexander Barkov2018-07-311-6/+6
| |
* | MDEV-16454 Bad results for IN with ROWAlexander Barkov2018-06-271-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider an IN predicate with ROW-type arguments: predicant IN (value1, ..., valueM) where predicant and all values consist of N elements. When performing IN for these arguments, at every position i (1..N) only data type of i-th element of predicant was taken into account, while data types on i-th elements of value1..valueM were not taken. These led to bad comparison data type detection, e.g. when mixing unsigned and signed integer values. After this change all element data types are taken into account. So, for example, a mixture of unsigned and signed values is now calculated using decimal and does not overflow any more. Detailed changes: 1. All comparators for ROW elements are now created recursively at fix_fields() time, inside cmp_item_row::prepare_comparators(). Previously prepare_comparators() installed comparators only for temporal data types, while comparators for other types were installed at execution time, in cmp_item_row::store_value(). 2. Removing comparator creating code from cmp_item_row::store_value(). It was responsible for non-temporal data types. 3. Removing find_date_time_item(). It's not needed any more. All ROW-element data types are now covered by cmp_item_row::prepare_comparators(). 4. Adding a helper method Item_args::alloc_and_extract_row_elements() to extract elements from an array of ROW-type Items, from the given position. Using this method to collect elements from the i-th position and further pass them to Type_handler_hybrid_field_type::aggregate_for_comparison(). 5. Moving the call for alloc_comparators() inside cmp_item_row::prepare_comparators(). This helps to call prepare_comparators() for ROW elements recursively (if elements appear to be ROWs again). Moving alloc_comparators() from "public" to "private".
* | MDEV-11361 Equal condition propagation does not work for DECIMAL and ↵Alexander Barkov2018-06-081-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | temporal dynamic SQL parameters MDEV-16426 Optimizer erroneously treats equal constants of different formats as same A cleanup for MDEV-14630: fixing a crash in Item_decimal::eq(). Problems: - old implementations of Item_decimal::eq() and Item_temporal_literal::eq() were not symmetric with Item_param::eq(), this caused MDEV-11361. - old implementations for DECIMAL and temporal data types did not take into account that in case when eq() is called with binary_cmp==true, {{eq()}} should check not only equality of the two values, but also equality if their decimal precision. This cuases MDEV-16426. - Item_decimal::eq() crashes with "item" pointing to a non-DECIMAL value. Before MDEV-14630 non-DECIMAL values were filtered out by the test: type() == item->type() as literals of different types had different type(). After MDEV-14630 type() for literals of all data types return CONST_ITEM. This caused failures in tests: ./mtr engines/iuds.insert_number ./mtr --ps --embedded main.explain_slowquerylog (revealed by buildbot) The essence of the fix: Making literals and Item_param reuse the same code to avoid asymmetries between Item_param::eq(Item_literal) and Item_literal::eq(Item_param), now and in the future, and to avoid code duplication between Item_literal and Item_param. Adding tests for "decimals" for DECIMAL and temporal data types, to treat constants of different scale as not equal when "binary_cmp" is "true". Details: 1. Adding a helper class Item_const to extract constant values from Items easier 2. Deriving Item_basic_value from Item_const 3. Joining Type_handler::Item_basic_value_eq() and Item_basic_value_bin_eq() into a single method with an extra "binary_cmp" argument (it looks simple this way) and renaming the new method to Item_const_eq(). Modifying its implementations to operate with Item_const instead of Item_basic_value. 4. Adding a new class Type_handler_hex_hybrid, to handle hex constants like 0x616263. 5. Removing Item::VARBIN_ITEM and fixing Item_hex_constant to use type_handler_hex_hybrid instead of type_handler_varchar. Item_hex_hybrid::type() now returns CONST_ITEM, like all other literals do. 6. Move virtual methods Item::type_handler_for_system_time() and Item::cast_to_int_type_handler() from Item to Type_handler. 7. Removing Item_decimal::eq() and Item_temporal_literal::eq(). These classes are now handled by the generic Item_basic_value::eq(). 8. Implementing Type_handler_temporal_result::Item_const_eq() and Type_handler_decimal_result::Item_const_eq(), this fixes MDEV-11361. 9. Adding tests for "decimals" into Type_handler_decimal_result::Item_const_eq() and Type_handler_temporal_result::Item_const_eq() in case if "binary_cmp" is true. This fixes MDEV-16426. 10. Moving Item_cache out of Item_basic_value. They share nothing. It simplifies implementation of Item_basic_value::eq(). Deriving Item_cache directly from Item. 11. Adding class DbugStringItemTypeValue, which used Item::print() internally, and using in instead of the old debug printing code. This gives nicer output in func_debug.result. Changes N5 and N6 do not directly relate to the bugs fixed, but make the code fully symmetric across all literal types. Without a new handler Type_handler_hex_hybrid we'd have to keep two code branches (for regular literals and for hex hybrid literals).
* | MDEV-16351 JSON_OBJECT() treats hybrid functions with boolean arguments as ↵Alexander Barkov2018-05-311-0/+22
|/ | | | | | | | numbers Now the boolean data type is preserved in hybrid functions and MIN/MAX, so COALESCE(bool_expr,bool_expr) and MAX(bool_expr) are correctly detected by JSON_OBJECT() as being boolean rather than numeric expressions.
* Create 'main' test directory and move 't' and 'r' thereMichael Widenius2018-03-291-0/+4922