summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-16232: Use fewer mini-transactions10.9-MDEV-16232Oleg Smirnov2023-01-0228-174/+137
| | | | | | | | | | SQL Layer support #3. Add checks of applicability for UPDATEs and DELETEs. Rename "operations batch" to "mini transactions" to disambiguate the term "batch" which is already used. Temporary disable mini-transactions for SELECTs.
* MDEV-16232: Use fewer mini-transactionsSergei Petrunia2022-06-087-19/+79
| | | | | | | | | | | | | | SQL layer support part #2. The main idea is: employ this optimization only when the query is using just one table. (the scope is too limited but the goal is to get sysbench to work). Make UPDATE, DELETE, and SELECT codepaths check that the query has just one table before the optimization is employed. Also: in DELETE code, the start_operations_batch/end_operations_batch were in the "Direct DELETE" branch. I think it's a mistake as InnoDB doesn't use Direct DELETE optimization. Removed the calls from there and added them to the regular DELETE codepath.
* MDEV-16232 Use fewer mini-transactionsThirunarayanan Balathandayuthapani2022-05-2631-80/+408
| | | | | | | | | | - For update operation, InnoDB uses separate mtr for the following: 1) searching the key in primary key leaf page, stores the position 2) exclusive lock the primary key leaf page 3) Allocate the undo log page, write the undo log record 4) Modify the PRIMARY KEY index change InnoDB should use the single mtr for the all above conditions.
* A cleanup for MDEV-27896 Wrong result upon `COLLATE latin1_bin CHARACTER SET ↵Alexander Barkov2022-05-255-61/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | latin1` on the table or the database level Changing the error messages in a statement like this: CREATE DATABASE db1 COLLATE utf8mb4_bin CHARACTER SET utf8mb4 CHARACTER SET latin1; from COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' to a more expected: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' In order to do this: - Adding a new type TYPE_CHARACTER_SET_COLLATE_EXACT into Lex_exact_charset_extended_collation_attrs_st - Removing m_had_charset_exact from its descendant class Lex_extended_charset_extended_collation_attrs_st Additional cleanup: - Changing methods in Lex_exact_charset_extended_collation_attrs_st set_charset(), set_charset_collate_default(), set_charset_collate_binary() to get Lex_exact_charset instead CHARSET_INFO as a parameter, to guarantee that the argument is only CHARACTER SET and does not have any COLLATE clauses yet. This change is not directly related to the error message change.
* Merge 10.8 into 10.9Marko Mäkelä2022-05-2572-172/+333
|\
| * man: adjust major version to 10.8Marko Mäkelä2022-05-2558-58/+58
| |
| * Merge 10.7 into 10.8Marko Mäkelä2022-05-2546-61/+307
| |\
| | * man: adjust major version to 10.7Daniel Black2022-05-2432-36/+32
| | |
| | * Merge 10.6 into 10.7Marko Mäkelä2022-05-2447-110/+412
| | |\
| | | * MDEV-27892 Improve an error message for foreign server exists (backport)Norio Akagi2022-05-241-1/+1
| | | | | | | | | | | | | | | | | | | | Improve and add more languages for the ERROR 1476: Foreign Server already exists.
| | | * Merge branch 10.5 into 10.6Daniel Black2022-05-2432-55/+100
| | | |\
| | | | * MDEV-28376: Make sure available Perl MariaDB DBI driver is chosenTuukka Pasanen2022-05-241-20/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit introduces automatic detection which supported Perl MariaDB DBI driver is available: * DBD::mysql * DBD::MariaDB If nothing is then bail out and die Current Detection prefers Perl DBD:MariaDB driver. This is mainly for older Linux distros or Windows which does not have Perl DBD:MariaDB packaged or does not want to use Perl cpan command.
| | | | * MDEV-27892 Improve an error message for foreign server existsNorio Akagi2022-05-243-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | Improve and add more languages for the ERROR 1476: Foreign Server already exists.
| | | | * MDEV-22023 Update man pages titles to say MariaDB instead of MySQLTingyao Nian2022-05-2428-28/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When reading the man page of e.g. 'mysql' on a system with MariaDB installed one would actually see the man page of 'mariadb'. However the man page had no indication of the page being for 'mariadb', which was confusing for users. Fix this by updating the man page title lines to use mariadb-* instead of mysql* for MariaDB binaries that are drop-in replacements for MySQL equivalents, indicating that the commands are actually of the MariaDB version. In long term, all the commands in man pages should be replaced by their MariaDB counterparts. Update the title lines as a start, and only those that exist as symlinks to their MariaDB counterparts. Before: man mariadb-upgrade | head -n 1 MYSQL_UPGRADE(1) ... After: man mariadb-upgrade | head -n 1 MARIADB-UPGRADE(1) ... All new code of the whole pull request, including one or several files that are either new files or modified ones, are contributed under the BSD-new license. I am contributing on behalf of my employer Amazon Web Services, Inc.
| | | * | MDEV-28153: Debian autobake to get control (postfix)Daniel Black2022-05-241-119/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The debian/mariabd-plugin-columnstore.install should not have been committed. It was removed on other branches, just 10.6 was missed. This prevented packages being built because the debain/control wasn't populated.
| | | * | MDEV-28648 main.ssl_timeout fails with OpenSSL 3.0.3Vladislav Vaintroub2022-05-232-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Depending on OpenSSL version, and at least in 3.0.3, the client-side socket timeout is reported as generic error (SSL_ERROR_SYSCALL), losing further details (both errno and GetLastError() return 0). This results in client reporting "Unknown OpenSSL error" 2026, instead of another generic "Lost connection to server during query" 2013 Adjusted test case.
| | | * | MDEV-27778 md5 in FIPS crashes with OpenSSL 3.0.0Honza Horak2022-05-231-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OpenSSL 3.0.0+ does not support EVP_MD_CTX_FLAG_NON_FIPS_ALLOW any longer. In OpenSSL 1.1.1 the non FIPS allowed flag is context specific, while in 3.0.0+ it is a different EVP_MD provider. Fixes #2010 part of MDEV-28133
| | | * | Revert "don't build with OpenSSL 3.0, it doesn't work before MDEV-25785"Oleksandr Byelkin2022-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c9beef43154a199bfcd9f71049c011a2ed77ca74, because we have OpenSSL 3.0 support here. part of MDEV-28133
| | | * | MDEV-25785 Add support for OpenSSL 3.0Vladislav Vaintroub2022-05-238-56/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary of changes - MD_CTX_SIZE is increased - EVP_CIPHER_CTX_buf_noconst(ctx) does not work anymore, points to nobody knows where. The assumption made previously was that (since the function does not seem to be documented) was that it points to the last partial source block. Add own partial block buffer for NOPAD encryption instead - SECLEVEL in CipherString in openssl.cnf had been downgraded to 0, from 1, to make TLSv1.0 and TLSv1.1 possible (according to https://github.com/openssl/openssl/blob/openssl-3.0.0/NEWS.md even though the manual for SSL_CTX_get_security_level claims that it should not be necessary) - Workaround Ssl_cipher_list issue, it now returns TLSv1.3 ciphers, in addition to what was set in --ssl-cipher - ctx_buf buffer now must be aligned to 16 bytes with openssl( previously with WolfSSL only), ot crashes will happen - updated aes-t , to be better debuggable using function, rather than a huge multiline macro added test that does "nopad" encryption piece-wise, to test replacement of EVP_CIPHER_CTX_buf_noconst part of MDEV-28133
| | | * | Merge 10.5 into 10.6Marko Mäkelä2022-05-236-4/+161
| | | |\ \ | | | | |/
| | | | * Merge 10.4 into 10.5Marko Mäkelä2022-05-236-4/+160
| | | | |\
| | | | | * Merge 10.4 into 10.5Marko Mäkelä2022-05-236-4/+160
| | | | | |\
| | | | | | * Merge branch '10.3' into bb-10.3-releaseOleksandr Byelkin2022-05-207-5/+161
| | | | | | |\
| | | | | | | * bump the VERSIONDaniel Bartholomew2022-05-201-1/+1
| | | | | | | |
| | | | | | | * MDEV-28246 Optimizer uses all partitions after upgrade to 10.3Oleg Smirnov2022-05-193-2/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cause: a copy of the joined TABLE_LIST is created during multi_update::prepare and TABLE::pos_in_table_list of the tables are set to point to the new TABLE_LIST object. This prevents some optimization steps to perform correctly. Solution: do not update pos_in_table_list during multi_update::prepare
| | | | | | | * MDEV-14642 Assertion 'table->s->db_create_options == ↵KiyoshiTakeda2022-05-183-2/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | part_table->s->db_create_options' failed in compare_table_with_partition When trying to execute ALTER TABLE EXCHANGE PARTITION with different definitions, assertion table->s->db_create_options == part_table->s->db_create_options failed in compare_table_with_partition(). However, this execution should not be allowed since executing 'exchange partition' requires the identical structure of the two tables. To fix the problem, I deleted the assertion code and added code that returns an error that indicates tables have different definitions. Reviewed By: Nayuta Yanagisawa
| | | | | * | | Merge branch '10.4' into bb-10.4-releaseOleksandr Byelkin2022-05-201-1/+1
| | | | | |\ \ \
| | | | | | * | | bump the VERSIONDaniel Bartholomew2022-05-201-1/+1
| | | | | | | | |
| | | | * | | | | Merge branch '10.5' into bb-10.5-releaseOleksandr Byelkin2022-05-201-1/+1
| | | | |\ \ \ \ \
| | | | | * | | | | bump the VERSIONDaniel Bartholomew2022-05-201-1/+1
| | | | | | | | | |
| | | * | | | | | | Merge branch '10.6' into bb-10.6-releaseOleksandr Byelkin2022-05-202-1/+23
| | | |\ \ \ \ \ \ \
| | | | * | | | | | | bump the VERSIONDaniel Bartholomew2022-05-201-1/+1
| | | | | | | | | | |
| | | | * | | | | | | MDEV-28191: Suspend Lintian problems in mariadb-test-data packageTuukka Pasanen2022-05-201-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suspend national-encoding repeated-path-segment package-contains-documentation-outside-usr-share-doc Package mariadb-test-data has test files in directory '/usr/share/mysql/mysql-test/' which are not UTF-8 encoded and they should not be as they are for testing. package also have Lintian warnings for files that are not in correct place in directory 'usr/share/mysql/mysql-test' but as they are all are test results they are not in incorrect place At last there is intentional use for some repeated directories so they are false-positives and should be suspended
| | * | | | | | | | | MDEV-28560 Deprecate spider_buffer_sizeMasashi Tomooka2022-05-214-1/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The variable, spider_buffer_size, is used nowhere in the MariaDB Community Server.
| | * | | | | | | | | Merge branch '10.7' into bb-10.7-releaseOleksandr Byelkin2022-05-201-1/+1
| | |\ \ \ \ \ \ \ \ \
| | | * | | | | | | | | bump the VERSIONDaniel Bartholomew2022-05-201-1/+1
| | | | | | | | | | | |
| * | | | | | | | | | | Merge branch '10.8' into bb-10.8-releaseOleksandr Byelkin2022-05-201-1/+1
| |\ \ \ \ \ \ \ \ \ \ \
| | * | | | | | | | | | | bump the VERSIONDaniel Bartholomew2022-05-201-1/+1
| | | | | | | | | | | | |
* | | | | | | | | | | | | Main patch MDEV-27896 Wrong result upon `COLLATE latin1_bin CHARACTER SET ↵Alexander Barkov2022-05-2425-207/+3256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | latin1` on the table or the database level Also fixes MDEV-27782 Wrong columns when using table level `CHARACTER SET utf8mb4 COLLATE DEFAULT` MDEV-28644 Unexpected error on ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb3, DEFAULT CHARACTER SET utf8mb4
* | | | | | | | | | | | | Step#3 MDEV-27896 Wrong result upon `COLLATE latin1_bin CHARACTER SET ↵Alexander Barkov2022-05-236-290/+764
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | latin1` on the table or the database level Splitting Lex_exact_charset_extended_collation_attrs_st into small components. - Adding classes: * Lex_exact_charset * Lex_context_collation * Lex_exact_collation * Lex_extended_collation_st * Lex_extended_collation and moving pieces of the code from methods * merge_charset_clause_and_collate_clause() * merge_collate_clause_and_collate_clause() into smaller methods in the new classes. It's easier to read, handle and reuse the code this way. - Moving static methods find_default_collation() and find_binary_collation() from Lex_exact_charset_extended_collation_attrs_st to non-static methods in Lex_exact_charset_opt_extended_collate, as now it's a better place for them. - Using Lex_extended_collation_st in sql_yacc.yy to handle COLLATE clauses, to handle both context and extended collations (instead of the previous notation with NULL CHARSET_INFO pointer meaning DEFAULT, and not-NULL meaning an exact collation). This change will also help to add more context (UCA1400) collations soon. The old notation with CHARSET_INFO won't be enough. - Adding LEX::set_names() and reusing it in two places in sql_yacc.yy - Removing the opt_collate_or_default rule. It's was used only to handle the CONVERT TO related grammar. Had to add some code duplication, but it will be gone in one of the next commits. This change will also soon help to add Lex_extended_charset_extended_collation_attrs_st - a new class to handle table and database level CHARACTER SET and COLLATE clauses easier.
* | | | | | | | | | | | | Step#2 MDEV-27896 Wrong result upon `COLLATE latin1_bin CHARACTER SET ↵Alexander Barkov2022-05-235-69/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | latin1` on the table or the database level - Renaming Lex_charset_collation_st to Lex_exact_charset_extended_collation_attrs_st - Renaming Lex_explicit_charset_opt_collate to Lex_exact_charset_opt_extended_collate - Renaming their methods charset_collation() to charset_info(), so the name clearly tells that it returns CHARSET_INFO. Soon we'll have new classes (e.g. Lex_exact_collation) and methods returning Lex_exact_collation. So the old name would be confusing about the return type.
* | | | | | | | | | | | | Step#1 MDEV-27896 Wrong result upon `COLLATE latin1_bin CHARACTER SET ↵Alexander Barkov2022-05-239-17/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | latin1` on the table or the database level - Adding data type aliases: using Lex_column_charset_collation_attrs_st = Lex_charset_collation_st; using Lex_column_charset_collation_attrs = Lex_charset_collation; and using them all around the code (except lex_charset.*) instead of the original names. - Renaming Lex_field_type_st::lex_charset_collation() to charset_collation_attrs() - Renaming Column_definition::set_lex_charset_collation() to set_charset_collation_attrs() - Renaming Column_definition::lex_charset_collation() to charset_collation_attrs() Rationale: The name "Lex_charset_collation" was a not very good name. It does not tell details about its properties: 1. if the charset is optional (yes) 2. if the collation is optional (yes) 3. if the charset can be exact (yes) or context (no) 4. if the collation can be: exact (yes) or context (yes) 5. if the clauses can be repeated multiple times (yes) We'll need a few new data types soon with different properties. For example, to fix MDEV-27896 and MDEV-27782, we'll need a new data type which is very like Lex_charset_collation, but additionally supports CHARACTER SET DEFAULT (which is allowed on table and database level, but is not allowed on the column level yet), i.e. with: "the charset can be exact (yes) or context (yes)" in N3. So we'll have to rename Lex_charset_collation to something else, e.g.: Lex_exact_charset_extended_collation_attrs, and add a new data type: e.g. Lex_extended_charset_extended_collation_attrs Also, we'll possibly allow CHARACTER SET DEFAULT at the column level for consistency with other places. So the storge on the column level can change: - from Lex_exact_charset_extended_collation_attrs - to Lex_extended_charset_extended_collation_attrs Adding the aliases introduces a convenient abstraction against upcoming renames and c++ data type changes.
* | | | | | | | | | | | | Merge branch '10.9' into bb-10.9-releaseOleksandr Byelkin2022-05-202-3/+4
|\ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | bump the VERSIONDaniel Bartholomew2022-05-201-1/+1
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | MDEV-27328 MSAN failure fixAleksey Midenkov2022-05-171-2/+3
| | | | | | | | | | | | | |
* | | | | | | | | | | | | | Merge branch '10.8' into 10.9mariadb-10.9.1Sergei Golubchik2022-05-19365-2458/+10194
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / |/| / / / / / / / / / / / / | |/ / / / / / / / / / / /
| * | | | | | | | | | | | Merge branch '10.7' into 10.8mariadb-10.8.3Sergei Golubchik2022-05-1896-625/+2795
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / | |/| / / / / / / / / / / | | |/ / / / / / / / / /
| | * | | | | | | | | | Merge branch '10.6' into 10.7mariadb-10.7.4Sergei Golubchik2022-05-1896-623/+2793
| | |\ \ \ \ \ \ \ \ \ \ | | | |/ / / / / / / / / | | |/| / / / / / / / / | | | |/ / / / / / / /
| | | * | | | | | | | Merge branch '10.5' into 10.6mariadb-10.6.8Sergei Golubchik2022-05-1868-409/+2319
| | | |\ \ \ \ \ \ \ \ | | | | | |/ / / / / / | | | | |/| | | | | |
| | | | * | | | | | | Merge branch '10.4' into 10.5mariadb-10.5.16Sergei Golubchik2022-05-1867-406/+2238
| | | | |\ \ \ \ \ \ \ | | | | | |_|/ / / / / | | | | |/| | / / / / | | | | | | |/ / / / | | | | | |/| | | |