summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicențiu Ciorbaru <vicentiu@mariadb.org>2016-09-19 20:45:30 +0200
committerVicențiu Ciorbaru <vicentiu@mariadb.org>2016-09-24 15:12:34 +0200
commit62df3119a585837ac143ac5485fca4d650a8e5ff (patch)
tree2b853008df50c14a8d31850dbff1a6db1e2a272e
parent5cb568786a574fa5e8bc306330cd04a16c7217fc (diff)
downloadmariadb-git-62df3119a585837ac143ac5485fca4d650a8e5ff.tar.gz
Add a counter for the number of select statements using window functions
The counter is available via SHOW [GLOBAL] STATUS and will be reported by the feedback plugin.
-rw-r--r--sql/mysqld.cc1
-rw-r--r--sql/sql_class.h1
-rw-r--r--sql/sql_select.cc2
3 files changed, 4 insertions, 0 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index cf9e99b54a6..a5cfd0527e8 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -8411,6 +8411,7 @@ SHOW_VAR status_vars[]= {
{"Feature_subquery", (char*) offsetof(STATUS_VAR, feature_subquery), SHOW_LONG_STATUS},
{"Feature_timezone", (char*) offsetof(STATUS_VAR, feature_timezone), SHOW_LONG_STATUS},
{"Feature_trigger", (char*) offsetof(STATUS_VAR, feature_trigger), SHOW_LONG_STATUS},
+ {"Feature_window_functions", (char*) offsetof(STATUS_VAR, feature_window_functions), SHOW_LONG_STATUS},
{"Feature_xml", (char*) offsetof(STATUS_VAR, feature_xml), SHOW_LONG_STATUS},
{"Flush_commands", (char*) &show_flush_commands, SHOW_SIMPLE_FUNC},
{"Handler_commit", (char*) offsetof(STATUS_VAR, ha_commit_count), SHOW_LONG_STATUS},
diff --git a/sql/sql_class.h b/sql/sql_class.h
index d2a489bfef6..51642ecf798 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -789,6 +789,7 @@ typedef struct system_status_var
ulong feature_timezone; /* +1 when XPATH is used */
ulong feature_trigger; /* +1 opening a table with triggers */
ulong feature_xml; /* +1 when XPATH is used */
+ ulong feature_window_functions; /* +1 when window functions are used */
/* From MASTER_GTID_WAIT usage */
ulonglong master_gtid_wait_timeouts; /* Number of timeouts */
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 1eaa1ced0b8..761f6c4b130 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -2699,6 +2699,8 @@ bool JOIN::make_aggr_tables_info()
if (curr_tab->window_funcs_step->setup(thd, &select_lex->window_funcs,
curr_tab))
DBUG_RETURN(true);
+ /* Count that we're using window functions. */
+ status_var_increment(thd->status_var.feature_window_functions);
}
fields= curr_fields_list;