From 31fb045c1296aba5b7ed95cf96843ddfb5b91ef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= Date: Wed, 13 Apr 2016 11:06:05 +0200 Subject: Make ntile use args[0] for it's argument. Don't hold a separate pointer as args[0] changes during fix_fields / split_sum_func. --- sql/item_windowfunc.h | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'sql/item_windowfunc.h') diff --git a/sql/item_windowfunc.h b/sql/item_windowfunc.h index 8da98b93c72..40f48cc7dc5 100644 --- a/sql/item_windowfunc.h +++ b/sql/item_windowfunc.h @@ -429,7 +429,6 @@ class Item_sum_ntile : public Item_sum_window_with_row_count public: Item_sum_ntile(THD* thd, Item* num_quantiles_expr) : Item_sum_window_with_row_count(thd, num_quantiles_expr), - num_quantiles_expr_(num_quantiles_expr), current_row_count_(0) {}; double val_real() @@ -445,7 +444,7 @@ class Item_sum_ntile : public Item_sum_window_with_row_count return 0; } - longlong num_quantiles= num_quantiles_expr_->val_int(); + longlong num_quantiles= get_num_quantiles(); if (num_quantiles <= 0) { my_error(ER_INVALID_NTILE_ARGUMENT, MYF(0)); @@ -489,19 +488,8 @@ class Item_sum_ntile : public Item_sum_window_with_row_count enum Item_result result_type () const { return INT_RESULT; } enum_field_types field_type() const { return MYSQL_TYPE_LONGLONG; } - bool fix_fields(THD *thd, Item **ref) - { - if (Item_sum_window_with_row_count::fix_fields(thd, ref)) - return true; - // TODO-cvicentiu is ref as a parameter here ok? - if (!num_quantiles_expr_->fixed) - num_quantiles_expr_->fix_fields(thd, ref); - - return false; - } - private: - Item* num_quantiles_expr_; + longlong get_num_quantiles() { return args[0]->val_int(); } ulong current_row_count_; }; -- cgit v1.2.1