maria:bb-11.0-spetrunia-tmp

Last commit made on 2023-10-30
Get this branch:
git clone -b bb-11.0-spetrunia-tmp https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-11.0-spetrunia-tmp
Repository:
lp:maria

Recent commits

4f04199... by Sergey Petrunia

Merge bb-10.11-release -> 11.0

23ffcc6... by Oleksandr "Sanja" Byelkin

Merge branch 'bb-10.10-release' into bb-10.11-release

a700523... by Oleksandr "Sanja" Byelkin

Merge branch 'bb-10.6-release' into bb-10.10-release

a0a6ace... by Oleksandr "Sanja" Byelkin

Merge branch 'bb-10.5-release' into bb-10.6-release

b719331... by Oleksandr "Sanja" Byelkin

Merge branch '10.5' into bb-10.5-release

253fd0e... by Oleksandr "Sanja" Byelkin

Merge branch '10.4' into bb-10.5-release

186ac47... by Marko Mäkelä

MDEV-32324 fixup: clang -Winconsistent-missing-override

63a76ce... by Oleksandr "Sanja" Byelkin

Merge branch '10.4' into 10.5

1182451... by Daniel Black

MDEV-32018 Allow the setting of Auto_increment on FK referenced columns

In MDEV-31086, SET FOREIGN_KEY_CHECKS=0 cannot bypass checks that
make column types of foreign keys incompatible. An unfortunate
consequence is that adding an AUTO_INCREMENT is considered
incompatible in Field_{num,decimal}::is_equal and for the purpose
of FK checks this isn't relevant.

innodb.foreign_key - pragmaticly left wait_until_count_sessions.inc at
end of test to match the second line of test.

Reporter: horrockss@github - https://github.com/MariaDB/mariadb-docker/issues/528
Co-Author: Marko Mäkelä <email address hidden>
Reviewer: Nikita Malyavin

For the future reader this was attempted:

Removing AUTO_INCREMENT checks from Field_{num,decimal}::is_equals
failed in the following locations (noted for future fixing):
* MyISAM and Aria (not InnoDB) don't adjust AUTO_INCREMENT next number
  correctly, hence added a test to main.auto_increment to catch
  the next person that attempts this fix.
* InnoDB must perform an ALGORITHM=COPY to populate NULL values of
  an original table (MDEV-19190 mtr test period.copy), this requires
  ALTER_STORED_COLUMN_TYPE to be set in fill_alter_inplace_info
  which doesn't get hit because field->is_equal is true.
* InnoDB must not perform the change inplace (below patch)
* innodb.innodb-alter-timestamp main.partition_innodb test would
  also need futher investigation.

InnoDB ha_innobase::check_if_supported_inplace_alter to support the
removal of Field_{num,decimal}::is_equal AUTO_INCREMENT checks would need the following change

diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc
index a5ccb1957f3..9d778e2d39a 100644
--- a/storage/innobase/handler/handler0alter.cc
+++ b/storage/innobase/handler/handler0alter.cc
@@ -2455,10 +2455,15 @@ ha_innobase::check_if_supported_inplace_alter(
                        /* An AUTO_INCREMENT attribute can only
                        be added to an existing column by ALGORITHM=COPY,
                        but we can remove the attribute. */
- ut_ad((MTYP_TYPENR((*af)->unireg_check)
- != Field::NEXT_NUMBER)
- || (MTYP_TYPENR(f->unireg_check)
- == Field::NEXT_NUMBER));
+ if ((MTYP_TYPENR((*af)->unireg_check)
+ == Field::NEXT_NUMBER)
+ && (MTYP_TYPENR(f->unireg_check)
+ != Field::NEXT_NUMBER))
+ {
+ ha_alter_info->unsupported_reason = my_get_err_msg(
+ ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC);
+ DBUG_RETURN(HA_ALTER_INPLACE_NOT_SUPPORTED);
+ }

With this change the main.auto_increment test for bug #14573, under
innodb, will pass without the 2 --error ER_DUP_ENTRY entries.

The function header comment was updated to reflect the MDEV-31086
changes.

057fd52... by Yuchen Pei <email address hidden>

MDEV-32515 Use $MYSQLD_LAST_CMD in spider/bugfix.mdev_30370

$MYSQLD_CMD uses .1 as the defaults-group-suffix, which could cause
the use of the default port (3306) or socket, which will fail in
environment where these defaults are already in use by another server.

Adding an extra --defaults-group-suffix=.1.1 does not help, because
the first flag wins.

So we use $MYSQLD_LAST_CMD instead, which uses the correct suffix.

The extra innodb buffer pool warning is irrelevant to the goal of the
test (running --wsrep-recover with --plug-load-add=ha_spider should
not cause hang)