Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Categories: connectors experimental galera main
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

connectors experimental galera main
rusher
[misc] add maxscale testing
Dmitry Shulga
MDEV-30645: CREATE TRIGGER FOR { STARTUP | SHUTDOWN }

Core implementation

- Extended the sql grammar to support creation of system triggers
  on startup/shutdown
- System triggers metadata is loaded from the table mysql.event
- Events and system triggers share the same name space since both
  stored in the table mysql.event declared with the PRIMARY KEY (`db`,`name`)
  In result, attempt to create an event with the same name as existent
  trigger and vice versa results in failure with the new error
  ER_TRG_EVENT_CONFLICTS_NAME
- System triggers can be created only by users with the SUPER privilege
- Added the option --sys_triggers for mysqldump to dump system triggers.
  The option is turned off by default.
Monty
Added pcre2-8 for embedded server
rusher
[misc] skip MaxScale-incompatible auth tests
Monty
MDEV-39095 MariaDB server syntax checker

Adds option --check-syntax to mariadbd server.

This allows one to check if mariadbd supports some particular syntax.

Example usage:
cat file-with-sql-syntax | mariadbd [--no-defaults] --check-syntax
Monty
Fixed failing union test in main.group_by

This failed in buildbot on amd64-ubuntu-2204-debug-ps
Dmitry Shulga
MDEV-30645: CREATE TRIGGER FOR { STARTUP | SHUTDOWN }

Extended the system table mysql.event to support creation of
system triggers (startup, shutdown, logon, logoff) and ddl triggers.

The system table mysql.event is extended with three columns
  `kind`, `when`, `ddl_type`.
For the task MDEV-30645 only the column `kind` is required,
the other two columns are required for the tasks
  MENT-2355, MENT-2291
but since it is better to reduce a number of times the system table
is changed and as a consequences a number of upgrades to be run,
the entire set of columns is added at once.

Type of the columns `kind` and `ddl_type` are specified as SET to allow
storing of triggers that handle several events.
ParadoxV5
MDEV-38972 Refactor MDEV-37530 and MDEV-28302 to Use Internal Data Structures

We currently (should) use in-house data structures;
those in the C++ Standard Library are not yet formally approved.
Until that day comes (if ever),
this commit swaps the set of data structures.
As this commit contains no other significant refactoring,
this change from one library to the other is also
a sample for static and performance comparisons.
rusher
[misc] add maxscale testing
Dmitry Shulga
MDEV-30645: CREATE TRIGGER FOR { STARTUP | SHUTDOWN }

Follow-up to fix the issue with starting server on a data dictionary
with broken table mysql.event or on its previous version without
columns required for storing metadata about triggers.
Dave Gosselin
MDEV-39397: Document and clean up dump_leaf_key

Add a docblock for dump_leaf_key that describes each parameter
and the leaf payload layout, and documents the return values and
side effects.

Sprinkle inline comments through the body to explain the LIMIT and
OFFSET bookkeeping, the dual purpose of result_finalized, why
borrowing table->record[1] as scratch space is safe, the offset
translation for skipped null bytes, and why the blob_storage
truncation flag is cleared after raising ER_CUT_VALUE_GROUP_CONCAT.

Implement other code cleanups, too, like dropping the unused tmp2
String object and rename old_length to starting_len so the cut_max_length
call reads more directly.  Other changes include narrowing loop
variables to the loop scope, move declarations next to their
first use, and replacing the C casts with static_cast.

There should be no behavior changes at this commit.
rusher
[misc] maxscale CI test addition
PranavKTiwari
MDEV-38839: Fix assertion in close_thread_tables on CREATE TABLE...SELECT FOR UPDATE with MyISAM temp table in MIXED binlog mode

FOR UPDATE on a MyISAM temp table acquires TL_WRITE due to lack of
row-level locking, causing STMT_WRITES_TEMP_NON_TRANS_TABLE to be set
incorrectly for a read-only access in CREATE TABLE...SELECT FOR UPDATE.
This blocked binlog_truncate_trx_cache() in MIXED mode leaving row
events stranded in the cache and triggering the assertion.

Fix: In the binlog table access flag loop, set
STMT_READS_TEMP_NON_TRANS_TABLE instead of
STMT_WRITES_TEMP_NON_TRANS_TABLE for source temp tables in
CREATE TABLE...SELECT. Add stmt_writes_to_non_trans_temp_table() and
use it in MYSQL_BIN_LOG::write() instead of
stmt_accessed_non_trans_temp_table() to ensure
mark_modified_non_trans_temp_table() is called only for genuine writes.
Dave Gosselin
MDEV-23278: Incorrect Calculation with AVG() Function

