1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

BUG#16002: Make partition functions that are unsigned work properly

mysql-test/r/partition.result:
  A number of new test cases for unsigned partition functions
mysql-test/r/partition_error.result:
  A number of new test cases for unsigned partition functions
mysql-test/r/partition_range.result:
  A number of new test cases for unsigned partition functions
mysql-test/t/partition.test:
  A number of new test cases for unsigned partition functions
mysql-test/t/partition_error.test:
  A number of new test cases for unsigned partition functions
mysql-test/t/partition_range.test:
  A number of new test cases for unsigned partition functions
sql/ha_partition.cc:
  Error message for no partition found needs to take signed/unsigned into account when printing erroneus value
sql/partition_element.h:
  Introduced signed_flag and max_value flag on partition elements
  Also list is now a list of a struct rather than simply longlong values
  Small rearranges of order
sql/partition_info.cc:
  Introduced signed_flag and max_value flag on partition elements
  Also list is now a list of a struct rather than simply longlong values
  Small rearranges of order
  Lots of new code to handle checks of proper definition of table when
  partition function is unsigned
sql/partition_info.h:
  Mostly rearrangement of code and some addition of a THD object in check_partition_info call
  plus a new method for comparing unsigned values
sql/share/errmsg.txt:
  Negative values not ok for unsigned partition functions
sql/sql_partition.cc:
  Fixed a multi-thread bug (when defining several partitioned tables in parallel)
  New code to generate partition syntax that takes into account sign of constants.
  Made function fix_fields_part_func more reusable.
  Fixed a number of get_partition_id functions for range and list and similar functions
  for partition pruning code.
  Unfortunately fairly much duplication of code with just small changes.
sql/sql_partition.h:
  New function headers
sql/sql_show.cc:
  Changed list of values for LIST partitioned tables
  Also fixed printing of unsigned values in INFORMATION SCHEMA for partitioned table
sql/sql_table.cc:
  Fixed for new interface
sql/sql_yacc.yy:
  Moved definition of struct to partition_element.h
  Added code to keep track of sign of constants in
  RANGE and LIST partitions
sql/table.cc:
  Fixed for new interface
This commit is contained in:
unknown
2006-04-17 22:51:34 -04:00
parent a514095a5d
commit faa5f3e007
17 changed files with 563 additions and 207 deletions

View File

@@ -65,9 +65,8 @@ int get_part_for_delete(const byte *buf, const byte *rec0,
partition_info *part_info, uint32 *part_id);
void prune_partition_set(const TABLE *table, part_id_range *part_spec);
bool check_partition_info(partition_info *part_info,handlerton **eng_type,
handler *file, ulonglong max_rows);
bool fix_partition_func(THD *thd, const char *name, TABLE *table,
bool create_table_ind);
TABLE *table, handler *file, ulonglong max_rows);
bool fix_partition_func(THD *thd, TABLE *table, bool create_table_ind);
char *generate_partition_syntax(partition_info *part_info,
uint *buf_length, bool use_sql_alloc,
bool write_all);
@@ -91,6 +90,8 @@ uint32 get_list_array_idx_for_endpoint(partition_info *part_info,
uint32 get_partition_id_range_for_endpoint(partition_info *part_info,
bool left_endpoint,
bool include_endpoint);
bool fix_fields_part_func(THD *thd, Item* func_expr, TABLE *table,
bool is_sub_part, bool is_field_to_be_setup);
/*
A "Get next" function for partition iterator.