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
Yuchen Pei
MDEV-38752 Check that virtual column is a supertype to its expression before substitution

New optimizations were introduced that substitute virtual column
expressions (abbr. vcol expr) with index virtual columns (abbr. vcol
field) in ORDER BY and GROUP BY.

In this patch we introduce checks that the type of a vcol field is the
supertype to its vcol expr, and if not, do not proceed the
optimization. This ensures that the substitution is safe and does not
for example lose information due to truncation.

For simplicity, the version of the check implemented is strict with
100% precision, meaning that there are instances where vcol field is a
supertype to vcol expr, but the check returns false.

Type not covered in tests: Type_handler_null

Thanks to Jarir Khan <[email protected]> for initial patches
addressing this issue.
Oleksandr Byelkin
change after changing server maturity
Jan Lindström
MDEV-39488 : Skip Galera test requiring perfschema if -DPLUGIN_PERFSCHEMA=NO

Test change only, this test does not need perfschema.
Oleksandr Byelkin
fix show create after merge
Alexander Barkov
MDEV-39587 Package-wide TYPE for variable declarations

Note: only sql_mode=ORACLE. Because TYPE is only available in sql_mode=ORACLE.

TODO: tests: all TYPE grammar
TODO: sql_path resolution
TODO: inside the package itself
bsrikanth-mariadb
MDEV-39405: store all the plugin-engines optimizer costs

store all the plugin-engines optimizer costs into the context, so that
the replay server uses the same engine costs while computing the query cost
Sergei Golubchik
MDEV-39582 mariadb-binlog missing sanity checks for ibb files

check that binlog_page_size <= BINLOG_PAGE_SIZE_MAX
Oleksandr Byelkin
MDEV-39389 Memory leaks in _db_set_init

Handle forgotten case of resetting parameters
(free command_line before assigning a new one).
Alexey Botchkov
MDEV-39536 ASAN heap-buffer-overflow in process_str_arg upon ER_TRUNCATED_WRONG_VALUE "Incorrect XML value".

Test casse added.
kjarir
MDEV-37664: Fix main.lotofstack failure under UBSAN

The test called bug10100p(255) expecting ER_STACK_OVERRUN_NEED_MORE, but
under UBSAN inflated per-frame stack usage causes the recursion limit to
be hit before the stack guard fires.

The max_sp_recursion_depth was not possible to extend beyond 255 which
would have enabled a compatible test.

The alternate considered was allowing an alternative error
ER_SP_RECURSION_LIMIT, however there is already sufficient tests on this.

To gain a positive test result for MTR in the UBSAN environment we've just
disabled the test there.

Reviewers: Joro Kodinov, Sergey Vojtovich, Daniel Black
Raghunandan Bhat
MDEV-39095: Fixes to MariaDB Syntax Checker

- Skip initializing stopwords for full-text indicies.
- Skip changing data directory when checking syntax.
- Help message when syntax checker is used in interactive mode.
- Initialize THD with a dummy database name to prevent `No database
  selected` error.
- Allow execution of SET sql_mode, so that subsequent queries are parsed
  based on the set sql mode.
- More tests: DDLs, DMLs, Stored Procedures, Views, sql_mode
Monty
Review fixes for "Code review feedback: `hp_update.c` cleanup, test renames, style fixes"

- Optimized struct layouts in heap.h even more by moving variables
  according to size
- Replaced max_heap_table_size with tmp_memory_table_size in tests
- In ha_heap::records_in_range, removed not needed variable blob_count
- In hp_blob.cc:hp_write_run_data() replaced loop with one memcpy
- In heap_write() replaced loop with jump to avoid code duplication

Other things:
- Removed extra empty lines
- Reformatted rows to fit 80 characters
- Removed not needed braces from blocks with no varaibles.
Daniel Black
MDEV-28374 UBSAN signed integer overflow PROCEDURE ANALYSE (fix)

The test cases added in [1] had a > 64 character recommendation
for Optimal_fieldtype. This was the limit on output of the field.
Under cursor mode the limit was enforced truncating the output.

Raised to a 1024 character limits as a fix for the MDEV-28374
tests, which exceeds the amount needed for for the utility of
users.

Note currently the output_str_length used in analyse::change_columns
is not currently set (so is 0) until analyse::end_of_records
is called, which is later. Consequently output_str_length is 0
and the 1024 raised maximium is used. MDEV-39586 has been raised
to correct this.

[1] 6eda0af40fa7bf5097303d1e7eb8e30632228993
Oleksandr Byelkin
Change maturity to stable
Monty
Review fixes for "Code review feedback: `hp_update.c` cleanup, test renames, style fixes"

