Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Categories: connectors experimental galera main
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

connectors experimental galera main
Sergei Golubchik
MDEV-17256 Decimal field multiplication bug

Fix multiplication correctly - by truncating long factors before
multiplication. Not both equally, but in a way that minimizes the
error.

Add more multiplication tests to verify that now multiplication
works correctly.
Sergei Golubchik
MDEV-39154 wrong OOM handling in collect_grouping_fields()

correct (and document) the return values for collect_grouping_fields()
Sergei Golubchik
MDEV-39154 wrong OOM handling in collect_grouping_fields()

correct (and document) the return values for collect_grouping_fields()
Sergei Golubchik
MDEV-37640 fix test for --view

followup for 05f901893382
Sergei Golubchik
MDEV-39111 The query returns an incorrect value when using LPAD and REPLACE

REPLACE() tries to modify its first argument in-place, provided it's
not a constant (like in REPLACE("foo", "bar"))

When the first argument was Item_cache_str, it was not marked as
a constant, thus REPLACE modified it in-place, and result of the
previous row leaked into the next one.
Sergei Golubchik
MDEV-30255 0 changed to 0.0 caused by DISTINCT and UNION ALL

Revert "MDEV-17256 Decimal field multiplication bug." (57898316b6fb)

It removes zero truncation from decimal_mul() and fixes
reported symptoms.

But reintroduces multiplication bug.
ParadoxV5
MDEV-38600: Warn when recreating MEMORY tables

Server restarts effectively TRUNCATE memory tables,
but there are no reminders about this “implicit data loss”,
despite consequences such as desync in replication.
This commit adds a table handler warning
when such a table is found `implicit_emptied`.

Since basic use of memory tables may already expect this effect, to
avoid unnecessary verbosity, this warning only emits from `@@read_only`
servers where the impact is more severe, for they’ll require
`READ_ONLY ADMIN` intervention to refill the lost data manually.
In the topic of replication, `@@read_only` is also more representative
of non-circular replicas than other configurations, such as
`--init-rpl-role=SLAVE`, which in practice is only used for Semi-Sync.

Reviewed-by: Brandon Nesterenko <[email protected]>
Sergei Golubchik
MDEV-30354 fix test for --view

followup for 0b3abff65874
Sergei Golubchik
MDEV-39112 The query returns incorrect results when using LPAD

LPAD was modifying its first argument, even if it was a const string
Sergei Golubchik
MDEV-17256 Decimal field multiplication bug

Fix multiplication correctly - by truncating long factors before
multiplication. Not both equally, but in a way that minimizes the
error.

Add more multiplication tests to verify that now multiplication
works correctly.
Sergei Golubchik
MDEV-39292 Debian build compiles Columnstore aarch64

only enable ColumnStore for architectures it supports
Sergei Golubchik
MDEV-23507 Wrong duplicate key value printed in ER_DUP_ENTRY

repair_by_sort() does not use table->record[0]
but print_keydup_error() expects to see the conflicting row there.
Sergei Golubchik
MDEV-39131 Wrong Results in Identical Queries Involving Grouping and Bitwise NOT (~)

Item_copy_string::val_int() should take into account item's
unsignedness
Sergei Golubchik
MDEV-39112 The query returns incorrect results when using LPAD

LPAD was modifying its first argument, even if it was a const string
Alexey Botchkov
MDEV-39210 ExtractValue/UpdateXML crash.

XML parser fixed to handle <! and <? correctly.
Sergei Golubchik
MDEV-30354 fix tests for --view

followup for 0b3abff65874
Sergei Golubchik
MDEV-39111 The query returns an incorrect value when using LPAD and REPLACE

REPLACE() tries to modify its first argument in-place, provided it's
not a constant (like in REPLACE("foo", "bar"))

When the first argument was Item_cache_str, it was not marked as
a constant, thus REPLACE modified it in-place, and result of the
previous row leaked into the next one.
Sergei Golubchik
MDEV-30255 0 changed to 0.0 caused by DISTINCT and UNION ALL

Revert "MDEV-17256 Decimal field multiplication bug." (57898316b6fb)

It removes zero truncation from decimal_mul() and fixes
reported symptoms.

But reintroduces multiplication bug.
Sergei Golubchik
MDEV-39292 Debian build compiles Columnstore aarch64

