1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00
Files
mariadb-columnstore-engine/mysql-test/columnstore/bugfixes/mcol-4931.result
Gagan Goel 931f2b36a1 MCOL-4931 Make cpimport charset-aware. (#2938)
1. Extend the following CalpontSystemCatalog member functions to
   set CalpontSystemCatalog::ColType::charsetNumber, after the
   system catalog update to add charset number to calpontsys.syscolumn
   in MCOL-5005:
     CalpontSystemCatalog::lookupOID
     CalpontSystemCatalog::colType
     CalpontSystemCatalog::columnRIDs
     CalpontSystemCatalog::getSchemaInfo

2. Update cpimport to use the CHARSET_INFO object associated with the
   charset number retrieved from the system catalog, for a
   dictionary/non-dictionary CHAR/VARCHAR/TEXT column, to truncate
   long strings that exceed the target column character length.

3. Add MTR test cases.
2023-09-05 17:17:20 +03:00

45 lines
1.8 KiB
Plaintext

DROP DATABASE IF EXISTS mcol_4931;
CREATE DATABASE mcol_4931;
USE mcol_4931;
CREATE TABLE t1 (
a VARCHAR(15) collate 'utf8mb4_croatian_ci',
b CHAR(15) collate 'utf8mb4_croatian_ci',
c VARCHAR(2),
d CHAR(2)
)ENGINE=columnstore default charset=utf8mb4;
CREATE TABLE t2 (
a VARCHAR(15) collate 'latin2_hungarian_ci',
b CHAR(15) collate 'latin2_hungarian_ci',
c VARCHAR(2),
d CHAR(2)
)ENGINE=columnstore default charset=latin2;
LOAD DATA INFILE "DATADIR/mcol4931_1.txt" IGNORE INTO TABLE t1 charset utf8mb4 FIELDS TERMINATED BY "," ENCLOSED BY '"';;
Warnings:
Warning 1265 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'd' at row 1
LOAD DATA INFILE "DATADIR/mcol4931_2.txt" IGNORE INTO TABLE t2 charset latin2 FIELDS TERMINATED BY "," ENCLOSED BY '"';;
Warnings:
Warning 1265 Data truncated for column 'a' at row 1
Warning 1265 Data truncated for column 'b' at row 1
Warning 1265 Data truncated for column 'c' at row 1
Warning 1265 Data truncated for column 'd' at row 1
SELECT * FROM t1;
a b c d
König-abcd-Stra König-abcd-Stra Kö Kö
König-abcd-Stra König-abcd-Stra Kö Kö
SELECT CHAR_LENGTH(a), LENGTHB(a), CHAR_LENGTH(b), LENGTHB(b), CHAR_LENGTH(c), LENGTHB(c), CHAR_LENGTH(d), LENGTHB(d) FROM t1;
CHAR_LENGTH(a) LENGTHB(a) CHAR_LENGTH(b) LENGTHB(b) CHAR_LENGTH(c) LENGTHB(c) CHAR_LENGTH(d) LENGTHB(d)
15 16 15 16 2 3 2 3
15 16 15 16 2 3 2 3
SELECT * FROM t2;
a b c d
abcdefghijklmno abcdefghijklmno ab ab
abcdefghijklmno abcdefghijklmno ab ab
SELECT CHAR_LENGTH(a), LENGTHB(a), CHAR_LENGTH(b), LENGTHB(b), CHAR_LENGTH(c), LENGTHB(c), CHAR_LENGTH(d), LENGTHB(d) FROM t2;
CHAR_LENGTH(a) LENGTHB(a) CHAR_LENGTH(b) LENGTHB(b) CHAR_LENGTH(c) LENGTHB(c) CHAR_LENGTH(d) LENGTHB(d)
15 15 15 15 2 2 2 2
15 15 15 15 2 2 2 2
DROP DATABASE mcol_4931;