Console View
|
Categories: connectors experimental galera main |
|
| connectors | experimental | galera | main | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fixed compilation failures in InnoDB with gcc 7.5.0 - 'final' relaced with 'override final' - Fixed wrong automatic cast from int32 to byte |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Add detection of partial matches for strnncoll This is achived by changing the 'is_prefix' parameter to strncoll from a my_bool to my_bool*. This parameter is null if not specified by the caller. If the is_prefix parameter is set to point to a my_bool variable, this variable will be set to 1 if the second argument is a prefix of the first. This is needed by TO_DATE to be able to detect partial uniqiue matches of months etc. find_type() did this for latin1 strings, but we did not do this for utf8mb4 strings. This patch fixes this incompatibility. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37326 Assertion failure upon update on versioned partitioned table with long unique under READ COMMITTED if ha_partition::position() is asked for a position of a closed partition, don't ask the underlying engine, just set the partition number. in fact, the partition is open and can be perfectly used, the assert is over-zealous. but in the future it might be actually closed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fixup! MDEV-36787 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-34570 mariabackup prepare fails with data-at-rest encryption and "-u root" option rewrite mariadb-backup "early" option parsing to use my_getopt + proper handling of values separated from the option by a space (not =) + case insensitive and -/_ insensitive comparison - multiple --defaults-group don't work - multiple --login-path don't work - --incremental-dir overwrites --target-dir, not "whatever comes first" |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Väinö Mäkelä
vaino.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-32745 Add a simple MySQL to MariaDB upgrade helper The tool is named mariadb-migrate-config-file. The main purpose of the tool is to change MySQL option files to work both for MySQL and MariaDB. There are options to do the changes in the options file inline, or at-end-of-file. One can also remove or comment unknown options. The list of supported options is generated compile time from mariadbd --help. All server options, including compiled plugins, are supported. The bulk of the code comes from Väinö. Monty has updated it with a lot of extra options. Other things: - Fixed a memory leak in sql_plugin.cc - plugin-load will now in case of errors try to load all given plugins before aborted - If silent-startup is used, plugin-load will not give errors for plugins it cannot load or warnings about plugin marturity level. - my_rm_tree() will now delete symlinks, not the actual file, if MY_NOSYMLINK flag is used. - my_stat() will now give data for symlink if MY_NOSYMLINKS is used. @Authors: Väinö Mäkelä <[email protected]>,[email protected] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mohammad Tafzeel Shams
tafzeel.shams@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38079: Crash Recovery Fails After ALTER TABLE…PAGE_COMPRESSED=1 Issue: Recovery fails because the expected space ID does not match the space ID stored in the page. Root Cause: - Before the crash, the nth page (n != 0) gets flushed to disk as a compressed page. - Page 0 remains unflushed, and the compressed flag for the space is made durable only in the redo logs. - During recovery, the compressed flag is first set to indicate a compressed space. - Later, while applying redo logs, an earlier LSN may reset it to non-compressed and then back to compressed. - If the nth page is read during this intermediate state, a compressed page may be read as non-compressed, causing a space ID mismatch. Fix: - recv_sys_t::space_flags_lsn : Added a map to track the last applied LSN for each space and avoid stale updates from earlier LSNs. - recv_sys_t::update_space_flags() : Updates space->flags during recovery only if the update comes from the latest LSN. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37481 empty value inserted if BEFORE trigger and ENUM NOT NULL field must use field->make_empty_rec_reset() for resetting a field to its type default value. ENUM is historically weird. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alexey Botchkov
holyfoot@askmonty.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38548 Xmltype default values inconsistency is not checked. Check the DEFAULT for type compatibility. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37326 Assertion failure upon update on versioned partitioned table with long unique under READ COMMITTED if ha_partition::position() is asked for a position of a closed partition, don't ask the underlying engine, just set the partition number. in fact, the partition is open and can be perfectly used, the assert is over-zealous. but in the future it might be actually closed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Väinö Mäkelä
vaino.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-32745 Add a simple MySQL to MariaDB upgrade helper The tool is named mariadb-migrate-config-file. The main purpose of the tool is to change MySQL option files to work both for MySQL and MariaDB. There are options to do the changes in the options file inline, or at-end-of-file. One can also remove or comment unknown options. The list of supported options is generated compile time from mariadbd --help. All server options, including compiled plugins, are supported. The bulk of the code comes from Väinö. Monty has updated it with a lot of extra options. Other things: - Fixed a memory leak in sql_plugin.cc - plugin-load will now in case of errors try to load all given plugins before aborted - If silent-startup is used, plugin-load will not give errors for plugins it cannot load or warnings about plugin marturity level. - my_rm_tree() will now delete symlinks, not the actual file, if MY_NOSYMLINK flag is used. - my_stat() will now give data for symlink if MY_NOSYMLINKS is used. @Authors: Väinö Mäkelä <[email protected]>,[email protected] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37341 Assertion failures `null_ptr < ptr' and `ptr - null_ptr <= (int)table->s->rec_buff_length' with BEFORE trigger and UPDATE in SIMULTANEOUS_ASSIGNMENT there is no need to switch value items to new nullable copies of table Field's - they must refer to old values in the row, which can never be null anyway. skipping this redundant step simplifies moving field to record[1] and back in fill_record() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-36787 Error 153: No savepoint with that name upon ROLLBACK TO SAVEPOINT, assertion failure 1. InnoDB should return HA_ERR_ROLLBACK if it aborts a transaction internally 2. the server should recognize it and perform an automatic rollback |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37481 empty value inserted if BEFORE trigger and ENUM NOT NULL field must use field->make_empty_rec_reset() for resetting a field to its type default value. ENUM is historically weird. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cleanup: remove unused argument | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37506 Assertion if FLUSH PRIVILEGES is interrupted in --skip-grant-tables * fail acl_load() if it was killed, this will cause all privileges to be reset to their original pre-load values. * only increment grant_version if privileges were, in fact, updated |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thirunarayanan Balathandayuthapani
thiru@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38631 Remove unused FTS debug directives and dead code Remove several unused debugging preprocessor directives from the FTS module that were never effectively used for debugging purposes and represent dead code. Removed debug directives: - DEBUG_FTS_SORT_PRINT: FTS sorting debug output macros - FTS_INTERNAL_DIAG_PRINT: Internal FTS diagnostic printing - FTS_OPTIMIZE_DEBUG: FTS optimization debugging functions - MYSQL_STORE_FTS_DOC_ID: Store fts doc id in FTS_DOC_ID field - FTS_DEBUG: Debug for fulltext index - FTS_CACHE_SIZE_DEBUG: Assign max and min fulltext cache size - FTS_MULT_INDEX: Updated fulltext index - Removed FTS_OPTIMIZE_START_TIME and FTS_OPTIMIZE_END_TIME constants These debug directives were never properly integrated into the build system and provided no value for production debugging and also improves code clarity for the FTS module. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-32263 Increase mysqldump default max_allowed_packet variable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Kristian Nielsen
knielsen@knielsen-hq.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix bad merge that broke Galera Signed-off-by: Kristian Nielsen <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37503 UBSAN: downcast Item_func_plus to Item_field invalid in sql_prepare.cc:1516 use reinterpret_cast to silence UBSAN. add a debug check to make sure the wrong value is never used. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37506 Assertion if FLUSH PRIVILEGES is interrupted in --skip-grant-tables * fail acl_load() if it was killed, this will cause all privileges to be reset to their original pre-load values. * only increment grant_version if privileges were, in fact, updated |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Väinö Mäkelä
vaino.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-32745 Add a simple MySQL to MariaDB upgrade helper The tool is named mariadb-migrate-config-file. The main purpose of the tool is to change MySQL option files to work both for MySQL and MariaDB. There are options to do the changes in the options file inline, or at-end-of-file. One can also remove or comment unknown options. The list of supported options is generated compile time from mariadbd --help. All server options, including compiled plugins, are supported. The bulk of the code comes from Väinö. Monty has updated it with a lot of extra options. Other things: - Fixed a memory leak in sql_plugin.cc - plugin-load will now in case of errors try to load all given plugins before aborted - If silent-startup is used, plugin-load will not give errors for plugins it cannot load or warnings about plugin marturity level. - my_rm_tree() will now delete symlinks, not the actual file, if MY_NOSYMLINK flag is used. - my_stat() will now give data for symlink if MY_NOSYMLINKS is used. @Authors: Väinö Mäkelä <[email protected]>,[email protected] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37503 UBSAN: downcast Item_func_plus to Item_field invalid in sql_prepare.cc:1516 use reinterpret_cast to silence UBSAN. add a debug check to make sure the wrong value is never used. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37785 Assertion `!mysql_bin_log.is_open()' failed in ... ALTER TABLE The reason for the failure was a wrong assert in mark_tmp_table_as_free_for_reuse() The purpose of the assert was to find of it a temporary table would be wrongly marked as 'not up to date'. However there is no easy way to do that, so better to remove the assert. It has already proven that for most cases this does not happen. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37615: Clang based static analysis false postive reports on UNINIT_VAR Clang upstream bug https://github.com/llvm/llvm-project/issues/173210 shows that a "int x=x" construct will in the intermediate representation have code to read from x. With this generated sanitizer=undefined and static analyzers will all see the uninitialized read and write. Because clang has a stronger implementation of following paths to uninitialized variables, "#define UNINIT_VAR(x) x" is the which is what our release binaries use is the ideal path for this compiler. Clang based compilers with error during compilation if any uninitialized behaviour is detected at compile time because of 0c80ddb519bd06efbd7ccf2a2487b2503cd16db5. Corrects MDEV-36542 - 6fd57f478f585249bdca242b1576ac0a7bd7aacf. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Michael Widenius
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-19683 Add support for Oracle TO_DATE() Syntax: TO_DATE(string_expression [DEFAULT string_expression ON CONVERSION ERROR], format_string [,NLS_FORMAT_STRING]) The format_string has the same format elements as TO_CHAR(), except a few elements that are not supported/usable for TO_DATE(). TO_DATE() returns a datetime or date value, depending on if the format element FF is used. Allowed separators, same as TO_CHAR(): space, tab and any of !#%'()*+,-./:;<=> '&' can also be used if next character is not a character a-z or A-Z "text' indicates a text string that is verbatim in the format. One cannot use " as a separator. Format elements supported by TO_DATE(): AD Anno Domini ("in the year of the Lord") AD_DOT Anno Domini ("in the year of the Lord") AM Meridian indicator (Before midday) AM_DOT Meridian indicator (Before midday) DAY Name of day DD Day (1-31) DDD Day of year (1-336) DY Abbreviated name of day FF[1-6] Fractional seconds HH Hour (1-12) HH12 Hour (1-12) HH24 Hour (0-23) MI Minutes (0-59) MM Month (1-12) MON Abbreviated name of month MONTH Name of Month PM Meridian indicator (After midday) PM_DOT Meridian indicator (After midday) RR 20th century dates in the 21st century. 2 digits 50-99 is assumed from 2000, 0-49 is assumed from 1900. RRRR 20th century dates in the 21st century. 4 digits SS Seconds SYYYY Signed 4 digit year; MariaDB only supports positive years Y 1 digit year YY 2 digits year YYY 3 digits year YYYY 4 digits year Note that if there is a missing part of the date, the current date is used! For example if 'MM-DD HH-MM-SS' then the current year will be used. (Oracle behaviour) Not supported options: BC, D, DL, DS, E, EE, FM, FX, RM, SSSSS, TS, TZD, TZH, TZR, X,SY BC is not supported by MariaDB datetime. Most of the other are exotic formats, format modifies other things that does not make in MariaDB as we return datetime or datetime with fractions, not string. D (day-of-week) is not supported as it is not clear exactly how it would map to MariaDB. This element depends on the NLS territory of the session. Extensions / differences compared to Oracle; - MariaDB supports FF (fractional seconds). If FF[£] is used, then TO_DATE will return a datetime with # of subseconds. If FF is not used a datetime will be returned. - Names can be shortened to it's unique prefix. For example January and Ja works fine. - No error if the date string is shorter format_string. This is useful to get a date from a mixed set of strings in date or datetime format. Oracle gives an error if date string is too short. - MariaDB supports short locales as language names - NLS_DATE_FORMAT can use both " and ' for quoting. New formats handled by TO_CHAR(): FF[1-6] Fractional seconds DDD Daynumber 1-366 IW Week 1-53 according to ISO 8601 I 1 digit year according to ISO 8601 IY 2 digit year according to ISO 8601 IYY 3 digit year according to ISO 8601 IYYY 4 digit year according to ISO 8601 SYYY 4 digit year according to ISO 8601 (Oracle can do signed) Supported NLS_FORMAT_STRING options are: NLS_CALENDAR=GREGORIAN NLS_DATE_LANGUAGE=language Support languages are: - All MariaDB short locales, like en_AU. - The following Oracle language names: ALBANIAN, AMERICAN, ARABIC, BASQUE, BELARUSIAN, BRAZILIAN PORTUGUESE BULGARIAN, CANADIAN FRENCH, CATALAN, CROATIAN, CYRILLIC SERBIAN CZECH, DANISH, DUTCH, EGYPTIAN, ENGLISH, ESTONIAN, FINNISH, FRENCH, GERMAN, GREEK, HEBREW, HINDI, HUNGARIAN, ICELANDIC, INDONESIAN ITALIAN, JAPANESE, KANNADA, KOREAN, LATIN AMERICAN SPANISH, LATVIAN, LITHUANIAN, MACEDONIAN, MALAY, MEXICAN SPANISH, NORWEGIAN, POLISH, PORTUGUESE, ROMANIAN, RUSSIAN, SIMPLIFIED CHINESE, SLOVAK, SLOVENIAN, SPANISH, SWAHILI, SWEDISH, TAMIL, THAI, TRADITIONAL CHINESE, TURKISH, UKRAINIAN, URDU, VIETNAMESE Development bugs fixed: MDEV-38403 Server crashes in Item_func_to_date::fix_length_and_dec upon using an invalid argument MDEV-38400 compat/oracle.func_to_date fails with PS protocol and cursor protocol (Fixed by Serg) MDEV-38404 TO_DATE: MTR coverage omissions, round 1 MDEV-38509 TO_DATE: AD_DOT does not appear to be supported MDEV-38513 TO_DATE: NULL value for format string causes assertion failure MDEV-38521 TO_DATE: Date strings with non-ASCII symbols cause warnings and wrong results Known limitations: - Format string character matches inside quotes are done one-letter-to-one-letter, like in LIKE predicate. That means things like expansions and contractions do not work. For example 'ss' does not match 'ß' in collations which treat them as equal for the comparison operator. Match is done taking into account case and accent sensitivity of the subject argument collation, so for example this now works: MariaDB [test]> SELECT TO_DATE('1920á12','YYYY"a"MM') AS c; +---------------------+ | c | +---------------------+ | 1920-12-17 00:00:00 | +---------------------+ Co-author and reviewer: Alexander Barkov <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
cleanup: don't allocate memory for virtual columns in rr cache as rr_from_cache() does not store virtual columns, it doesn't need to allocate memory for them either |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37341 Assertion failures `null_ptr < ptr' and `ptr - null_ptr <= (int)table->s->rec_buff_length' with BEFORE trigger and UPDATE in SIMULTANEOUS_ASSIGNMENT there is no need to switch value items to new nullable copies of table Field's - they must refer to old values in the row, which can never be null anyway. skipping this redundant step simplifies moving field to record[1] and back in fill_record() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38209 REFERENCES permission on particular schema is sometimes ignored some I_S tables require "any non-SELECT privilege on the table". If only SELECT was granted on the global level and something non-SELECT on the schema level, then we need to check schema level privileges explicitly, because check_grant() doesn't do that and get_all_tables() doesn't look deeper if SELECT is present on the global level. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-36787 Error 153: No savepoint with that name upon ROLLBACK TO SAVEPOINT, assertion failure 1. InnoDB should return HA_ERR_ROLLBACK if it aborts a transaction internally 2. the server should recognize it and perform an automatic rollback |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38209 REFERENCES permission on particular schema is sometimes ignored some I_S tables require "any non-SELECT privilege on the table". If only SELECT was granted on the global level and something non-SELECT on the schema level, then we need to check schema level privileges explicitly, because check_grant() doesn't do that and get_all_tables() doesn't look deeper if SELECT is present on the global level. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cleanup: remove unused argument | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-34984 rr_from_cache does not update generated columns handler read methods only update generated columns when they read into record[0]. As rr_from_cache() reads into the cache, it has to update them explicitly. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-34570 mariabackup prepare fails with data-at-rest encryption and "-u root" option rewrite mariadb-backup "early" option parsing to use my_getopt + proper handling of values separated from the option by a space (not =) + case insensitive and -/_ insensitive comparison - multiple --defaults-group don't work - multiple --login-path don't work - --incremental-dir overwrites --target-dir, not "whatever comes first" |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
nox
10474785+nox-4O4@users.noreply.github.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Make the warning message during mariadb-backup SST more useful When the SST log archive directory cannot be created or is not writable, the path is set to an empty string and a warning is logged. Unfortunately, the warning is logged only after the path has been changed, so, the following message is displayed: > WSREP_SST: [WARNING] The '' directory is not writtable This commit swaps the order of logging and clearing the path so that the failing path is logged. The new output is: > WSREP_SST: [WARNING] The '/tmp/something_invalid' directory is not writable |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Väinö Mäkelä
vaino.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-32745 Add a simple MySQL to MariaDB upgrade helper The tool is named mariadb-migrate-config-file. The main purpose of the tool is to change MySQL option files to work both for MySQL and MariaDB. There are options to do the changes in the options file inline, or at-end-of-file. One can also remove or comment unknown options. The list of supported options is generated compile time from mariadbd --help. All server options, including compiled plugins, are supported. The bulk of the code comes from Väinö. Monty has updated it with a lot of extra options. Other things: - Fixed a memory leak in sql_plugin.cc - plugin-load will now in case of errors try to load all given plugins before aborted - If silent-startup is used, plugin-load will not give errors for plugins it cannot load or warnings about plugin marturity level. - my_rm_tree() will now delete symlinks, not the actual file, if MY_NOSYMLINK flag is used. - my_stat() will now give data for symlink if MY_NOSYMLINKS is used. @Authors: Väinö Mäkelä <[email protected]>,[email protected] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-37503 UBSAN: downcast Item_func_plus to Item_field invalid in sql_prepare.cc:1516 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||