Commit bb091abb authored by unknown's avatar unknown

BUG#33182: Disallow division due to div_precision_increment problems


mysql-test/r/partition.result:
  New test case to validate that '/' is no longer allowed,
  only integer division is allowed
mysql-test/t/partition.test:
  New test case to validate that '/' is no longer allowed,
  only integer division is allowed
sql/item_func.h:
  +,-,*, mod is allowed
  / is disallowed
parent 4bacd537
drop table if exists t1;
create table t1 (a int) partition by list ((a/3)*10 div 1)
(partition p0 values in (0), partition p1 values in (1));
ERROR HY000: This partition function is not allowed
CREATE TABLE t1 (
d DATE NOT NULL
)
......
......@@ -14,6 +14,10 @@
drop table if exists t1;
--enable_warnings
--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int) partition by list ((a/3)*10 div 1)
(partition p0 values in (0), partition p1 values in (1));
#
# Bug #30695: An apostrophe ' in the comment of the ADD PARTITION causes the Server to crash.
#
......
......@@ -296,7 +296,6 @@ class Item_num_op :public Item_func_numhybrid
void print(String *str) { print_op(str); }
void find_num_type();
String *str_op(String *str) { DBUG_ASSERT(0); return 0; }
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
......@@ -382,6 +381,7 @@ class Item_func_additive_op :public Item_num_op
public:
Item_func_additive_op(Item *a,Item *b) :Item_num_op(a,b) {}
void result_precision();
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
......@@ -416,6 +416,7 @@ class Item_func_mul :public Item_num_op
double real_op();
my_decimal *decimal_op(my_decimal *);
void result_precision();
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
......@@ -456,6 +457,7 @@ class Item_func_mod :public Item_num_op
const char *func_name() const { return "%"; }
void result_precision();
void fix_length_and_dec();
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment