maria:bb-10.4-elenst-no-mdev371

Last commit made on 2019-02-26
Get this branch:
git clone -b bb-10.4-elenst-no-mdev371 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-elenst-no-mdev371
Repository:
lp:maria

Recent commits

043c047... by Marko Mäkelä on 2019-02-25

MDEV-18719 Assertion (c.prtype ^ o->prtype) & ... failed on ALTER TABLE

The prtype & DATA_LONG_TRUE_VARCHAR flag only plays a role when
converting between InnoDB internal format and the MariaDB SQL layer
row format. Ideally this flag would never have been persisted in the
InnoDB data dictionary.

There were bogus assertion failures when an instant ADD, DROP, or
column reordering was combined with a change of extending a VARCHAR
from less than 256 bytes to more than 255 bytes. Such changes are
allowed starting with MDEV-15563 in MariaDB 10.4.3.

dict_table_t::instant_column(), dict_col_t::same_format(): Ignore
the DATA_LONG_TRUE_VARCHAR flag, because it does not affect the
persistent storage format.

0704e70... by Alexander Barkov on 2019-02-21

MDEV-18408 Assertion `0' failed in Item::val_native_result / Timestamp_or_zero_datetime_native_null::Timestamp_or_zero_datetime_native_null upon mysqld_list_fields after crash recovery

The problem happened because Item_ident_for_show did not implement val_native().

Solution:

- Removing class Item_ident_for_show
- Implementing a new method Protocol::send_list_fields() instead,
  which accepts a List<Field> instead of List<Item> as input.
  Now no any Item creation is done during mysqld_list_fields().

Adding helper methods, to reuse the code easier:
- Moved a part of Protocol::send_result_set_metadata(),
  responsible for sending an individual field metadata,
  into a new method Protocol_text::store_field_metadata().
  Reusing it in both send_list_fields() and send_result_set_metadata().
- Adding Protocol_text::store_field_metadata()
- Adding Protocol_text::store_field_metadata_for_list_fields()

Note, this patch also automatically fixed another bug:

MDEV-18685 mysql_list_fields() returns DEFAULT 0 instead of DEFAULT NULL for view columns

The reason for this bug was that Item_ident_for_show::val_xxx() and get_date()
did not check field->is_null() before calling field->val_xxx()/get_date().
Now the default value is correctly sent by Protocol_text::store(Field*).

1fbe9bb... by Igor Babaev on 2019-02-24

MDEV-18668 Server crash or ASAN use-after-poison in Item_equal_iterator /
           st_select_lex::pushdown_from_having_into_where upon query
           with impossible WHERE condition

Do not push from HAVING into impossible WHERE

53ebeb0... by Igor Babaev on 2019-02-24

MDEV-18681 Server crashes in embedding_sjm

Do not do substitution for best equal field in HAVING conditions.
It's not needed.

5b4d659... by Oleksandr Byelkin <email address hidden> on 2019-02-21

fix test to pass on embedded serever

33b9f80... by Sergei Golubchik on 2019-02-21

mysql_install_db: make sure the variable's value is visible

move the assignment out of a function, so that it wouldn't
happen in a subshell

7c8e17b... by Marko Mäkelä on 2019-02-21

MDEV-18677 clang-cl 7 fails to compile innodb

ib_counter_element_t: Declare as struct, not union.

Based on patch by Vladislav Vaintroub

7f6d889... by Sergei Golubchik on 2019-02-20

MDEV-12484 Enable unix socket authentication by default

Debian part. Do not ask to set a root password,
do not create debian-sys-maint user (but preserve an existing one
on upgrades - user scripts might be relying on it).

Just create an empty /etc/mysql/debian.cnf for --defaults-file not to fail

132216f... by Sergei Golubchik on 2019-02-20

don't invoke error interceptors for fatal errors

and, again, *don't use thd->clear_error()*

this fixed main.sp_notembedded failure on various amd64 platforms
(where ER_STACK_OVERRUN_NEED_MORE happens to fire in open_stat_tables()
under Dummy_error_handler)

65ffea3... by Sergei Golubchik on 2019-02-19

MDEV-18297 clarify mysql_install_db help text