summaryrefslogtreecommitdiff
path: root/sql/sql_window.cc
diff options
context:
space:
mode:
authorVarun Gupta <varunraiko1803@gmail.com>2017-06-22 21:43:45 +0530
committerVarun Gupta <varunraiko1803@gmail.com>2017-11-01 23:13:01 +0530
commit280945bf29095da1c8aacdcba37aecce605fc127 (patch)
treeee666aac083d2b402212cee2455c9056366ac924 /sql/sql_window.cc
parentfadfe447e8d9b1244341bd5ed94bb7f8eb623f18 (diff)
downloadmariadb-git-280945bf29095da1c8aacdcba37aecce605fc127.tar.gz
MDEV-12985: support percentile and median window functions
Finalised the synatax and have started implementing the class for the PERCENTILE_DISC
Diffstat (limited to 'sql/sql_window.cc')
-rw-r--r--sql/sql_window.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/sql/sql_window.cc b/sql/sql_window.cc
index d22fff9d486..a4c558b52b6 100644
--- a/sql/sql_window.cc
+++ b/sql/sql_window.cc
@@ -2490,6 +2490,20 @@ void add_special_frame_cursors(THD *thd, Cursor_manager *cursor_manager,
cursor_manager->add_cursor(fc);
break;
}
+ case Item_sum::PERCENTILE_DISC_FUNC:
+ {
+ fc= new Frame_unbounded_preceding(thd,
+ spec->partition_list,
+ spec->order_list);
+ fc->add_sum_func(item_sum);
+ cursor_manager->add_cursor(fc);
+ fc= new Frame_unbounded_following(thd,
+ spec->partition_list,
+ spec->order_list);
+ fc->add_sum_func(item_sum);
+ cursor_manager->add_cursor(fc);
+ break;
+ }
default:
fc= new Frame_unbounded_preceding(
thd, spec->partition_list, spec->order_list);
@@ -2514,6 +2528,8 @@ static bool is_computed_with_remove(Item_sum::Sumfunctype sum_func)
case Item_sum::NTILE_FUNC:
case Item_sum::FIRST_VALUE_FUNC:
case Item_sum::LAST_VALUE_FUNC:
+ case Item_sum::PERCENTILE_CONT_FUNC:
+ case Item_sum::PERCENTILE_DISC_FUNC:
return false;
default:
return true;