maria:bb-10.5-MDEV-30646

Last commit made on 2024-04-08
Get this branch:
git clone -b bb-10.5-MDEV-30646 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.5-MDEV-30646
Repository:
lp:maria

Recent commits

4930fb3... by Rucha Deodhar <email address hidden>

MDEV-30646: View created via JSON_ARRAYAGG returns incorrect json object

Analysis:
For the JSON typehandler ::type_handler_for_tmp_table() returns
plain VARCHAR. Hence so the VARCHAR field is created in the temporary table.
So 'is_json_type()' check in the append_json_value() fails and we end up
quoting the string additionally.
Fix:
Force treat it as json, because append_json_value() will of course always
append json.

2fcf2ec... by sjaakola <email address hidden>

MDEV-33749 hyphen in table name can cause galera certification failures

Fix in this commit handles foreign key value appending into write set
so that db and table names are converted from the filepath format
to tablename format. This is compatible with key values appended from
elsewhere in the code base

There is a mtr test galera.galera_table_with_hyphen for regression testing

Reviewer: <email address hidden>

4987b5e... by joshhn <email address hidden>

MDEV-33803 Error 4162 "Operator does not exists" is incorrectly-worded

"Operator does not exists" should rather read "Operator does not exist".

29bb321... by Alexander Barkov

MDEV-33788 HEX(COLUMN_CREATE(.. AS CHAR ...)) fails with --view-protocol

Item_func_dyncol_create::print_arguments() printed only CHARSET clause
without COLLATE.

Therefore,

HEX(column_create(1,'1212' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin))

inside a VIEW changed to just:

HEX(column_create(1,'1212' AS CHAR CHARACTER SET utf8mb3))

which changed the collation ID seen in the HEX output.

Note, the collation ID inside column_create() is not really much important.
(It's only important what the character set is).
And for COLLATE, the more important thing is what's later written
in the AS clause of COLUMN_GET:

SELECT
   COLUMN_GET(
    column_create(1,'1212' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin)
    column_nr AS type -- this type is more important
   );

Still, let's add the COLLATE clause into the COLUMN_CREATE() print output,
although it's not important for now for anything else than just the HEX output.
At least to make VIEW work in a more predictable way with HEX(COLUMN_CREATE()).

Also, in the future we can start using somehow the collation ID written inside
COLUMN_CREATE(), for example by making the `AS type` clause optional in
COLUMN_GET():
  COLUMN_GET(dyncol_blob, column_nr [AS type]);
instead of:
  COLUMN_GET(dyncol_blob, column_nr AS type);

SQL Server compatibility layer may need this for
the SQL_Variant data type support.

e1876e7... by Dmitry Shulga <email address hidden>

MDEV-33768: Memory leak found in the test main.constraints run with --ps-protocol against a server built with the option -DWITH_PROTECT_STATEMENT_MEMROOT

The discovered memory leak was introduced by the commit
  762bf7a03b6214f091a66ca8683df341112d7d4a
    (MDEV-22602 Disable UPDATE CASCADE for SQL constraints)

The reason why a memory leaked on running the test main.constraints
is that a statement arena was used for allocation a memory
for storing a constraint name. A constraint name is an entity having
temporary nature by its design so runtime arena should be used for its
allocation.

f44e41d... by Dmitry Shulga <email address hidden>

MDEV-33767: Memory leaks found in some tests run with --ps-protocol against a server built with the option -DWITH_PROTECT_STATEMENT_MEMROOT

Found memory leaks were introduced by the commit
  a896bebfa6d00b0bb7685956196a7977d9273652
  MDEV-18844 Implement EXCEPT ALL and INTERSECT ALL operations
and caused by using a statement arena instead a runtime arena for
allocation of objects having temporary life span by their nature.
Aforementioned memory leaks were produced by running queries
that typically use select with intersect, union or table values
constructors.

To fix these memory leaks use the runtime arena for allocation
of Item_field objects used by set operations.

Additionally, OOM handling added on allocation of aforementioned
Item_field objects.

9f1019b... by Daniel Black

MDEV-33044 Loading time zones does not work with alter_algorithm INPLACE (postfix)

Test case doesn't work on embedded builds.

7890388... by Anson Chung <email address hidden>

MDEV-33044 Loading time zones does not work with alter_algorithm INPLACE

$MYSQL_TZINFO_TO_SQL works by truncating tables. Truncation is an
operation that cannot be done in-place and therefore is fundamentally
incompatible with alter_algorithm='INPLACE'. As a result, we override
the default alter_algorithm setting in tztime.cc to
alter_algorithm='COPY' so that timezones can be loaded regardless
of the previously set alter_algorithm.

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.

81f75ca... by Sergei Golubchik

Fixed random failure in main.kill_processlist-6619

wait for all previous connections to disconnect and for all previous
queries to finish running

3226787... by Sergei Golubchik

Revert "Fixed random failure in main.kill_processlist-6619"

This reverts commit 8b3f470c0bdf183b26cb2b06a9ae416aa7f16b04.

because it doesn't work, the test still fails, and even more than before