1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

Part#2 : MCOL-4678 MTR tests fail because of /tmp and ./ with LOAD DATA

This patch fixes failures in mtr (without --remote) in the following tests:

columnstore/basic.mcs88_import_export_csv
columnstore/basic.mcs47_cpimport_central_loc_sin_source
columnstore/basic.mcs49_cpimport_parallel_dist
columnstore/basic.mcs50_cpimport_stdin
columnstore/basic.mcs55_cpimport_binary_source
columnstore/basic.mcs56_cpimport_negative
columnstore/basic.mcs68_cpimport_datafile_separators
This commit is contained in:
Alexander Barkov
2021-04-23 13:03:47 +04:00
parent b0da7f4974
commit dad9c811fd
8 changed files with 61 additions and 28 deletions

View File

@ -2,23 +2,23 @@ DROP DATABASE IF EXISTS mcs88_db;
CREATE DATABASE mcs88_db;
USE mcs88_db;
CREATE TABLE t1(col1 INT, col2 INT, col3 CHAR(8)) ENGINE=Columnstore;
LOAD DATA INFILE '/tmp/100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
LOAD DATA INFILE 'DATADIR/mcs88_100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';;
SELECT COUNT(*) FROM t1;
COUNT(*)
100001
TRUNCATE t1;
LOAD DATA LOCAL INFILE '/tmp/100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
LOAD DATA LOCAL INFILE 'DATADIR/mcs88_100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';;
SELECT COUNT(*) FROM t1;
COUNT(*)
100001
SELECT col1, col2, col3 FROM t1 INTO OUTFILE '/tmp/100Krows.dat' FIELDS TERMINATED BY '|';
SELECT col1, col2, col3 FROM t1 INTO OUTFILE 'DATADIR/mcs88_100Krows.dat' FIELDS TERMINATED BY '|';;
Warnings:
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
TRUNCATE t1;
SELECT COUNT(*) FROM t1;
COUNT(*)
0
LOAD DATA INFILE '/tmp/100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
LOAD DATA INFILE 'DATADIR/mcs88_100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';;
SELECT * FROM t1;
col1 col2 col3
0 10332 PhqDBpPa

View File

@ -2,6 +2,11 @@
# Bulk Load from a central location with single data source file
# Author: Susil, susil.behera@mariadb.com
#
if (!$MYSQL_TEST_ROOT){
skip Should be run by root to execute cpimport;
}
-- source ../include/have_columnstore.inc
--disable_warnings
@ -16,7 +21,7 @@ CREATE TABLE t1(col1 INT, col2 INT, col3 CHAR(8)) ENGINE=Columnstore;
#Bulk Load from a central location with single data source file
#cpimport -m1
--disable_result_log #cpimport logs thread/timestamps
--exec cpimport -m1 mcs47_db t1 './suite/columnstore/std_data/100Krows.dat';
--exec cpimport -m1 mcs47_db t1 '$MTR_SUITE_DIR/../std_data/100Krows.dat';
--enable_result_log
#Validate data
@ -29,7 +34,7 @@ TRUNCATE TABLE t1;
#cpimport default behavior is same as -m1 option.
--disable_result_log
--exec cpimport mcs47_db t1 './suite/columnstore/std_data/100Krows.dat';
--exec cpimport mcs47_db t1 '$MTR_SUITE_DIR/../std_data/100Krows.dat';
--enable_result_log
let $rowcount2 = query_get_value(SELECT COUNT(*) cnt FROM t1, cnt, 1);

View File

