summaryrefslogtreecommitdiff
path: root/sql/table.cc
diff options
context:
space:
mode:
authorAndrei Elkin <andrei.elkin@mariadb.com>2019-11-11 16:28:21 +0200
committerAndrei Elkin <andrei.elkin@mariadb.com>2019-11-11 16:28:21 +0200
commitd103c5a489d1d96c967c90f25fefc4aa0083ed07 (patch)
tree9e51cb2d10e036b062b74d08d2f90c45fb234558 /sql/table.cc
parent4fcfdb60e788c6c8cebe35e2e0f8d9595cc9e930 (diff)
parent26fd880d5eba5e46e69f88f21cc6ca45cbda0a4f (diff)
downloadmariadb-git-d103c5a489d1d96c967c90f25fefc4aa0083ed07.tar.gz
merge 10.2->10.3 with conflict resolutions
Diffstat (limited to 'sql/table.cc')
-rw-r--r--sql/table.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/sql/table.cc b/sql/table.cc
index 0e713f60d21..278423ec0c2 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -4687,6 +4687,8 @@ void TABLE::init(THD *thd, TABLE_LIST *tl)
cond_selectivity= 1.0;
cond_selectivity_sampling_explain= NULL;
vers_write= s->versioned;
+ quick_condition_rows=0;
+ initialize_quick_structures();
#ifdef HAVE_REPLICATION
/* used in RBR Triggers */
master_had_triggers= 0;
@@ -9268,3 +9270,21 @@ bool TABLE::export_structure(THD *thd, Row_definition_list *defs)
}
return false;
}
+
+/*
+ @brief
+ Initialize all the quick structures that are used to stored the
+ estimates when the range optimizer is run.
+ @details
+ This is specifically needed when we read the TABLE structure from the
+ table cache. There can be some garbage data from previous queries
+ that need to be reset here.
+*/
+
+void TABLE::initialize_quick_structures()
+{
+ bzero(quick_rows, sizeof(quick_rows));
+ bzero(quick_key_parts, sizeof(quick_key_parts));
+ bzero(quick_costs, sizeof(quick_costs));
+ bzero(quick_n_ranges, sizeof(quick_n_ranges));
+}