diff options
author | unknown <mikron@mikael-ronstr-ms-dator.local> | 2006-04-05 12:49:38 +0200 |
---|---|---|
committer | unknown <mikron@mikael-ronstr-ms-dator.local> | 2006-04-05 12:49:38 +0200 |
commit | 32591e6959f5176ed64b7ace6e857fb20ee9151a (patch) | |
tree | 145865ac0a7e1251f3b3de4b3f8afe07a0cfc691 /sql/partition_info.cc | |
parent | d868d032aa5f12ad95c1b9f9ffa54cbdda61cafc (diff) | |
download | mariadb-git-32591e6959f5176ed64b7ace6e857fb20ee9151a.tar.gz |
BUG#18198: Too much expressiveness in partition function allowed
Fixed the error check
sql/partition_info.cc:
Fixed the error check
Diffstat (limited to 'sql/partition_info.cc')
-rw-r--r-- | sql/partition_info.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 9c7999b136b..c671164578a 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -658,8 +658,13 @@ bool partition_info::check_partition_info(handlerton **eng_type, bool part_expression_ok= TRUE; DBUG_ENTER("partition_info::check_partition_info"); - if (part_expr->walk(Item::check_partition_func_processor, - (byte*)&part_expression_ok)) + if (part_type != HASH_PARTITION || !list_of_part_fields) + part_expr->walk(Item::check_partition_func_processor, + (byte*)&part_expression_ok); + if (is_sub_partitioned() && !list_of_subpart_fields) + subpart_expr->walk(Item::check_partition_func_processor, + (byte*)&part_expression_ok); + if (!part_expression_ok) { my_error(ER_PARTITION_FUNC_NOT_ALLOWED, MYF(0)); goto end; |