only enable ColumnStore for architectures it supports
ParadoxV5
MDEV-38600: Annotate the binlogging of recreating MEMORY tables

The data in MEMORY tables is temporary and is lost when the server
restarts. Thus, it is well-intentioned to record TRUNCATE statements
to the binary log when these tables are rediscovered empty. However,
as entries with no explicit user query associated (especially the lack
of SHUTDOWN on crashes), those unaware of this mechanism can find them
unexpected, not to mention their significance downstream in replication.

This commit adds a comment to these automatically generated
TRUNCATE entries to briefly self-describe their source and purpose.
As a part of the generated query, this comment is visible together
with the TRUNCATE itself in SHOW BINLOG EVENTS and `mariadb-binlog`,
while maintaining seamlessness in replication.

There are no other changes in behaviour or storage engine API.

Reviewed-by: Andrei Elkin <[email protected]>
Monty
Fixed duplicate key error when converting HEAP table Aria

The problem was that create_internal_tmp_table() tries to create a
normal key for the blob, which does not work.
The fix is to force a unique key if BLOB keys was used for the
the orignal HEAP table.
Sergei Golubchik
cleanup: make_dist.cmake.in

remove broken code duplication that
* explicitly listed every submodule that had its own submodules
* blindly executed `${GIT_EXECUTABLE}` after every `(SET GIT_EXECUTABLE)`
Monty
Fixed that Field_blob_compressed can be used in internal temporary tables

group_concat need special code in store() for storing the result
in table->blob_storage. This was implemented in Field_blob::store()
but not in Field_blob_compressed::store. This was temporarly solved
by not using Field_blob_compressed table->s->is_optimizer_tmp_table()
would be set. This this however disable Field_blob_compressed for
temporary tables that did not need a key for the blob field.

Fixed by ensuring that Field_blob::store and Field_blob_compressed::store
handles group_concat identically. As this handling is only done for
internal temporary tables, we store the data uncompressed for faster
usage by group_concat()
Monty
Removed duplicate versions of Field::row_pack_length()
Monty
Introduce Field_blob_key for handling keys on blobs for temporary tables

Field_blob_key is a new blob variant stored as [4-byte
length][data pointer] that can be used as a sort/distinct key in
optimizer temporary tables. Previously, plain Field_blob was used in
GROUP_CONCAT and UNION DISTINCT contexts, which could not be
properly compared as a key.

Field_blob_key allows removing of blob key re-packing in heap
introduced by HEAP GROUP BY / DISTINCT on TEXT/BLOB columns

Implementation:

Pass a new Tmp_field_param argument through all make_new_field() and
create_tmp_field() overrides so that field creation can know whether
the resulting field will be part of a unique/distinct key. This
partly replaces the earlier overloading of TABLE::group_concat.

Other things:
- Fix Field_blob_compressed::make_new_field() to correctly handle two
  distinct cases:
  - When part of a unique/distinct key: substitute with Field_blob_key so
  key comparisons work correctly.
  - When placed in any optimizer tmp table (e.g. GROUP_CONCAT with ORDER
  BY): substitute with a plain uncompressed Field_blob, fixing wrong
  results caused by the compressed field's internal value buffer being
  overwritten across rows.
- Fix UNIQUE_KEY_FLAG in the client protocol so it is also set for
  columns that are part of a UNION DISTINCT, not only for columns from
  unique indexes.
- Mark internal temporary tables created by create_tmp_table /
  Create_tmp_table with type RESULT_TMP_TABLE instead of
  INTERNAL_TMP_TABLE. This makes it easier to differentiate between
  temporary tables created as placeholder for normal tables, like
  in CREATE .. SELECT and ALTER TABLE, derived tables.
Sergei Golubchik
MDEV-23507 Wrong duplicate key value printed in ER_DUP_ENTRY

repair_by_sort() does not use table->record[0]
but print_keydup_error() expects to see the conflicting row there.
Sergei Golubchik
MDEV-39131 Wrong Results in Identical Queries Involving Grouping and Bitwise NOT (~)

Item_copy_string::val_int() should take into account item's
unsignedness
Sergei Golubchik
cleanup: make_dist.cmake.in

remove broken code duplication that
* explicitly listed every submodule that had its own submodules
* blindly executed `${GIT_EXECUTABLE}` after every `(SET GIT_EXECUTABLE)`