summaryrefslogtreecommitdiff
path: root/sql/partition_element.h
diff options
context:
space:
mode:
authorunknown <reggie@big_geek.>2006-02-16 10:38:33 -0600
committerunknown <reggie@big_geek.>2006-02-16 10:38:33 -0600
commitd047fe77b74b02550d3b72fbb9415d3e8a9f507a (patch)
treef8ff3f6e12d8493541cca525570bcfc85c2b13c0 /sql/partition_element.h
parent99526f2efb29a7573ed1b4f820c9b2f4cc32753c (diff)
downloadmariadb-git-d047fe77b74b02550d3b72fbb9415d3e8a9f507a.tar.gz
BUG#15408: Partitions: subpartition names are not unique
Also, moved some of the code out of handler.h and into partition specific files for better separation. Also, moved some of the C funcs into partition_info as formal C++ methods mysql-test/r/partition_mgm_err.result: result block for test of bug # 15408 mysql-test/t/partition_mgm_err.test: test for duplicate subpartition names sql/Makefile.am: adding sql_partition.h, partition_info.cpp, partition_info.h, and partition_element.h to the makefile sql/ha_partition.cc: using the new members of partition_info sql/ha_partition.h: using the new members of partition_info sql/handler.h: moved this code into sql_partition.h sql/mysql_priv.h: including sql_partition.h also now sql/opt_range.cc: using the new members of partition_info sql/sql_partition.cc: moved some of the functions out and into the partition_info class using the new members of partition_info sql/sql_show.cc: using the new members of partition_info win/cmakefiles/sql: added partition_info.cpp to the sql cmake file sql/partition_element.h: New BitKeeper file ``sql/partition_element.h'' sql/partition_info.h: New BitKeeper file ``sql/partition_info.h'' sql/sql_partition.h: New BitKeeper file ``sql/sql_partition.h''
Diffstat (limited to 'sql/partition_element.h')
-rw-r--r--sql/partition_element.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/sql/partition_element.h b/sql/partition_element.h
new file mode 100644
index 00000000000..06007076405
--- /dev/null
+++ b/sql/partition_element.h
@@ -0,0 +1,70 @@
+/* Copyright (C) 2000,2004 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#ifdef USE_PRAGMA_INTERFACE
+#pragma interface /* gcc class implementation */
+#endif
+
+/**
+ * An enum and a struct to handle partitioning and subpartitioning.
+ */
+enum partition_type {
+ NOT_A_PARTITION= 0,
+ RANGE_PARTITION,
+ HASH_PARTITION,
+ LIST_PARTITION
+};
+
+enum partition_state {
+ PART_NORMAL= 0,
+ PART_IS_DROPPED= 1,
+ PART_TO_BE_DROPPED= 2,
+ PART_TO_BE_ADDED= 3,
+ PART_TO_BE_REORGED= 4,
+ PART_REORGED_DROPPED= 5,
+ PART_CHANGED= 6,
+ PART_IS_CHANGED= 7,
+ PART_IS_ADDED= 8
+};
+
+class partition_element :public Sql_alloc {
+public:
+ List<partition_element> subpartitions;
+ List<longlong> list_val_list;
+ ulonglong part_max_rows;
+ ulonglong part_min_rows;
+ char *partition_name;
+ char *tablespace_name;
+ longlong range_value;
+ char* part_comment;
+ char* data_file_name;
+ char* index_file_name;
+ handlerton *engine_type;
+ enum partition_state part_state;
+ uint16 nodegroup_id;
+
+ partition_element()
+ : part_max_rows(0), part_min_rows(0), partition_name(NULL),
+ tablespace_name(NULL), range_value(0), part_comment(NULL),
+ data_file_name(NULL), index_file_name(NULL),
+ engine_type(NULL),part_state(PART_NORMAL),
+ nodegroup_id(UNDEF_NODEGROUP)
+ {
+ subpartitions.empty();
+ list_val_list.empty();
+ }
+ ~partition_element() {}
+};