maria:preview-10.10-MDEV-7487-semijoin_for_update_delete

Last commit made on 2022-07-25
Get this branch:
git clone -b preview-10.10-MDEV-7487-semijoin_for_update_delete https://git.launchpad.net/maria

Branch merges

Branch information

Name:
preview-10.10-MDEV-7487-semijoin_for_update_delete
Repository:
lp:maria

Recent commits

6b89a22... by Daniel Black

MDEV-28883 Re-design the upper level of handling UPDATE and DELETE statements (postfix)

Correct -Winconsistent-missing-override(s):

Warnings were:

In file included from sql/sql_delete.cc:27:
sql/sql_delete.h:54:28: warning: 'get_dml_prelocking_strategy' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  DML_prelocking_strategy *get_dml_prelocking_strategy()
                           ^
sql/sql_cmd.h:394:36: note: overridden virtual function is here
  virtual DML_prelocking_strategy *get_dml_prelocking_strategy() = 0;
                                   ^
1 warning generated.
[682/735] Building CXX object sql/CMakeFiles/sql.dir/sql_truncate.cc.o
In file included from sql/sql_truncate.cc:31:
sql/sql_delete.h:54:28: warning: 'get_dml_prelocking_strategy' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  DML_prelocking_strategy *get_dml_prelocking_strategy()
                           ^
sql/sql_cmd.h:394:36: note: overridden virtual function is here
  virtual DML_prelocking_strategy *get_dml_prelocking_strategy() = 0;
                                   ^
1 warning generated.

2adebf4... by Igor Babaev

MDEV-7487 Semi-join optimization for single-table update/delete statements

This patch allows to use semi-join optimization at the top level of
single-table update and delete statements.
The problem of supporting such optimization became easy to resolve after
processing a single-table update/delete statement started using JOIN
structure. This allowed to use JOIN::prepare() not only for multi-table
updates/deletes but for single-table ones as well. This was done in the
patch for mdev-28883:
 Re-design the upper level of handling UPDATE and DELETE statements.

Note that JOIN::prepare() detects all subqueries that can be considered
as candidates for semi-join optimization. The code added by this patch
looks for such candidates at the top level and if such candidates are found
in the processed single-table update/delete the statement is handled in
the same way as a multi-table update/delete.

Approved by Oleksandr Byelkin <email address hidden>

f7d2374... by Sergei Golubchik

fixup! MDEV-28883 Re-design the upper level of handling UPDATE and DELETE statements

compilation failure (fall-through)
and ubsan failure (load of value 2779096485, which is not a valid value for type 'enum_lock_tables_state')

db2a0e7... by Sergei Golubchik

MDEV-27104 deprecate DES_ENCRYPT/DECRYPT functions

ed18f25... by Sergei Golubchik

don't use ssl for windows named pipes - it doesn't work

69b3069... by Sergei Golubchik

MDEV-27105 --ssl option set as default for mariadb CLI

but without server cert verification

f3271d9... by Alexander Barkov

MDEV-23287 The INET4 data type

700a703... by Vanislavsky <email address hidden>

MDEV-25704 Add RANDOM_BYTES function

MySQL 5.6 added the RANDOM_BYTES function.
https://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#function_random-bytes

This is needed for compatibility purposes.

49182ad... by Sergei Golubchik

MDEV-28632 Change default of explicit_defaults_for_timestamp to ON

3a966e3... by Sergei Golubchik

remove invalid test

it starts an EXPLAIN of a multi-table join and tries to KILL it.
no sync points.
depending on how fast the hareware is and optimizer development
it might kill EXPLAIN at some random point in time (generally unrelated
to the Bug#28598 it was supposed to test) or EXPLAIN might finish
before the KILL and the test will fail.