maria:bb-10.4-vicentiu

Last commit made on 2024-01-23
Get this branch:
git clone -b bb-10.4-vicentiu https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-vicentiu
Repository:
lp:maria

Recent commits

7c2f082... by Vicențiu Ciorbaru

Improve READLINE_V5 detection

More in depth check to cover all used readline functions.

27459b4... by Vicențiu Ciorbaru

MDEV-14448: Ctrl-C should not exit client

Undo any Windows behaviour changes.

15bd7e0... by Oleksandr "Sanja" Byelkin

"New" version of CC (in fact no changes)

a9172b8... by Oleksandr "Sanja" Byelkin

Update minizip files for connect enginbe from last zlib 1.3.

01ca57e... by Brandon Nesterenko

MDEV-32168: Postpush fix for rpl_domain_id_filter_master_crash

While a replica may be reading events from the
primary, the primary is killed. Left to its own
devices, the IO thread may or may not stop in
error, depending on what it is doing when its
connection to the primary is killed (e.g. a
failed read results in an error, whereas if the
IO thread is idly waiting for events when the
connection dies, it will enter into a reconnect
loop and reconnect). MDEV-32168 changed the test
to always wait for the reconnect, thus breaking
the error case, as the IO thread would be stopped
at a time of expecting it to be running.

The fix is to manually stop/start the IO thread
to ensure it is in a consistent state.

Note that rpl_domain_id_filter_master_crash.test
will need additional changes after fixing MDEV-33268

Reviewed By:
============
Kristian Nielsen <email address hidden>

3cd8875... by Vicențiu Ciorbaru

MDEV-14448: Ctrl-C should not exit the client

This patch introduces the following behaviour for Linux while
maintaining old behaviour for Windows:

Ctrl + C (sigint) clears the current buffer and redraws the prompt.
Ctrl-C no longer exits the client if no query is running.
Ctrl-C kills the current running query if there is one. If there is an
error communicating with the server while trying to issue a KILL QUERY,
the client exits. This is in line with the past behaviour of Ctrl-C.
On Linux Ctrl-D can be used to close the client.
On Windows Ctrl-C and Ctrl-BREAK still exits the client if no query is running.
Windows can also exit the client via \q<enter> or exit<enter>.

== Implementation details ==
The Linux implementation has two corner cases, based on which library is
used: libreadline or libedit, both are handled in code to achieve the
same user experience.

Additional code is taken from MySQL, ensuring there is identical
behaviour on Windows, to MySQL's mysql client implementation for other
CTRL- related signals.

* The CTRL_CLOSE, CTRL_LOGOFF, CTRL_SHUTDOWN will issue the equivalent
  of CTRL-C and "end" the program. This ensures that the query is killed
  when the client is closed by closing the terminal, logging off the
  user or shutting down the system. The latter two signals are not sent
  for interactive applications, but it handles the case when a user has
  defined a service to use mysql client to issue a command. See
  https://learn.microsoft.com/en-us/windows/console/handlerroutine

This patch is built on top of the initial work done by Anel Husakovic
<email address hidden>.
Closes #2815

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().