@ -2,6 +2,11 @@
# Parallel distributed bulk Load
# Author: Susil, susil.behera@mariadb.com
#
if (!$MYSQL_TEST_ROOT){
skip Should be run by root to execute cpimport;
}
-- source ../include/have_columnstore.inc
--disable_warnings
@ -15,10 +20,9 @@ CREATE TABLE t1(col1 INT, col2 INT, col3 CHAR(8)) ENGINE=Columnstore;
# Parallel distributed bulk Load, cpimport -m3
# This test needs to be extended to cover multi-node setup
--exec yes | cp ./suite/columnstore/std_data/100Krows.dat /tmp
--disable_result_log #cpimport logs thread/timestamps
--exec cpimport -m3 mcs49_db t1 -l '/tmp/100Krows.dat';
--exec cpimport -m3 mcs49_db t1 -l '$MTR_SUITE_DIR/../std_data/100Krows.dat';
--enable_result_log
#Validate data
@ -29,6 +33,4 @@ let $rowcount = query_get_value(SELECT COUNT(*) cnt FROM t1, cnt, 1);
let $match_counts= SELECT $rowcount = 100001;
--eval $match_counts
# Clean UP
--exec rm -f /tmp/100Krows.dat
DROP DATABASE mcs49_db;

View File

@ -2,6 +2,11 @@
# Bulk Load from STDIN
# Author: Susil, susil.behera@mariadb.com
#
if (!$MYSQL_TEST_ROOT){
skip Should be run by root to execute cpimport;
}
-- source ../include/have_columnstore.inc
--disable_warnings
@ -14,7 +19,7 @@ USE mcs50_db;
CREATE TABLE t1(col1 INT, col2 INT, col3 CHAR(8)) ENGINE=Columnstore;
#Valid data and table
--exec cat ./suite/columnstore/std_data/100Krows.dat | cpimport mcs50_db t1 >/dev/null
--exec cat $MTR_SUITE_DIR/../std_data/100Krows.dat | cpimport mcs50_db t1 >/dev/null
SELECT * FROM t1 ORDER BY col1;
SELECT COUNT(*) FROM t1;
@ -23,16 +28,16 @@ TRUNCATE t1;
#Unknown db
#Error getting OID for table unknown.t1: IDB-2006: 'unknown.t1' does not exist in Columnstore.
--error 1
--exec cat ./suite/columnstore/std_data/100Krows.dat | cpimport unknown t1 >/dev/null
--exec cat $MTR_SUITE_DIR/../100Krows.dat | cpimport unknown t1 >/dev/null
#Unknown table
#Error getting OID for table mcs50_db.unknown: IDB-2006: 'mcs50_db.unknown' does not exist in Columnstore.
--error 1
--exec cat ./suite/columnstore/std_data/100Krows.dat | cpimport mcs50_db unknown >/dev/null
--exec cat $MTR_SUITE_DIR/../std_data/100Krows.dat | cpimport mcs50_db unknown >/dev/null
#Wrong delimiter
--error 1
--exec cat ./suite/columnstore/std_data/100Krows.dat | cpimport mcs50_db t1 -s ',' >/dev/null
--exec cat $MTR_SUITE_DIR/../std_data/100Krows.dat | cpimport mcs50_db t1 -s ',' >/dev/null
#Unknown file
--exec rm -f /tmp/UNKNOWN.dat

View File

@ -2,6 +2,11 @@
# Binary source import
# Author: Susil, susil.behera@mariadb.com
#
if (!$MYSQL_TEST_ROOT){
skip Should be run by root to execute cpimport;
}
-- source ../include/have_columnstore.inc
--disable_warnings

View File

@ -2,6 +2,11 @@
# cpimport negative scenarios
# Author: Susil, susil.behera@mariadb.com
#
if (!$MYSQL_TEST_ROOT){
skip Should be run by root to execute cpimport;
}
-- source ../include/have_columnstore.inc
--disable_warnings

View File

