maria:bb-10.3-sujatha

Last commit made on 2022-01-25
Get this branch:
git clone -b bb-10.3-sujatha https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.3-sujatha
Repository:
lp:maria

Recent commits

e28985a... by Sujatha Sivakumar

MDEV-7850 MariaDB doesn't show thread_id for ROW-based events in binlog

Add thread id to Gtid_log_event. FL_EXTRA_THREAD_ID flag is added to detect if
there is thread_id in GTID_EVENT or not

466d817... by Alexey Botchkov

MDEV-26768 Spider table crashes the server after the mysql_list_fields() client's call and produces weird result for SHOW FIELDS.

Suppress errors in ha_spider::info() called from mysqld_show_fields()

7922fbf... by Sergey Petrunia

MDEV-26249: Crash in Explain_node::print_explain_for_children with slow query log

The problem affected queries in form:

  SELECT FROM (SELECT where Split Materialized is applicable) WHERE 1=0

The problem was caused by this:
- The select in derived table uses two-phase optimization (due to a
  possible Split Materialized).
- The primary select has "Impossible where" and so it short-cuts its
  optimization.
- The optimization for the SELECT in the derived table is never finished,
  and EXPLAIN data structure has a dangling pointer to select #2.

Fixed with this: make JOIN::optimize_stage2() invoke optimization of
derived tables when it is handing a degenerate JOIN with zero tables.
We will not execute the derived tables but we need their query plans
for [SHOW]EXPLAIN.

dfbfd39... by Monty <email address hidden>

Updated rocksdb.corrupted_data_reads_debug result file

The change was because of new rocksdb error message.

97425f7... by Igor Babaev

MDEV-27132 Wrong result from query when using split optimization

This bug could affect queries with a grouping derived table containing
equalities in the where clause of its specification if the optimizer
chose to apply split optimization to access the derived table. In such
cases wrong results could be returned from the queries.
When the optimizer considers a possibility of using split optimization
to a derived table it injects equalities joining the derived table with
other tables into the where condition of the derived table. After the join
order for the execution using split optimization has been chosen as the
cheapest the injected equalities that are not used to access the derived
table are removed from the where condition of the derived table.
For this removal the optimizer looks through the conjuncts of the where
condition of the derived table, fetches the equalities and checks whether
they belong to the list of injected equalities.
As the injection of the list was performed just by the insertion of it
into the list of top level AND condition of the where condition some extra
conjuncts from the where condition could be automatically attached to the
end of the list of injected equalities. If such attached conjunct happened
to be an equality predicate it was removed from the where condition of the
derived table and thus lost for checking at the execution phase.
The bug has been fixed by injecting of a shallow copy of the list of the
pushed equalities rather than the list itself leaving the latter intact.

Approved by Oleksandr Byelkin <email address hidden>

7105c81... by midenok

MDEV-27217 typo fix

c81677b... by midenok

rocksdb.tbl_opt_data_index_dir test fix

Handler error codes in storage engine may change as they depend on
volatile HA_ERR_LAST.

585cb18... by midenok

MDEV-27452 TIMESTAMP(0) system field is allowed for certain creation of system-versioned table

First, we do not add VERS_UPDATE_UNVERSIONED_FLAG for system field and
that fixes SHOW CREATE result.

Second, we have to call check_sys_fields() for any CREATE TABLE and
there correct type is checked for system fields.

Third, we update system_time like as_row structures for ALTER TABLE
and that makes check_sys_fields() happy for ALTER TABLE when we make
system fields hidden.

241ac79... by midenok

MDEV-26778 row_start is not updated in current row for InnoDB

Update was skipped (need_update was false) because compare_record()
used HA_PARTIAL_COLUMN_READ branch and it skipped row_start check
has_explicit_value() was false. When we set bit for row_start in
has_value_set the row is updated with new row_start value.

The bug was caused by combination of MDEV-23446 and 3789692d176. The
latter one says:

  ... But generated columns that are written to the table are always
  deterministic and cannot change unless normal non-generated columns
  were changed. ...

Since MDEV-23446 generated row_start can change while non-generated
columns are not changed.

Explicit value flag came from HAS_EXPLICIT_DEFAULT which was used to
distinguish default-generated value from user-supplied one.

7c61fb2... by midenok

MDEV-27217 ha_partition::start_stmt() ignored error fix

ha_partition::start_stmt() continued processing in error state. Though
no known bug cases yet it seems break was made incorrect by
f93a2a3b3b5 (2016) while originally break was ok since cd483c552094
(2005).