Type_handler_int_result::Item_decimal_precision assumes that
max_length includes space for a sign, but Item_int literals don't
include such a space.  When aggregate_attributes_int propagates these
into functions via a Item_type_holder, the formula computes
precision-1 (or 0 for 1-digit cases), producing the incorrect
calculation with AVG.

This fix changes aggregate_attributes_int to follow the convention the
Type_handler expects, that max_length = max digit-count + (signed ? 1
: 0).  This matches the TODO comment that begins with "TODO: rewrite
aggregate_attributes_int()... " which suggested this idea.
Dmitry Shulga
MDEV-30645: CREATE TRIGGER FOR { STARTUP | SHUTDOWN }

Follow-up to fix building with EMBEDDED server. Since support of
events isn't compiled in for embedded server but some stuff from
implementation of events is used for support of triggers, common
source code used both for events and triggers was extracted into
the separate files event_common.cc/event_common.h
Marko Mäkelä
squash! 8bf07427966559ba36e94d35e8bd41941d219dfd

log_t::checkpoint_age_max(): Return the maximum checkpoint age.

log_t::archive_new_write(): If the log file would overflow,
increase innodb_log_file_size to the next multiple of 4096 bytes.

log_write_up_to(): Remove a redundant buf_flush_ahead() call.
The call will be triggered in mini-transaction commit based
on the return value of log_close().
rusher
[misc] add maxscale testing
  • cc-alma8-aarch64: build linux-connector_c failed -  stdio
  • cc-alma9-aarch64: build linux-connector_c failed -  stdio
  • cc-alma9-amd64: build linux-connector_c failed -  stdio
  • cc-bookworm-aarch64: build linux-connector_c failed -  stdio
  • cc-bookworm-amd64: build linux-connector_c failed -  stdio
  • cc-bullseye-aarch64: build linux-connector_c failed -  stdio
  • cc-bullseye-amd64: build linux-connector_c failed -  stdio
  • cc-buster-aarch64: build linux-connector_c failed -  stdio
  • cc-buster-amd64: build linux-connector_c failed -  stdio
  • cc-fedora37-amd64: build linux-connector_c failed -  stdio
  • cc-fedora38-amd64: build linux-connector_c failed -  stdio
  • cc-fedora39-amd64: build linux-connector_c failed -  stdio
  • cc-focal-aarch64: build linux-connector_c failed -  stdio
  • cc-focal-amd64: build linux-connector_c failed -  stdio
  • cc-jammy-aarch64: build linux-connector_c failed -  stdio
  • cc-jammy-amd64: build linux-connector_c failed -  stdio
  • cc-noble-aarch64: build linux-connector_c failed -  stdio
  • cc-noble-amd64: build linux-connector_c failed -  stdio
  • cc-rhel8-aarch64: build linux-connector_c failed -  stdio
  • cc-rhel8-amd64: build linux-connector_c failed -  stdio
  • cc-rhel9-aarch64: build linux-connector_c failed -  stdio
  • cc-rhel9-amd64: build linux-connector_c failed -  stdio
  • cc-rocky8-aarch64: build linux-connector_c failed -  stdio
  • cc-sles15-amd64: build linux-connector_c failed -  stdio
  • cc-x-codbc-windows: 'dojob pwd if '3.4' == '3.4' ls win32/test SET TEST_DSN=master SET TEST_DRIVER=master SET TEST_PORT=3306 SET TEST_SCHEMA=odbcmaster if '3.4' == '3.4' cd win32/test if '3.4' == '3.4' ctest --output-on-failure' failed -  stdio
Dave Gosselin
MDEV-23278: Incorrect Calculation with AVG() Function

Type_handler_int_result::Item_decimal_precision assumes that
max_length includes space for a sign, but Item_int literals don't
include such a space.  When aggregate_attributes_int propagates these
into functions via a Item_type_holder, the formula computes
precision-1 (or 0 for 1-digit cases), producing the incorrect
calculation with AVG.

This fix changes aggregate_attributes_int to follow the convention the
Type_handler expects, that max_length = max digit-count + (signed ? 1
: 0).  This matches the TODO comment that begins with "TODO: rewrite
aggregate_attributes_int()... " which suggested this idea.
rusher
[misc] Skip test_conc26 on MaxScale
rusher
[misc] maxscale CI test addition
rusher
[misc] add maxscale testing
Monty
Added pcre2-8 for embedded server
rusher
[misc] maxscale CI test addition
Daniel Black
MDEV-38913: pam_mariadb_mtr.so installation path change

