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
Raghunandan Bhat
MDEV-39744: Assertion `buf != end` failed in `decimal_mul`

Problem:
  Decimal division with `div_precision_increment=0` can result in zero
  when the quotient is below 1 (e.g. 273/941), producing a decimal with
  no digit words (both intg=0 and frac=0) but with sign still set.
  Multiplying such zero with negative sign with another zero, reaches
  the negative zero check, where debug assert fails.

Fix:
  Scan the digit words within bounds instead of assuming at least one
  exists. If there are no words, or all words are zero, the value is
  decimal zero, so normalize it by clearing the sign.
Sergei Golubchik
w 6.6 EXPLAIN
Sergei Golubchik
w 6.0
Sergei Golubchik
cleanup: change mhnsw* code to use init/next not first/next api
Sergei Golubchik
w 5.4
Oleg Smirnov
MDEV-32326 Recursive CTE reference in a scalar subquery must be rejected

A recursive reference to a WITH RECURSIVE table that is reachable only
through a scalar subquery (in particular through a WITH clause nested
inside such a subquery) was not recognized as a subquery reference. As a
result the recursive CTE was wrongly accepted as standard-compliant instead
of being rejected with ER_NOT_STANDARD_COMPLIANT_RECURSIVE, and execution
later dereferenced an uninitialized join_tab for that reference in
st_select_lex_unit::exec_recursive(), crashing the server.

The cause was in With_element::check_dependencies_in_unit(). The flag
marking that we are inside a subquery (in_subq) was updated only after the
unit's own WITH clause had already been analyzed. Hence dependencies
discovered while descending into a WITH clause attached to a scalar
subquery were recorded in top_level_dep_map instead of sq_dep_map, so
contains_sq_with_recursive_reference() failed to report the violation.

The fix: set in_subq from unit->item before processing the unit's WITH
clause, so that dependencies found in nested WITH clauses of a scalar
subquery are correctly attributed to the subquery context.

The expected error for the MDEV-32299 cases in cte_recursive.test changes
accordingly from ER_BAD_FIELD_ERROR to ER_NOT_STANDARD_COMPLIANT_RECURSIVE:
the query is now rejected at dependency analysis for its non-compliant
recursive reference rather than failing later during name resolution. The
test still verifies that no crash occurs.
Sergei Golubchik
w 5.2
Sergei Golubchik
w 4
Sergei Golubchik
w 4.4
Sergei Golubchik
cleanup
Sergei Golubchik
cleanup: remove obsolete code
Sergei Golubchik
w1
Sergei Golubchik
w 4.2
Sergei Golubchik
cleanup: remove redundant function
Sergei Golubchik
cleanup
Sergei Golubchik
Tree<> - a typesafe wrapper for TREE
Sergei Golubchik
w 4.8
Sergei Golubchik
w
Sergei Golubchik
w2
Sergei Golubchik
update test cases

* fix encoding
* break ties (rows with the same relevance)
Sergei Golubchik
cleanup: FT_INFO, please -> handler.h

Replace 26-year-old C-and-preprocesor-tricks FT_INFO API with
C++ classes and inheritance, as all engines are C++ anyway.

Rename classes and variables accordingly.
Sergei Golubchik
w 4.5
Sergei Golubchik
account for ignored hlindexes (test?)
Sergei Golubchik
w 4.3
Sergei Golubchik
w 4.1
Sergei Golubchik
w 5.3
Sergei Golubchik
w 5.1
Sergei Golubchik
cleanup: const void* in TREE
Sergei Golubchik
w3
Oleg Smirnov
MDEV-32326 Recursive CTE reference in a scalar subquery must be rejected

A recursive reference to a WITH RECURSIVE table that is reachable only
through a scalar subquery (in particular through a WITH clause nested
inside such a subquery) was not recognized as a subquery reference. As a
result the recursive CTE was wrongly accepted as standard-compliant instead
of being rejected with ER_NOT_STANDARD_COMPLIANT_RECURSIVE, and execution
later dereferenced an uninitialized join_tab for that reference in
st_select_lex_unit::exec_recursive(), crashing the server.

The cause was in With_element::check_dependencies_in_unit(). The flag
marking that we are inside a subquery (in_subq) was updated only after the
unit's own WITH clause had already been analyzed. Hence dependencies
discovered while descending into a WITH clause attached to a scalar
subquery were recorded in top_level_dep_map instead of sq_dep_map, so
contains_sq_with_recursive_reference() failed to report the violation.

The fix: set in_subq from unit->item before processing the unit's WITH
clause, so that dependencies found in nested WITH clauses of a scalar
subquery are correctly attributed to the subquery context.

The expected error for the MDEV-32299 cases in cte_recursive.test changes
accordingly from ER_BAD_FIELD_ERROR to ER_NOT_STANDARD_COMPLIANT_RECURSIVE:
the query is now rejected at dependency analysis for its non-compliant
recursive reference rather than failing later during name resolution. The
test still verifies that no crash occurs.
Sergei Golubchik
fixup! FT_INFO ->
Sergei Golubchik
w 6.4
Sergei Golubchik
w 4.7
Sergei Golubchik
w 6.1
Sergei Golubchik
fixup! Tree
Sergei Golubchik
w 6.3
Sergei Golubchik
w 4.6
Sergei Golubchik
w 6.5 copy more tests over
Sergei Golubchik
fixup! Tree