summaryrefslogtreecommitdiff
path: root/sql/partition_info.cc
diff options
context:
space:
mode:
authorunknown <mikron@mikael-ronstr-ms-dator.local>2006-04-05 12:49:38 +0200
committerunknown <mikron@mikael-ronstr-ms-dator.local>2006-04-05 12:49:38 +0200
commit32591e6959f5176ed64b7ace6e857fb20ee9151a (patch)
tree145865ac0a7e1251f3b3de4b3f8afe07a0cfc691 /sql/partition_info.cc
parentd868d032aa5f12ad95c1b9f9ffa54cbdda61cafc (diff)
downloadmariadb-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.cc9
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;