maria:bb-10.4-bar-MDEV-27666

Last commit made on 2024-01-22
Get this branch:
git clone -b bb-10.4-bar-MDEV-27666 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-bar-MDEV-27666
Repository:
lp:maria

Recent commits

16c7244... by Alexander Barkov

MDEV-27666 User variable not parsed as geometry variable in geometry function

Adding a test that a 10.4 slave understands a 10.5.24 binary log with a POINT
user varible.

This test proves that:

- The 10.5->10.4 replication does not break

- The extra data type name chunk, indicated by the new 10.5
  User_var_log_event chunk code CHUNK_DATA_TYPE_NAME==2,
  is just ignored by 10.4, so a POINT user variable is seen
  as a LONGBLOB user variable. Hence, a 10.4 slave creates a LONGBLOB
  column instead of a POINT column. This is how a pre-MDEV-27666 version
  worked.
  After merging of this patch to 10.5, the SHOW CREATE TABLE statement
  in the test output is expected to report a POINT column rather than
  a LONGBLOB column.

7e8e51e... by Sisi Huang <email address hidden>

MDEV-32990 federatedx time_zone round trips

Modified `federatedx_io_mysql::actual_query` to set the time zone to '+00:00' only upon establishing a new connection instead of with each query execution.

e8041c7... by Igor Babaev

MDEV-33270 Failure to call SP invoking another SP with parameter requiring type conversion

This patch corrects the fix for MDEV-32569. The latter has not taken into
account the fact not each statement uses the SELECT_LEX structure. In
particular CALL statements do not use such structure. However the parameter
passed to the stored procedure used in such a statement may require an
invocation of Type_std_attributes::agg_item_set_converter().

Approved by Oleksandr Byelkin <email address hidden>

2ef01d0... by Brad Smith

wsrep scripts fixes for working on OpenBSD

ee1407f... by Marko Mäkelä

MDEV-32268: GNU libc posix_fallocate() may be extremely slow

os_file_set_size(): Let us invoke the Linux system call fallocate(2)
directly, because the GNU libc posix_fallocate() implements a fallback
that writes to the file 1 byte every 4096 or fewer bytes. In one
environment, invoking fallocate() directly would lead to 4 times the
file growth rate during ALTER TABLE. Presumably, what happened was
that the NFS server used a smaller allocation block size than 4096 bytes
and therefore created a heavily fragmented sparse file when
posix_fallocate() was used. For example, extending a file by 4 MiB
would create 1,024 file fragments. When the file is actually being
written to with data, it would be "unsparsed".

The built-in EOPNOTSUPP fallback in os_file_set_size() writes a buffer
of 1 MiB of NUL bytes. This was always used on musl libc and other
Linux implementations of posix_fallocate().

615f4a8... by Robin Newhouse <email address hidden>

MDEV-32587 Allow json exponential notation starting with zero

Modify the NS_ZERO state in the JSON number parser to allow
exponential notation with a zero coefficient (e.g. 0E-4).

The NS_ZERO state transition on 'E' was updated to move to the
NS_EX state rather than returning a syntax error. Similar change
was made for the NS_ZE1 (negative zero) starter state.

This allows accepted number grammar to include cases like:

- 0E4
- -0E-10

which were previously disallowed. Numeric parsing remains
the same for all other states.

Test cases are added to func_json.test to validate parsing for
various exponential numbers starting with zero coefficients.

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.

8e337e0... by Oleksandr "Sanja" Byelkin

new WolfSSL v5.6.6-stable

9c059a4... by Yuchen Pei <email address hidden>

Spider: no need to check for ubsan when running ubsan tests

It's ok to run these tests without ubsan too, and we get some tests
for free.

653cb19... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-26740 Inplace alter rebuild increases file size

PageBulk::init(): Unnecessary reserves the extent before
allocating a page for bulk insert. btr_page_alloc()
capable of handing the extending of tablespace.

f807a9f... by Oleksandr "Sanja" Byelkin

MDEV-31523 Using two temporary tables in OPTIMIZE TABLE lead to crash

Fixed typo in mysql_admin_table which cused call of
close_unused_temporary_table_instances alwas for the first table
instead of the current table.

Added ASSERT that close_unused_temporary_table_instances should not
remove all instances of user created temporary table.