- 11 Aug, 2018 6 commits
-
-
Vladislav Vaintroub authored
-
Alexander Barkov authored
A cleanup for MDEV-16939: avoid timeval initialization related problems in the future (compilation failures on Windows) Adding a helper class Timeval, to initialize "struct timeval" in a safe way. As a bonus, adding a method Timeval::trunc(), so the caller now can have one line instead of five lines (declaration, initializations of sec and usec, truncation, passing to store_TIMEVAL()).
-
Vladislav Vaintroub authored
-
Alexander Barkov authored
-
Alexander Barkov authored
The affected code is well covered by tests for MDEV-8766. Adding only the missing part: the old mode OLD_MODE_ZERO_DATE_TIME_CAST in combination with 0000-MM-00 and YYYY-00-00. The old mode in combination with 0000-00-DD was already covered, so was the new mode with all types of DATETIME values.
-
Alexander Barkov authored
Since MDEV-15091, the "lengh" parameter to str_to_time() and str_to_datetime() is of type size_t rather than uint. Fixing Time(), Temporal_with_date() and Datetime() constructors accordingly.
-
- 10 Aug, 2018 3 commits
-
-
Alexander Barkov authored
The bug did not affect behaviour in any way though :)
-
Alexander Barkov authored
MDEV-16935 Change the parameter of Field_xxx::store_TIME_with_dec() to const Datetime* and const Time*
-
Alexander Barkov authored
-
- 09 Aug, 2018 4 commits
-
-
Alexander Barkov authored
MDEV-16928 Move MYSQL_TIME initialization from Field_xxx::store_time_dec() to new constructors Time() and Datetime()
-
Alexander Barkov authored
-
Monty authored
-
Alexander Barkov authored
- Adding a helper class Sec6 to store (neg,seconds,microseconds) - Adding a helper class VSec6 (Sec6 with a flag for "IS NULL") - Wrapping related functions as methods of Sec6; * number_to_datetime() * number_to_time() * my_decimal2seconds() * Item::get_seconds() * A big piece of code in Item_func_sec_to_time::get_date() - Using the new classes in places where second-to-temporal conversion takes place: * Field_timestamp::store(double) * Field_timestamp::store(longlong) * Field_timestamp_with_dec::store_decimal(my_decimal) * Field_temporal_with_date::store(double) * Field_temporal_with_date::store(longlong) * Field_time::store(double) * Field_time::store(longlong) * Field_time::store_decimal(my_decimal) * Field_temporal_with_date::store_decimal(my_decimal) * get_interval_value() * Item_func_sec_to_time::get_date() * Item_func_from_unixtime::get_date() * Item_func_maketime::get_date() This change simplifies these methods and functions a lot. - Warnings are now sent at VSec6 initialization time, when the source data is available in its original data type representation. If Sec6::to_time() or Sec6::to_datetime() truncate data again during conversion to MYSQL_TIME, they send warnings, but only if no warnings were sent during VSec6 initialization. This helps prevents double warnings. The call for val_str() in Item_func_sec_to_time::get_date() is not needed any more, so it's removed. This change actually fixes the problem. As a good effect, FROM_UNIXTIME() and MAKETIME() now also send warnings in case if the seconds arguments is out of range. Previously these functions returned NULL silently. - Splitting the code in the global function make_truncated_value_warning() into a number of methods THD::raise_warning_xxxx(). This was needed to reuse the logic that chooses between: * ER_TRUNCATED_WRONG_VALUE * ER_WRONG_VALUE * ER_TRUNCATED_WRONG_VALUE_FOR_FIELD for non-temporal data types (Sec6). - Removing: * Item::get_seconds() * number_to_time_with_warn() as this code now resides inside methods of Sec6. - Cleanup (changes that are not directly related to the fix): * Removing calls for field_name_or_null() and passing NULL instead in Item_func_hybrid_field_type::get_date_from_{int|real}_op, because Item_func_hybrid_field_type::field_name_or_null() always returns NULL * Replacing a number of calls for make_truncated_value_warning() to calls for THD::raise_warning_xxx(). In these places we know that the execution went through a certain branch of make_truncated_value_warning(), (e.g. the exact error code is known, or field name is always NULL, or field name is always not-NULL). So calls for the entire make_truncated_value_warning() after splitting are not necessary.
-
- 07 Aug, 2018 5 commits
-
-
Otto Kekäläinen authored
If something was built using a build dependency, it will automatically be a install dependency via ${shlibs:Depends}, so no need to define it manually. This also fixes a bug related to a over autobake-deb.sh mangling the control file architecture field on Trusty and Jessie.
-
Monty authored
-
Alexander Barkov authored
Changing data types for: - seconds from longlong to ulonglong - microseconds from long to ulong in: - parameters of calc_time_diff() - parameters of calc_time_from_sec() - Members of Sec6_add This will help to reuse the code easier: all other functions use ulonglong+long for seconds/microsecond, e.g.: - number_to_time() - number_to_datetime() - number_to_datetime_with_warn() - Field_temporal_with_date::store_decimal() - my_decimal2seconds() - Item::get_seconds()
-
Monty authored
-
Alexander Barkov authored
Adding classes VDec and VDec2_lazy, according to the task description. This patch removes around 250 duplicate code lines.
-
- 05 Aug, 2018 6 commits
-
-
Otto Kekäläinen authored
This also better matches the package order in downstream, so it makes it easier to compare upstream and downstream. Also wrap-and-sort.
-
Otto Kekäläinen authored
After this there will be no need to maintain line numbers, as the extent of the sed deletion will automatically be until next empty line.
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
- Update package names that had -10.3 to -10.4 - Update conflicts/breaks/replaces of to include now also 10.3, just like 10.3 had the same relationship to 10.2 - Remove some old (<< ${source:Version}) not needed anymore as we are not moving files around inside the 10.4 releases (at least yet). - Ensure all plugins depend on server or client binaries from the same release so that they for sure are binary API compatible.
-
Otto Kekäläinen authored
-
- 04 Aug, 2018 1 commit
-
-
Igor Babaev authored
Due to an obvious bug in st_select_lex_unit::reset_distinct() a union without duplicates of more than 2 selects could return a result set containing duplicate rows if this union was enclosed in ().
-
- 03 Aug, 2018 1 commit
-
-
Alexander Barkov authored
-
- 02 Aug, 2018 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Rasmus Johansson authored
-
- 01 Aug, 2018 2 commits
-
-
Alexander Barkov authored
-
Galina Shalygina authored
The bug appeares because of the lamely saved list of multiple equalities. To fix it and_new_conditions_to_optimized_cond() was changed.
-
- 31 Jul, 2018 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 30 Jul, 2018 1 commit
-
-
Alexander Barkov authored
- Implementing the task according to the MDEV description. - Adding a helper class Sec6_add to share the code in type-specific branches in Item_func_add_time::get_date().
-
- 29 Jul, 2018 1 commit
-
-
Galina Shalygina authored
The problem appears because of the pushdown of a non-pushable condition 'cond' into the materialized derived table/view. To prevent pushdown a map of tables that are used in 'cond' should be updated. This call is missing because of the MDEV-12387 changes. The call is added in the setup_jtbm_semi_joins() method.
-
- 27 Jul, 2018 1 commit
-
-
Galina Shalygina authored
failed The bug appeared as in MDEV-12387 setup_jtbm_semi_joins() procedure had been devided into two functions, one called before optimization of WHERE clause and another after this optimization. When the second function was called for a degenerated jtbm semi join equalities connecting the subselect and the parent select were created but invocation of fix_fields() for these equalities was missing.
-
- 25 Jul, 2018 2 commits
-
-
Alexander Barkov authored
Adding new methods: - virtual void Type_handler::Column_definition_reuse_fix_attributes() according to the MDEV description - virtual uint32 Field::character_octet_length() To simplify handling of Column_definition::length for TEXT and VARCHAR columns (with and without compression).
-
Alexander Barkov authored
-
- 24 Jul, 2018 2 commits
-
-
Jacob Mathew authored
The problem occurred because the Spider node was incorrectly handling timestamp values sent to and received from the data nodes. The problem has been corrected as follows: - Added logic to set and maintain the UTC time zone on the data nodes. To prevent timestamp ambiguity, it is necessary for the data nodes to use a time zone such as UTC which does not have daylight savings time. - Removed the spider_sync_time_zone configuration variable, which did not solve the problem and which interfered with the solution. - Added logic to convert to the UTC time zone all timestamp values sent to and received from the data nodes. This is done for both unique and non-unique timestamp columns. It is done for WHERE clauses, applying to SELECT, UPDATE and DELETE statements, and for UPDATE columns. - Disabled Spider's use of direct update when any of the columns to update is a timestamp column. This is necessary to prevent false duplicate key value errors. - Added a new test spider.timestamp to thoroughly test Spider's handling of timestamp values. Author: Jacob Mathew. Reviewer: Kentoku Shiba. Merged: Commit 97cc9d34 on branch bb-10.3-MDEV-16246
-
Alexander Barkov authored
-