summaryrefslogtreecommitdiff
path: root/sql/item_windowfunc.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-10-17 19:11:42 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2018-10-17 19:11:42 +0300
commitd88c136b9fb409cbf6421635a6175329e7182cd7 (patch)
tree7f713ddfece5aeefd47025e1beca2fc0a541248b /sql/item_windowfunc.cc
parent13e217b8c1da39b1246fe82203a4c8897d4c9e8d (diff)
parent2fa4ed031ce6cc6370671058ccc3d119b8cb3d91 (diff)
downloadmariadb-git-d88c136b9fb409cbf6421635a6175329e7182cd7.tar.gz
Merge 10.3 into 10.4
Diffstat (limited to 'sql/item_windowfunc.cc')
-rw-r--r--sql/item_windowfunc.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/sql/item_windowfunc.cc b/sql/item_windowfunc.cc
index 764a8b26c3e..aa2c7756ab7 100644
--- a/sql/item_windowfunc.cc
+++ b/sql/item_windowfunc.cc
@@ -542,6 +542,11 @@ void Item_sum_hybrid_simple::update_field()
void Item_window_func::print(String *str, enum_query_type query_type)
{
+ if (only_single_element_order_list())
+ {
+ print_for_percentile_functions(str, query_type);
+ return;
+ }
window_func()->print(str, query_type);
str->append(" over ");
#ifndef DBUG_OFF
@@ -551,3 +556,15 @@ void Item_window_func::print(String *str, enum_query_type query_type)
#endif
window_spec->print(str, query_type);
}
+void Item_window_func::print_for_percentile_functions(String *str, enum_query_type query_type)
+{
+ window_func()->print(str, query_type);
+ str->append(" within group ");
+ str->append('(');
+ window_spec->print_order(str,query_type);
+ str->append(')');
+ str->append(" over ");
+ str->append('(');
+ window_spec->print_partition(str,query_type);
+ str->append(')');
+}