@ -2,6 +2,11 @@
# cpimport -s <delimiter between column values>
# Author: Susil, susil.behera@mariadb.com
#
if (!$MYSQL_TEST_ROOT){
skip Should be run by root to execute cpimport;
}
-- source ../include/have_columnstore.inc
--disable_warnings
@ -15,10 +20,10 @@ CREATE TABLE t1(col1 INT, col2 INT, col3 CHAR(8)) ENGINE=Columnstore;
#Error in loading job data as ',' is not the actual delimiter
--error 1
--exec cpimport -s ',' mcs68_db t1 './suite/columnstore/std_data/100Krows.dat' >/dev/null
--exec cpimport -s ',' mcs68_db t1 '$MTR_SUITE_DIR/../std_data/100Krows.dat' >/dev/null
#Correct delimiter
--exec cpimport -s '|' mcs68_db t1 './suite/columnstore/std_data/100Krows.dat' >/dev/null
--exec cpimport -s '|' mcs68_db t1 '$MTR_SUITE_DIR/../std_data/100Krows.dat' >/dev/null
#Validate data
SELECT COUNT(*) FROM t1;
@ -26,14 +31,14 @@ SELECT COUNT(*) FROM t1;
TRUNCATE t1;
#Use a non-default delimiter '\t'
--exec rm -f /tmp/100Krows.dat
--exec cp ./suite/columnstore/std_data/100Krows.dat /tmp/100Krows.dat
--exec sed -i 's/|/\t/g' /tmp/100Krows.dat
--exec cpimport -s '\t' mcs68_db t1 '/tmp/100Krows.dat' >/dev/null
--exec rm -f /tmp/mcs68_100Krows.dat
--exec cp $MTR_SUITE_DIR/../std_data/100Krows.dat /tmp/mcs68_100Krows.dat
--exec sed -i 's/|/\t/g' /tmp/mcs68_100Krows.dat
--exec cpimport -s '\t' mcs68_db t1 '/tmp/mcs68_100Krows.dat' >/dev/null
#Validate data
SELECT COUNT(*) FROM t1;
# Clean UP
--exec rm -f /tmp/100Krows.dat
--exec rm -f /tmp/mcs68_100Krows.dat
DROP DATABASE mcs68_db;

View File

@ -4,6 +4,8 @@
#
-- source ../include/have_columnstore.inc
let $DATADIR= `SELECT @@datadir`;
--disable_warnings
DROP DATABASE IF EXISTS mcs88_db;
--enable_warnings
@ -12,33 +14,37 @@ CREATE DATABASE mcs88_db;
USE mcs88_db;
# Copy the data file to a location where there is no need to have permission.
--exec \cp ./suite/columnstore/std_data/100Krows.dat /tmp;
--exec \cp $MTR_SUITE_DIR/../std_data/100Krows.dat $DATADIR/mcs88_100Krows.dat
CREATE TABLE t1(col1 INT, col2 INT, col3 CHAR(8)) ENGINE=Columnstore;
LOAD DATA INFILE '/tmp/100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
--replace_result $DATADIR DATADIR
--eval LOAD DATA INFILE '$DATADIR/mcs88_100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
SELECT COUNT(*) FROM t1;
TRUNCATE t1;
# Importing file from client to a remote MySQL database server
LOAD DATA LOCAL INFILE '/tmp/100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
--replace_result $DATADIR DATADIR
--eval LOAD DATA LOCAL INFILE '$DATADIR/mcs88_100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
SELECT COUNT(*) FROM t1;
# Export table to CSV
--exec rm -f /tmp/100Krows.dat
SELECT col1, col2, col3 FROM t1 INTO OUTFILE '/tmp/100Krows.dat' FIELDS TERMINATED BY '|';
--exec rm -f $DATADIR/mcs88_100Krows.dat
--replace_result $DATADIR DATADIR
--eval SELECT col1, col2, col3 FROM t1 INTO OUTFILE '$DATADIR/mcs88_100Krows.dat' FIELDS TERMINATED BY '|';
# Clear table data and re-import
TRUNCATE t1;
SELECT COUNT(*) FROM t1;
LOAD DATA INFILE '/tmp/100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
--replace_result $DATADIR DATADIR
--eval LOAD DATA INFILE '$DATADIR/mcs88_100Krows.dat' INTO TABLE t1 FIELDS TERMINATED BY '|';
--sorted_result
SELECT * FROM t1;
SELECT COUNT(*) FROM t1;
# Clean UP
--exec rm -f /tmp/100Krows.dat
--exec rm -f $DATADIR/mcs88_100Krows.dat
DROP DATABASE mcs88_db;