mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
MDEV-22910: SIGSEGV in Opt_trace_context::is_started & SIGSEGV in Json_writer::add_table_name (on optimized builds)
Make sure to initialize members of TABLE::reginfo when TABLE::init is called. In this case the problem was that table->reginfo.join_tab was set for the SELECT query and then was reused by the UPDATE query. This case occurred only when the SELECT query had a degenerate join.
This commit is contained in:
parent
8e8f9671cb
commit
cc0dca3663
4 changed files with 46 additions and 4 deletions
|
|
@ -8559,5 +8559,36 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns'))
|
|||
]
|
||||
]
|
||||
drop table t1;
|
||||
#
|
||||
# MDEV-22910:SIGSEGV in Opt_trace_context::is_started & SIGSEGV in Json_writer::add_table_name
|
||||
# (on optimized builds)
|
||||
#
|
||||
CREATE TABLE t1( a INT, b INT, PRIMARY KEY( a ) );
|
||||
SELECT sum(b), row_number() OVER (order by b) FROM t1 WHERE a = 101;
|
||||
sum(b) row_number() OVER (order by b)
|
||||
NULL 1
|
||||
UPDATE t1 SET b=10 WHERE a=1;
|
||||
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives'))
|
||||
[
|
||||
|
||||
[
|
||||
|
||||
{
|
||||
"index": "PRIMARY",
|
||||
"ranges":
|
||||
[
|
||||
"(1) <= (a) <= (1)"
|
||||
],
|
||||
"rowid_ordered": true,
|
||||
"using_mrr": false,
|
||||
"index_only": false,
|
||||
"rows": 0,
|
||||
"cost": 1.125,
|
||||
"chosen": true
|
||||
}
|
||||
]
|
||||
]
|
||||
DROP TABLE t1;
|
||||
set optimizer_trace='enabled=off';
|
||||
# End of 10.4 tests
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue