Skip to content

Commit 5fafac1

Browse files
Keshav Singhdahlerlend
authored andcommitted
Bug#37651856: Crash after secondary is off. [MYSQL change]
Fix: we need to ensure secondary engine is available Change-Id: Ib42f2b6d2040441f3e269a213188e5478558480a
1 parent 871db28 commit 5fafac1

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

sql/handler.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2121,15 +2121,17 @@ typedef bool (*get_table_statistics_t)(
21212121

21222122
/**
21232123
Retrieve column_statistics from SE.
2124-
2124+
@param THD Current THD
21252125
@param db_name Name of schema
21262126
@param table_name Name of table
21272127
@param column_name Name of column
2128+
@param rows_in_table Nrows in table
21282129
21292130
@returns The statistics if available, empty value otherwise.
21302131
*/
21312132
typedef std::optional<ha_column_statistics> (*get_column_statistics_t)(
2132-
const char *db_name, const char *table_name, const char *column_name);
2133+
THD *thd, const char *db_name, const char *table_name,
2134+
const char *column_name, double rows_in_table);
21332135

21342136
/**
21352137
@brief

sql/join_optimizer/secondary_statistics.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@ double NumDistinctValues(THD *thd, const Field &field) {
4343
EligibleSecondaryEngineHandlerton(thd, &ts->secondary_engine);
4444
if (secondary_engine != nullptr &&
4545
secondary_engine->get_column_statistics != nullptr) {
46+
const auto rows_in_table =
47+
static_cast<double>(field.table->file->stats.records);
4648
auto column_stats = secondary_engine->get_column_statistics(
47-
field.table->s->db.str, field.table->s->table_name.str,
48-
field.field_name);
49+
thd, field.table->s->db.str, field.table->s->table_name.str,
50+
field.field_name, rows_in_table);
4951
if (column_stats.has_value() && column_stats->num_distinct_values > 0) {
5052
const double distinct_values = column_stats->num_distinct_values;
5153
if (TraceStarted(thd)) {

0 commit comments

Comments
 (0)