diff options
author | mikael@c-4909e253.1238-1-64736c10.cust.bredbandsbolaget.se <> | 2006-04-17 22:51:34 -0400 |
---|---|---|
committer | mikael@c-4909e253.1238-1-64736c10.cust.bredbandsbolaget.se <> | 2006-04-17 22:51:34 -0400 |
commit | cef06fdb61e203aa7b1b29705b08e00480dcc046 (patch) | |
tree | 6000e72ead29b81629a2ee2c82b7a63e4cca694b /sql/partition_info.h | |
parent | ba5d08f340b951001bdd4c2a92b0344bace538cb (diff) | |
download | mariadb-git-cef06fdb61e203aa7b1b29705b08e00480dcc046.tar.gz |
BUG#16002: Make partition functions that are unsigned work properly
Diffstat (limited to 'sql/partition_info.h')
-rw-r--r-- | sql/partition_info.h | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/sql/partition_info.h b/sql/partition_info.h index 664c8834b0b..5a2cacd3c71 100644 --- a/sql/partition_info.h +++ b/sql/partition_info.h @@ -163,6 +163,7 @@ public: uint no_subpart_fields; uint no_full_part_fields; + uint has_null_part_id; /* This variable is used to calculate the partition id when using LINEAR KEY/HASH. This functionality is kept in the MySQL Server @@ -182,7 +183,6 @@ public: bool fixed; bool from_openfrm; bool has_null_value; - uint has_null_part_id; partition_info() @@ -204,19 +204,13 @@ public: no_parts(0), no_subparts(0), count_curr_subparts(0), part_error_code(0), no_list_values(0), no_part_fields(0), no_subpart_fields(0), - no_full_part_fields(0), linear_hash_mask(0), - use_default_partitions(TRUE), - use_default_no_partitions(TRUE), - use_default_subpartitions(TRUE), - use_default_no_subpartitions(TRUE), - default_partitions_setup(FALSE), - defined_max_value(FALSE), + no_full_part_fields(0), has_null_part_id(0), linear_hash_mask(0), + use_default_partitions(TRUE), use_default_no_partitions(TRUE), + use_default_subpartitions(TRUE), use_default_no_subpartitions(TRUE), + default_partitions_setup(FALSE), defined_max_value(FALSE), list_of_part_fields(FALSE), list_of_subpart_fields(FALSE), - linear_hash_ind(FALSE), - fixed(FALSE), - from_openfrm(FALSE), - has_null_value(FALSE), - has_null_part_id(0) + linear_hash_ind(FALSE), fixed(FALSE), from_openfrm(FALSE), + has_null_value(FALSE) { all_fields_in_PF.clear_all(); all_fields_in_PPF.clear_all(); @@ -248,10 +242,11 @@ public: static bool check_engine_mix(handlerton **engine_array, uint no_parts); bool check_range_constants(); bool check_list_constants(); - bool check_partition_info(handlerton **eng_type, + bool check_partition_info(THD *thd, handlerton **eng_type, handler *file, ulonglong max_rows); private: static int list_part_cmp(const void* a, const void* b); + static int list_part_cmp_unsigned(const void* a, const void* b); bool set_up_default_partitions(handler *file, ulonglong max_rows, uint start_no); bool set_up_default_subpartitions(handler *file, ulonglong max_rows); |