This reverts the effect of MDEV-21654 and includes
pam_mariadb_mtr in the mariadb-test-data Deb package.

This allows our CI systems to run tests on the
pam implementation on Debian systems.

As the pam configuration can include a full path,
we've change the installation of the pam module
pam_mariadb_mtr.so to under the /usr/lib*/plugins/test_pam_modules
directory and configured the pam configuration file,
suite/plugins/pam/mariadb_mtr, to include the
full path to pam_mariadb_mtr.so.
rusher
[misc] add maxscale testing
ParadoxV5
MDEV-39482: Remove `@@relay_log_info_file` MySQL/MariaDB 5.5 format test

MariaDB 5.5 has been EOL for 6 years, and MySQL 5.5 for almost 7½ years.
Code improvements are therefore no longer obliged to retain a
slightly divergent path that supports upgrades from those versions.
Monty
MDEV-39095 MariaDB server syntax checker

Adds option --check-syntax to mariadbd server.

This allows one to check if mariadbd supports some particular syntax.

Example usage:
cat file-with-sql-syntax | mariadbd [--no-defaults] --check-syntax
Daniel Black
MDEV-38979 RocksDB TLS destructor called after dlclose

During the mariadb application exit, the TLS desctructors
where called, but the function was previously dlclosed
so it wasn't available.

On the assumption that this is STB_GNU_UNIQUE, we disable
this optimization with -fno-gnu-unique.
rusher
[misc] maxscale CI test addition
Dave Gosselin
MDEV-39397: GROUP_CONCAT of BIT returns decimal, not packed bytes

When DISTINCT or ORDER BY is in play, GROUP_CONCAT builds an
internal temp table and converts BIT arguments to integers so records
can be compared by memcmp.  Calling val_str() on that field
then returned the decimal form ("0", "1", "3") instead of the
packed bit bytes that Field_bit::val_str() emits everywhere else,
including the "plain" GROUP_CONCAT path.

Override get_str_from_field() for Item_func_group_concat to detect
when the argument is BIT, read the value as an integer from the
temp table field, and pack it into (max_length + 7) / 8 bytes,
mirroring Field_bit::val_str().  This makes DISTINCT and ORDER BY
agree with the plain path.

Before this change, BIT fields in group_concat were rendered
as ASCII which was incorrect and produced the wrong result as
described in the ticket.  With this fix, we also update the
existing test cases to wrap BIT columns with '+0' so the recorded
output stays in ASCII format.  Now, with this patch and the test
case from the ticket, MariaDB and MySQL produce identical resultset
of a single row, single column having value 08.

By default, a group_concat including BIT fields on MySQL returns a
hexified value for its resultset whereas MariaDB requires the
hex() function to wrap group_concat for the same result:

Setup:
  create table t1(a bit(2), b varchar(10), c bit);
  insert into t1 values (1, 'a', 0), (0, 'b', 1);

MySQL:
  mysql> select group_concat(a, c) from t1;
  +----------------------------------------+
  | group_concat(a, c)                    |
  +----------------------------------------+
  | 0x01002C0001                          |
  +----------------------------------------+
  1 row in set (0.001 sec)

MariaDB:
  MariaDB [test]> select hex(group_concat(a, c)) from t1;
  +-------------------------+
  | hex(group_concat(a, c)) |
  +-------------------------+
  | 01002C0001              |
  +-------------------------+
  1 row in set (0.001 sec)
Georg Richter
MDEV-39509: Fix "invalid iv length" with OpenSSL 4.0

OpenSSL 4.0 changed the behavior of EVP_CIPHER_CTX_new:
It now initializes the internal iv_len with a sentinel
value of -1. When calling EVP_CipherInit_ex with the
cipher, key, and IV simultaneously, the provider validates
the IV against this sentinel before the cipher's default
metadata is applied, triggering an error.

This patch implements a two-stage initialization for OpenSSL 4.0+:
- Call EVP_CipherInit_ex with only the cipher to "thaw" the
  context and set the correct default iv_len.
- Perform a second call to provide the actual Key and IV data.

