maria:bb-11.5-mdev-30929-wait-and-retry

Last commit made on 2024-04-24
Get this branch:
git clone -b bb-11.5-mdev-30929-wait-and-retry https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-11.5-mdev-30929-wait-and-retry
Repository:
lp:maria

Recent commits

395899a... by Yuchen Pei <email address hidden>

[demo] spider.spider_fixes_part: wait and retry

9b02b7c... by Alexander Barkov

MDEV-33827 UUID() returns a NULL-able result

It was wrong to derive Item_func_uuid from Item_func_sys_guid,
because the former is a function returning the UUID data type,
while the latter is a string function returning VARCHAR.

As a result of the wrong hierarchy, Item_func_uuid erroneously derived
Item_str_func::fix_fields(), which contains this code:

  /*
    In Item_str_func::check_well_formed_result() we may set null_value
    flag on the same condition as in test() below.
  */
  if (thd->is_strict_mode())
    set_maybe_null();

This code is not relevant to UUID() at all.
A simple fix would be to set_maybe_null(false) in
Item_func_uuid::fix_length_and_dec(). However,
it'd fix only exactly this single consequence of the wrong
class hierarchy, and similar bugs could appear again in
the future. Moreover, we're going to add functions UUIDv4()
and UUIDv7() soon (in 11.6). So it's better to fix the class hierarchy
in the right way before adding these new functions.

Fix:

- Adding a new abstract class Item_fbt_func in the template
  in sql_type_fixedbin.h
- Deriving Item_typecast_fbt from Item_fbt_func
- Deriving Item_func_uuid from Item_fbt_func
- Adding a new helper class UUIDv1. It derives from UUID, and additionally
  initializes the value to "UUID version 1" right in the constructor.
  Note, the new coming soon SQL functions UUIDv4() and UUIDv7()
  will also have corresponding classes UUIDv4 and UUIDv7.

So now UUID() is a pure "returning UUID" function,
like CAST(expr AS UUID) used to be, without any unintentional
artifacts of functions returning VARCHAR/TEXT.

Cleanup:
- Removing the member Item_func_sys_guid::with_dashes,
  as it's not needed any more:
  * Item_func_sys_guid now does not have any descendants any more
  * Item_func_sys_guid::val_str() itself always displays without dashes

0c0db46... by Trevor Gross <email address hidden>

Update doxygen annotations in `plugin.h`

Add doxygen markup so comments get picked up. Also fix minor typos and
expand documentation where relevant.

Signed-off-by: Trevor Gross <email address hidden>

aba03ee... by Yuchen Pei <email address hidden>

MDEV-33739 Check field type of the first field in check_sequence_fields()

This avoids non-integral types breaking the call of
sequence_structure().

593392b... by Yuchen Pei <email address hidden>

MDEV-31789 Deprecate spider_casual_read

The corresponding table param was deprecated as part of MDEV-28861

fcd7ae7... by Sergei Golubchik

re-enable WITH_SSL as a backward-compatibility shortcut

also, don't require -DWITH_SSL=system if OPENSSL_ROOT_DIR is specified

71d9272... by Sergei Golubchik

MDEV-33696 main.dyncol and ctype_unicode_casefold_bmp.inc in --view

temporarily disable view protocol

f10805f... by Sergei Golubchik

MDEV-31531 fix wsrep tests after 929c2e06aae4

d0c47cd... by Sergei Golubchik

wsrep.wsrep_provider_plugin_defaults update to 26.4.17

473ee85... by Sergei Golubchik

MDEV-28152 fix UBSAN error

sql_sequence.h:233:19: runtime error: signed integer overflow: -9223372036854775808 + -1 cannot be represented in type 'long long int'

followup for 374783c3d9a8