diff options
author | mikael/pappa@dator5.(none) <> | 2006-09-26 02:30:40 -0400 |
---|---|---|
committer | mikael/pappa@dator5.(none) <> | 2006-09-26 02:30:40 -0400 |
commit | 6df933a8cb785fe4ad444bc79e4c9bfdf4cc73cc (patch) | |
tree | 4646951de18359c78979570e6bf3b58d68de9cbf /sql/partition_info.cc | |
parent | 58ee682e9d3daf27c771a34b0a465e29a29b2205 (diff) | |
download | mariadb-git-6df933a8cb785fe4ad444bc79e4c9bfdf4cc73cc.tar.gz |
BUG#18198
Fixed interface to check_partition_func_processor
Diffstat (limited to 'sql/partition_info.cc')
-rw-r--r-- | sql/partition_info.cc | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc index ecf423f08b1..c8cf38e5629 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -722,25 +722,17 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type, if (check_partition_function) { - int part_expression_ok= 1; - int pf_collation_allowed= 1; - int spf_collation_allowed= 1; + int err= 0; if (part_type != HASH_PARTITION || !list_of_part_fields) { - part_expr->walk(&Item::check_partition_func_processor, 0, - (byte*)(&part_expression_ok)); - pf_collation_allowed= part_expression_ok; - part_expression_ok= 1; - if (is_sub_partitioned() && !list_of_subpart_fields) - { - subpart_expr->walk(&Item::check_partition_func_processor, 0, - (byte*)(&part_expression_ok)); - } - spf_collation_allowed= part_expression_ok; + err= part_expr->walk(&Item::check_partition_func_processor, 0, + NULL); + if (!err && is_sub_partitioned() && !list_of_subpart_fields) + err= subpart_expr->walk(&Item::check_partition_func_processor, 0, + NULL); } - if (!pf_collation_allowed || - !spf_collation_allowed) + if (err) { my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0)); goto end; |