This approach ensures compatibility with OpenSSL 4.0 while
avoiding EVP_CipherInit_ex2 to maintain support for FIPS mode
and older versions.
PranavKTiwari
MDEV-38839 Assertion (thd->state_flags & Open_tables_state::BACKUPS_AVAIL) || !thd->has_pending_row_events() failed in close_thread_tables on CREATE TABLE
In MYSQL_BIN_LOG::write(), mark_modified_non_trans_temp_table() was called on any access to a non-trans temp table. FOR UPDATE on a MyISAM temp table acquires TL_WRITE due to lack of row-level locking, causing the flag to be set incorrectly for a read-only access. This blocked binlog_truncate_trx_cache() in MIXED mode leaving row events stranded in the cache and triggering the assertion.
Fix: restrict mark_modified_non_trans_temp_table() to only when actual row modification events (WRITE/UPDATE/DELETE) are being written, using the existing LOG_EVENT_IS_WRITE_ROW(), LOG_EVENT_IS_UPDATE_ROW() and LOG_EVENT_IS_DELETE_ROW() helpers.
"
rusher
Fix handling of length_value for fixed-size temporal types after libmariadb CONC-812 change

libmariadb CONC-812 changed mysql_stmt_bind_result to initialize length_value=0 for fixed-size struct types (DATE/TIME/DATETIME/TIMESTAMP). While the MYSQL_TIME buffer is still correctly filled by ps_fetch_datetime, length_value is no longer set to sizeof(MYSQL_TIME). Use buffer_length as fallback when length_value is 0 for temporal types.
rusher
[misc] maxscale CI test addition
Marko Mäkelä
squash! e3e4c0ba16eb57674a640e0e7f5e950afef6b3c9

log_t::checkpoint_age_max(): Return the maximum checkpoint age.

log_t::archive_new_write(): If the log file would overflow,
increase innodb_log_file_size to the next multiple of 4096 bytes.

log_write_up_to(): Remove a redundant buf_flush_ahead() call.
The call will be triggered in mini-transaction commit based
on the return value of log_close().
rusher
[misc] maxscale CI test addition
rusher
[misc] add maxscale testing
ParadoxV5
Move `Info_file`s’ `VALUE_LIST`s to for-each

This commit refactors the static lists of bulky member pointer
substitutes to instance-level lists of on-demand references.

The choice of these static lists was an aggressive optimization.
Once operations reduce dependence on saving and loading, e.g., for crash
safety in non-GTID mode, that improvement will no longer be significant.
rusher
[misc] add maxscale testing
rusher
[misc] Skip test_conc26 on MaxScale

(cherry picked from commit 93bb9266666a0a838187679ad2cc14af169895da)
  • cc-alma8-aarch64: build linux-connector_c failed -  stdio
  • cc-alma9-aarch64: build linux-connector_c failed -  stdio
  • cc-alma9-amd64: build linux-connector_c failed -  stdio
  • cc-bookworm-aarch64: build linux-connector_c failed -  stdio
  • cc-bookworm-amd64: build linux-connector_c failed -  stdio
  • cc-bullseye-aarch64: build linux-connector_c failed -  stdio
  • cc-bullseye-amd64: build linux-connector_c failed -  stdio
  • cc-buster-aarch64: build linux-connector_c failed -  stdio
  • cc-buster-amd64: build linux-connector_c failed -  stdio
  • cc-fedora37-amd64: build linux-connector_c failed -  stdio
  • cc-fedora38-amd64: build linux-connector_c failed -  stdio
  • cc-fedora39-amd64: build linux-connector_c failed -  stdio
  • cc-focal-aarch64: build linux-connector_c failed -  stdio
  • cc-focal-amd64: build linux-connector_c failed -  stdio
  • cc-jammy-aarch64: build linux-connector_c failed -  stdio
  • cc-jammy-amd64: build linux-connector_c failed -  stdio
  • cc-noble-aarch64: build linux-connector_c failed -  stdio
  • cc-noble-amd64: build linux-connector_c failed -  stdio
  • cc-rhel8-aarch64: build linux-connector_c failed -  stdio
  • cc-rhel8-amd64: build linux-connector_c failed -  stdio
  • cc-rhel9-aarch64: build linux-connector_c failed -  stdio
  • cc-rhel9-amd64: build linux-connector_c failed -  stdio
  • cc-rocky8-aarch64: build linux-connector_c failed -  stdio
  • cc-sles15-amd64: build linux-connector_c failed -  stdio
  • cc-x-codbc-windows: 'dojob pwd if '3.4' == '3.4' ls win32/test SET TEST_DSN=master SET TEST_DRIVER=master SET TEST_PORT=3306 SET TEST_SCHEMA=odbcmaster if '3.4' == '3.4' cd win32/test if '3.4' == '3.4' ctest --output-on-failure' failed -  stdio