summaryrefslogtreecommitdiff
path: root/sql/item_windowfunc.h
diff options
context:
space:
mode:
authorVicențiu Ciorbaru <vicentiu@mariadb.org>2016-04-13 11:06:05 +0200
committerVicențiu Ciorbaru <vicentiu@mariadb.org>2016-04-13 11:26:58 +0200
commit31fb045c1296aba5b7ed95cf96843ddfb5b91ef9 (patch)
tree4fd9a8d95608b1185dbdd8350e3ee66f4e3036ba /sql/item_windowfunc.h
parent3dd08a11de23455182f88c524c2e0b0eb862cc60 (diff)
downloadmariadb-git-31fb045c1296aba5b7ed95cf96843ddfb5b91ef9.tar.gz
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.
Diffstat (limited to 'sql/item_windowfunc.h')
-rw-r--r--sql/item_windowfunc.h16
1 files changed, 2 insertions, 14 deletions
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_;
};