- Optimized struct layouts in heap.h even more by moving variables
  according to size
- Replaced max_heap_table_size with tmp_memory_table_size in tests
- In ha_heap::records_in_range, removed not needed variable blob_count
- In hp_blob.cc:hp_write_run_data() replaced loop with one memcpy
- In heap_write() replaced loop with jump to avoid code duplication

Other things:
- Removed extra empty lines
- Reformatted rows to fit 80 characters
- Removed not needed braces from blocks with no varaibles.
bsrikanth-mariadb
MDEV-39405: store all the plugin-engines optimizer costs

store all the plugin-engines optimizer costs into the context, so that
the replay server uses the same engine costs while computing the query cost
Yuchen Pei
MDEV-39535 Check for signs of EOF in ha_partition::handle_unordered_prev

The fields m_part_spec.start_part and m_part_spec.end_part defines the
range of partitions for index scans.

Of these two fields, m_part_spec.start_part is also commonly assigned
NO_CURRENT_PART_ID to indicate uninitialisation or failure mode.

MDEV-20195 shows problems when "unordered" scan fails to detect such a
condition for HANDLER ... NEXT statements.

MDEV-37330 allows "unordered" scan to handle index_prev. So we have a
similar problem for HANDLER ... PREV statements, and fix it by
checking for m_part_spec.start_part == NO_CURRENT_PART_ID in
ha_partition::handle_unordered_prev.

Furthermore, "ordered" index scans, i.e. index scans utilising a
priority queue checks m_top_entry against NO_CURRENT_PART_ID to detect
similar issues. Unlike m_part_spec.start_part, m_top_entry is set by
"ordered" scans only. This is why we have to do similar checks on
m_part_spec.start_part in "unordered" scans regardless of the
direction of the scan. Also because of this, in this patch we now set
m_part_spec.start_part only to NO_CURRENT_PART_ID in
ha_partition::handle_unordered_scan_next_partition for EOF.

Also renamed ha_partition::m_unordered_reverse_index to
ha_partition::m_unordered_reverse_scan because it is always false when
there is only one partition to scan.

Two of the testcases (the non-original ones) don't fail before the
patch, but they take the same path i.e. enter
ha_partition::handle_unordered_prev with m_part_spec.start_part ==
NO_CURRENT_PART_ID.
Raghunandan Bhat
MDEV-39095: Fixes to MariaDB Syntax Checker

- Skip initializing stopwords for full-text indicies.
- Skip changing data directory when checking syntax.
- Help message when syntax checker is used in interactive mode.
- Initialize THD with a dummy database name to prevent `No database
  selected` error.
- Allow execution of SET sql_mode, so that subsequent queries are parsed
  based on the set sql mode.
