maria:bb-10.7-mdev-27159-insert-hf

Last commit made on 2022-03-15
Get this branch:
git clone -b bb-10.7-mdev-27159-insert-hf https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.7-mdev-27159-insert-hf
Repository:
lp:maria

Recent commits

905a453... by Alexey Botchkov

MDEV-27159 Re-design the upper level of handling DML commands.

Sql_cmd_insert class introduced.

086a212... by Igor Babaev

MDEV-27159 Re-design the upper level of handling DML commands

This is the first commit for the task. This patch allows to execute only
single-table and multi-table UPDATE statements using the method
Sql_cmd_dml::execute(). The code that handles DELETE and INSERT statements
has not been touched.

Moreover, these are not the final changes to handle UPDATE statements.
All tests from the main suite passed. With --ps-protocol one test from
opt_trace_security returns not the same result. This will be fixed soon.

593885f... by Eric Herman

MDEV-23143 Add JSON_EQUALS function

This patch implements JSON_EQUALS SQL function. The function takes
advantage of the json_normalize functionality and does the following:

norm_a = json_normalize(a)
norm_b = json_normalize(b)
return strcmp(norm_a, norm_b)

Co-authored-by: Vicențiu Ciorbaru <email address hidden>

fcde341... by Eric Herman

MDEV-16375 Function to normalize a json value

This patch implements JSON_NORMALIZE SQL function.

Co-authored-by: Vicențiu Ciorbaru <email address hidden>

105e414... by Eric Herman

Add json_normalize function to json_lib

This patch implements a library for normalizing json documents.
The algorithm is:
* Recursively sort json keys according to utf8mb4_bin collation.
* Normalize numbers to be of the form [-]<digit>.<frac>E<exponent>
* All unneeded whitespace and line endings are removed.
* Arrays are not sorted.

Co-authored-by: Vicențiu Ciorbaru <email address hidden>

7b587fc... by Eric Herman

fix json typo s/UNINITALIZED/UNINITIALIZED/

71ed8c1... by Vicențiu Ciorbaru

Test cases require debug_sync enabled

fcbb2a1... by Monty <email address hidden>

Make marking/testing of top level item uniform

There where several different implementations of is_top_level_item(),
with different variable names and tests. In some cases the code used
'is_top_level_item()' as a test, in other cases it accessed the variable
directrly. This patch makes all usage of 'top_level_item' uniform.

The new implementation stores the 'is_tol_level_item()' flag as part
of base_flags. This saves 7 bytes in all items that previously stored
the flag in it's own bool.

I had to keep 'top_level_item()' virtual to ensure that Item_bool_const
item's will not be updated. 'is_top_level_item()' is not virtual
anymore.

f069aa1... by Vicențiu Ciorbaru

Update debian packaging for 10.7

Conflicts/Replaces mariadb-client-core mariadb-client, cover 10.6
Also update salsa-ci to appropriately name tests as upgrades to 10.7

b1d8197... by Monty <email address hidden>

Added support to MEM_ROOT for write protected memory

This is useful for thing like Item_true and Item_false that we
allocated and initalize once and want to ensure that nothing can
change them

Main changes:
- Memory protection is achived by allocating memory with mmap() and
  protect it from write with mprotect()
- init_alloc_root(...,MY_ROOT_USE_MPROTECT) will create a
  memroot that one can later use with protect_root() to turn it
  read only or turn it back to read-write. All allocations to this
  memroot is done with mmap() to ensure page alligned allocations.
- alloc_root() code was rearranged to combine normal and valgrind code.
- init_alloc_root() now changes block size to be power of 2's, to get less
  memory fragmentation.
- Changed MEM_ROOT structure to make it smaller. Also renamed
  MEM_ROOT m_psi_key to psi_key.
- Moved MY_THREAD_SPECIFIC marker in MEM_ROOT from block size (old hack)
  to flags.
- Added global variable my_system_page_size. This is initialized at
  startup.