You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
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.
58 lines
1.9 KiB
Plaintext
58 lines
1.9 KiB
Plaintext
#
|
|
# MCOL-4931 Make cpimport charset aware
|
|
#
|
|
|
|
if (!$MYSQL_TEST_ROOT){
|
|
skip Should be run by root to execute cpimport;
|
|
}
|
|
|
|
--source ../include/have_columnstore.inc
|
|
|
|
let $DATADIR=`SELECT @@datadir`;
|
|
|
|
--disable_warnings
|
|
DROP DATABASE IF EXISTS mcol_4931;
|
|
--enable_warnings
|
|
|
|
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;
|
|
|
|
--exec rm -f $DATADIR/mcol4931_1.txt
|
|
--exec rm -f $DATADIR/mcol4931_2.txt
|
|
--exec echo "\"König-abcd-Straße\",\"König-abcd-Straße\",\"König-abcd-Straße\",\"König-abcd-Straße\"" > $DATADIR/mcol4931_1.txt
|
|
--exec echo "\"abcdefghijklmnopq\",\"abcdefghijklmnopq\",\"abcdefghijklmnopq\",\"abcdefghijklmnopq\"" > $DATADIR/mcol4931_2.txt
|
|
--replace_result $DATADIR DATADIR
|
|
--eval LOAD DATA INFILE "$DATADIR/mcol4931_1.txt" IGNORE INTO TABLE t1 charset utf8mb4 FIELDS TERMINATED BY "," ENCLOSED BY '"';
|
|
--replace_result $DATADIR DATADIR
|
|
--eval LOAD DATA INFILE "$DATADIR/mcol4931_2.txt" IGNORE INTO TABLE t2 charset latin2 FIELDS TERMINATED BY "," ENCLOSED BY '"';
|
|
|
|
--disable_result_log
|
|
--exec $MCS_CPIMPORT -s',' -E'"' mcol_4931 t1 '$DATADIR/mcol4931_1.txt';
|
|
--exec $MCS_CPIMPORT -s',' -E'"' mcol_4931 t2 '$DATADIR/mcol4931_2.txt';
|
|
--enable_result_log
|
|
|
|
SELECT * FROM t1;
|
|
SELECT CHAR_LENGTH(a), LENGTHB(a), CHAR_LENGTH(b), LENGTHB(b), CHAR_LENGTH(c), LENGTHB(c), CHAR_LENGTH(d), LENGTHB(d) FROM t1;
|
|
|
|
SELECT * FROM t2;
|
|
SELECT CHAR_LENGTH(a), LENGTHB(a), CHAR_LENGTH(b), LENGTHB(b), CHAR_LENGTH(c), LENGTHB(c), CHAR_LENGTH(d), LENGTHB(d) FROM t2;
|
|
|
|
# Clean UP
|
|
--exec rm -f $DATADIR/mcol4931_1.txt
|
|
--exec rm -f $DATADIR/mcol4931_2.txt
|
|
DROP DATABASE mcol_4931;
|