summaryrefslogtreecommitdiff
path: root/mysql-test/main/partition_utf8-debug.result
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2019-10-18 08:07:40 +0400
committerAlexander Barkov <bar@mariadb.com>2019-10-18 10:15:17 +0400
commit9a833dc6881b896e65cf76c9699faa6c324e1775 (patch)
tree25b3daa904d7fb75a50c08d777ae3fce025684f2 /mysql-test/main/partition_utf8-debug.result
parent9c9606152505792fcb8f4b7386e5b6a25e2790b4 (diff)
downloadmariadb-git-9a833dc6881b896e65cf76c9699faa6c324e1775.tar.gz
MDEV-20856 Bad values in metadata views for partitions on VARBINARY
The old code to print partition values was too complicated: - it created new Items for character set conversion purposes. - it mixed string conversion and partition error reporting in the same code blocks. Simplifying the code as follows: - Adding helper methods String::can_be_safely_convert_to() and String::append_introducer_and_hex(). - Adding DBUG_EXECUTE_IF("generate_partition_syntax_for_frm", push_warning...) into generate_partition_syntax_for_frm(), to test the PARTITON clause written to FRM. Adding test partition_utf8-debug.test for this. - Removing functions get_cs_converted_part_value_from_string() and get_cs_converted_string_value. Changing get_partition_column_description() to use Type_handler::partition_field_append_value() instead. This makes SHOW CREATE TABLE and SELECT FROM I_S.PARTITIONS use the same code path. - Changing Type_handler::partition_field_append_value() not to call convert_charset_partition_constant(), to avoid creating a new Item for string conversion pursposes. Rewritting the code to use only String methods. - Removing error reporting code (ER_PARTITION_FUNCTION_IS_NOT_ALLOWED) from Type_handler::partition_field_append_value(). The error is correctly detected and reported on the caller level. So error reporting was redundant here. Also: - Moving methods Type_handler::partition_field_*() from sql_partition.cc to sql_type.cc. This fixes compilation problem with -DPLUGIN_PARTITION=NO, earlier introduced by the patch for MDEV-20831.
Diffstat (limited to 'mysql-test/main/partition_utf8-debug.result')
-rw-r--r--mysql-test/main/partition_utf8-debug.result88
1 files changed, 88 insertions, 0 deletions
diff --git a/mysql-test/main/partition_utf8-debug.result b/mysql-test/main/partition_utf8-debug.result
new file mode 100644
index 00000000000..569bec3ea8a
--- /dev/null
+++ b/mysql-test/main/partition_utf8-debug.result
@@ -0,0 +1,88 @@
+#
+# Start of 10.5 tests
+#
+#
+# MDEV-20856 Bad values in metadata views for partitions on VARBINARY
+#
+SET NAMES utf8;
+SET @save_dbug = @@debug_dbug;
+SET SESSION debug_dbug="+d,generate_partition_syntax_for_frm";
+CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET latin1
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (_utf8'Ṡ'));
+ERROR HY000: This partition function is not allowed
+CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET latin1
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('Ṡ'));
+ERROR HY000: This partition function is not allowed
+CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET latin1
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (_latin1 0xDF));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (_latin1 0xdf) ENGINE = MyISAM)
+SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
+PARTITION_DESCRIPTION
+'ß'
+DROP TABLE t1;
+CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET latin1
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (_utf8'ß'));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (_latin1 0xdf) ENGINE = MyISAM)
+SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
+PARTITION_DESCRIPTION
+'ß'
+DROP TABLE t1;
+CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET latin1
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('ß'));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (_latin1 0xdf) ENGINE = MyISAM)
+DROP TABLE t1;
+CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (_utf8'ß'));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (_utf8 0xc39f) ENGINE = MyISAM)
+SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
+PARTITION_DESCRIPTION
+'ß'
+DROP TABLE t1;
+CREATE OR REPLACE TABLE t1 (a VARCHAR(10)) CHARACTER SET utf8
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('ß'));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (_utf8 0xc39f) ENGINE = MyISAM)
+SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
+PARTITION_DESCRIPTION
+'ß'
+DROP TABLE t1;
+CREATE OR REPLACE TABLE t1 (a VARBINARY(10)) CHARACTER SET utf8
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (0xFF));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (_binary 0xff) ENGINE = MyISAM)
+SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
+PARTITION_DESCRIPTION
+_binary 0xff
+DROP TABLE t1;
+CREATE OR REPLACE TABLE t1 (a DATE) CHARACTER SET utf8
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (FROM_DAYS(NULL)));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (NULL) ENGINE = MyISAM)
+SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
+PARTITION_DESCRIPTION
+NULL
+DROP TABLE t1;
+CREATE OR REPLACE TABLE t1 (a DATE) CHARACTER SET utf8
+PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (FROM_DAYS(100)));
+Warnings:
+Note 1003 PARTITION BY LIST COLUMNS(`a`)
+(PARTITION `p0` VALUES IN (_utf8 0x303030302d30302d3030) ENGINE = MyISAM)
+SELECT PARTITION_DESCRIPTION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='t1';
+PARTITION_DESCRIPTION
+'0000-00-00'
+DROP TABLE t1;
+SET debug_dbug=@save_dbug;
+#
+# End of 10.5 tests
+#