- More tests.
Rucha Deodhar
MDEV-39449: Memory corruption (heap-buffer-overflow) in uint4korr and
Gcalc_function::count_internal, apparent partial stack looping in
Gcalc_function::count_internal and Assertion `(0)' failed in
Item_func_spatial_precise_rel::val_bool

Analysis:
ST_COVEREDBY() was linked with Item_func_spatial_precise_rel with
SP_COVEREDBY_FUNC, but the case was missing in val_bool() method.
This resulted in fall through switch leading to an assert/ASAN failure during

Fix:
Added the missing case and implemented it similar to WITHIN
(with MBR precheck + buffer). This fixes the crash and makes
ST_COVEREDBY() behave correctly.
Alexey Botchkov
MDEV-39536 ASAN heap-buffer-overflow in process_str_arg upon ER_TRUNCATED_WRONG_VALUE "Incorrect XML value".

Test casse added.
Daniel Black
MDEV-39523 UBSAN on ST_COLLECT (has_cached_value)

UBSAN errored with UBSAN: load of value 165, which is not a valid value for
type 'bool' on SELECT ST_COLLECT.

This was Item_func_collect::val_str reading the has_cached_value. The
member variable has_cached_value was set to true later in this function
when it had a cached value. There was no initialization of
has_cached_value to false in the constructor.

We copy the cached value if the Item_func_collect is copied.
Pavol Sloboda
Added a fix when building with openssl4 by using the opaque (#55)

implementation of the X509_name_st struct as X509_NAME
which was introduced in openssl-1.1.0 as can be seen here:
https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
this means that the fix is applicable in openssl versions older than 4.0
as well and won't break anything
Monty
squash! 4888cdb69fd115986625da2a44b78a6a3898983c

Fixed that heap_prepare_hp_create_info() honors tmp_memory_table_size
Fixed memory overrun error in hp_test_hash-t
Added DBUG_ASSERT to ensure that we are not used converted heap
keys with index_read()
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
Alexey Botchkov
MDEV-39570 LeakSanitizer: detected memory leaks after insert with xmltype

XML parser should always be freed.
bsrikanth-mariadb
MDEV-39405: store all the plugin-engines optimizer costs

store all the plugin-engines optimizer costs into the context, so that
the replay server uses the same engine costs while computing the query cost
Raghunandan Bhat
MDEV-39095: Fixes to MariaDB Syntax Checker

- Skip initializing stopwords for full-text indicies.
- Skip changing data directory when checking syntax.
- Help message when syntax checker is used in interactive mode.
- Initialize THD with a dummy database name to prevent `No database
  selected` error.
- Allow execution of SET sql_mode, so that subsequent queries are parsed
  based on the set sql mode.
- More tests.
Sergei Golubchik
MDEV-39582 mariadb-binlog missing sanity checks for ibb files

check that binlog_page_size <= BINLOG_PAGE_SIZE_MAX
Alexey Botchkov
MDEV-39536 ASAN heap-buffer-overflow in process_str_arg upon ER_TRUNCATED_WRONG_VALUE "Incorrect XML value".

Test casse added.
Alexey Botchkov
MDEV-38809 RBR fails upon DML with XML type.

Add Field_xmltype::rpl_conv_type_from() function to control
replication data types.
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 are 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.
Alexey Botchkov
MDEV-39536 ASAN heap-buffer-overflow in process_str_arg upon ER_TRUNCATED_WRONG_VALUE "Incorrect XML value".

Test casse added.
Alexey Botchkov
MDEV-39570 LeakSanitizer: detected memory leaks after insert with xmltype

XML parser should always be freed.
Mohammad Tafzeel Shams
MDEV-38305: Expose adaptive hash index statistics in ANALYZE FORMAT=JSON

Expose InnoDB's Adaptive Hash Index (AHI) statistics through ANALYZE
FORMAT=JSON output to provide query-level visibility into AHI usage
and effectiveness. This allows DBAs and developers to monitor how well
the adaptive hash index is serving their workloads on a per-query basis.

The r_ahi_stats object (nested inside r_engine_stats) now reports four
key metrics: ahi_searches (successful AHI lookups), ahi_searches_btree
(AHI misses requiring B-tree fallback), ahi_rows_added (rows inserted
into AHI), and ahi_pages_added (pages indexed by AHI).

- btr_ahi_inc_searches(): Increment counter when AHI lookup succeeds.
- btr_ahi_inc_searches_btree(): Increment counter when AHI lookup fails
  and falls back to B-tree search.
- btr_ahi_inc_rows_added(): Increment counter when rows are added to
  the adaptive hash index structure.
- btr_ahi_inc_pages_added(): Increment counter when new pages are
  indexed by AHI.
- btr_cur_t::search_leaf(): Call btr_ahi_inc_searches() on successful
  AHI hit and btr_ahi_inc_searches_btree() on AHI miss to track search
  outcomes at the point where AHI is utilized.
- trace_engine_stats(): Output r_ahi_stats object with all four AHI
  counters in JSON format when any AHI activity is detected during query
  execution.
- ha_handler_stats: Added ahi_searches, ahi_searches_btree, ahi_rows_added,
  and ahi_pages_added fields to track per-query AHI statistics.
- ahi_stats.test: Comprehensive verification of AHI statistics reporting
  across different scenarios: insufficient accesses (no AHI build),
  threshold triggering (AHI construction), heavy warmup (full AHI
  utilization), and disabled AHI (verify zero statistics).
- check_ahi_status.inc: Reusable include file for executing queries with
  configurable warmup repetitions and extracting AHI statistics from
  ANALYZE FORMAT=JSON output using JSON path expressions.
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.
Alexey Botchkov
MDEV-39536 ASAN heap-buffer-overflow in process_str_arg upon ER_TRUNCATED_WRONG_VALUE "Incorrect XML value".

XML should be prepared before inserting it into the error message.
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.
Raghunandan Bhat
MDEV-39095: Fixes to MariaDB Syntax Checker

- Skip initializing stopwords for full-text indicies.
- Skip changing data directory when checking syntax.
- Help message when syntax checker is used in interactive mode.
- Initialize THD with a dummy database name to prevent `No database
  selected` error.
- Allow execution of SET sql_mode, so that subsequent queries are parsed
  based on the set sql mode.
- More tests: DDLs, DMLs, Stored Procedures, Views, sql_mode