|
| 1 | +# |
| 2 | +# MCOL-5480 LDI loads values incorrectly for MEDIUMINT, TIME and TIMESTAMP |
| 3 | +# when cpimport is used for batch insert |
| 4 | +# |
| 5 | + |
| 6 | +--source ../include/have_columnstore.inc |
| 7 | + |
| 8 | +let $DATADIR=`SELECT @@datadir`; |
| 9 | + |
| 10 | +--disable_warnings |
| 11 | +DROP DATABASE IF EXISTS mcol_5480; |
| 12 | +--enable_warnings |
| 13 | +CREATE DATABASE mcol_5480; |
| 14 | +USE mcol_5480; |
| 15 | +SHOW VARIABLES LIKE 'columnstore_use_import_for_batchinsert'; |
| 16 | + |
| 17 | +# Test for signed medium int with timestamp and time data types. |
| 18 | +## Signed medium int as the first column |
| 19 | +CREATE TABLE t1 (cmediumint MEDIUMINT, ctimestamp TIMESTAMP, ctime TIME) engine=columnstore; |
| 20 | +--exec rm -f $DATADIR/mcol5480.txt |
| 21 | +--exec echo "-8388608|2020-08-13 03:14:07|11:58:28|" >> $DATADIR/mcol5480.txt |
| 22 | +--exec echo "-8388607|2020-08-14 03:14:07|11:58:38|" >> $DATADIR/mcol5480.txt |
| 23 | +--exec echo "-1000|2020-08-15 03:14:07|11:58:48|" >> $DATADIR/mcol5480.txt |
| 24 | +--exec echo "-1|2020-08-16 03:14:07|11:58:58|" >> $DATADIR/mcol5480.txt |
| 25 | +--exec echo "1|2020-08-13 03:14:08|12:58:28|" >> $DATADIR/mcol5480.txt |
| 26 | +--exec echo "1000|2020-08-13 03:14:09|13:58:28|" >> $DATADIR/mcol5480.txt |
| 27 | +--exec echo "8388607|2020-08-13 03:14:10|14:58:28|" >> $DATADIR/mcol5480.txt |
| 28 | +--exec echo "\N|2020-08-13 03:14:11|15:58:28|" >> $DATADIR/mcol5480.txt |
| 29 | +--replace_result $DATADIR DATADIR |
| 30 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 31 | +SELECT * FROM t1; |
| 32 | +DROP TABLE t1; |
| 33 | + |
| 34 | +## Signed medium int as the middle column |
| 35 | +CREATE TABLE t1 (ctimestamp TIMESTAMP, cmediumint MEDIUMINT, ctime TIME) engine=columnstore; |
| 36 | +--exec rm -f $DATADIR/mcol5480.txt |
| 37 | +--exec echo "2020-08-13 03:14:07|-8388608|11:58:28|" >> $DATADIR/mcol5480.txt |
| 38 | +--exec echo "2020-08-14 03:14:07|-8388607|11:58:38|" >> $DATADIR/mcol5480.txt |
| 39 | +--exec echo "2020-08-15 03:14:07|-1000|11:58:48|" >> $DATADIR/mcol5480.txt |
| 40 | +--exec echo "2020-08-16 03:14:07|-1|11:58:58|" >> $DATADIR/mcol5480.txt |
| 41 | +--exec echo "2020-08-13 03:14:08|1|12:58:28|" >> $DATADIR/mcol5480.txt |
| 42 | +--exec echo "2020-08-13 03:14:09|1000|13:58:28|" >> $DATADIR/mcol5480.txt |
| 43 | +--exec echo "2020-08-13 03:14:10|8388607|14:58:28|" >> $DATADIR/mcol5480.txt |
| 44 | +--exec echo "2020-08-13 03:14:11|\N|15:58:28|" >> $DATADIR/mcol5480.txt |
| 45 | +--replace_result $DATADIR DATADIR |
| 46 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 47 | +SELECT * FROM t1; |
| 48 | +DROP TABLE t1; |
| 49 | + |
| 50 | +# Test for unsigned medium int with timestamp and time data types. |
| 51 | +## Unsigned medium int as the first column |
| 52 | +CREATE TABLE t1 (cmediumint MEDIUMINT UNSIGNED, ctimestamp TIMESTAMP, ctime TIME) engine=columnstore; |
| 53 | +--exec rm -f $DATADIR/mcol5480.txt |
| 54 | +--exec echo "0|2020-08-12 03:14:08|12:58:18|" >> $DATADIR/mcol5480.txt |
| 55 | +--exec echo "1|2020-08-13 03:14:08|12:58:28|" >> $DATADIR/mcol5480.txt |
| 56 | +--exec echo "1000|2020-08-13 03:14:09|13:58:28|" >> $DATADIR/mcol5480.txt |
| 57 | +--exec echo "8388607|2020-08-13 03:14:10|14:58:28|" >> $DATADIR/mcol5480.txt |
| 58 | +--exec echo "\N|2020-08-13 03:14:11|15:58:28|" >> $DATADIR/mcol5480.txt |
| 59 | +--exec echo "16777215|2020-08-13 03:14:11|15:58:28|" >> $DATADIR/mcol5480.txt |
| 60 | +--replace_result $DATADIR DATADIR |
| 61 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 62 | +SELECT * FROM t1; |
| 63 | +DROP TABLE t1; |
| 64 | + |
| 65 | +## Unsigned medium int as the middle column |
| 66 | +CREATE TABLE t1 (ctimestamp TIMESTAMP, cmediumint MEDIUMINT UNSIGNED, ctime TIME) engine=columnstore; |
| 67 | +--exec rm -f $DATADIR/mcol5480.txt |
| 68 | +--exec echo "2020-08-12 03:14:08|0|12:58:18|" >> $DATADIR/mcol5480.txt |
| 69 | +--exec echo "2020-08-13 03:14:08|1|12:58:28|" >> $DATADIR/mcol5480.txt |
| 70 | +--exec echo "2020-08-13 03:14:09|1000|13:58:28|" >> $DATADIR/mcol5480.txt |
| 71 | +--exec echo "2020-08-13 03:14:10|8388607|14:58:28|" >> $DATADIR/mcol5480.txt |
| 72 | +--exec echo "2020-08-13 03:14:11|\N|15:58:28|" >> $DATADIR/mcol5480.txt |
| 73 | +--exec echo "2020-08-13 03:14:11|16777215|15:58:28|" >> $DATADIR/mcol5480.txt |
| 74 | +--replace_result $DATADIR DATADIR |
| 75 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 76 | +SELECT * FROM t1; |
| 77 | +DROP TABLE t1; |
| 78 | + |
| 79 | +# Test for only signed medium int data type |
| 80 | +CREATE TABLE t1 (cmediumint MEDIUMINT) engine=columnstore; |
| 81 | +--exec rm -f $DATADIR/mcol5480.txt |
| 82 | +--exec echo "-8388608|" >> $DATADIR/mcol5480.txt |
| 83 | +--exec echo "-8388607|" >> $DATADIR/mcol5480.txt |
| 84 | +--exec echo "-1000|" >> $DATADIR/mcol5480.txt |
| 85 | +--exec echo "-1|" >> $DATADIR/mcol5480.txt |
| 86 | +--exec echo "1|" >> $DATADIR/mcol5480.txt |
| 87 | +--exec echo "1000|" >> $DATADIR/mcol5480.txt |
| 88 | +--exec echo "8388607|" >> $DATADIR/mcol5480.txt |
| 89 | +--exec echo "\N|" >> $DATADIR/mcol5480.txt |
| 90 | +--replace_result $DATADIR DATADIR |
| 91 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 92 | +SELECT * FROM t1; |
| 93 | +DROP TABLE t1; |
| 94 | + |
| 95 | +# Test for only unsigned medium int data type |
| 96 | +CREATE TABLE t1 (cmediumint MEDIUMINT UNSIGNED) engine=columnstore; |
| 97 | +--exec rm -f $DATADIR/mcol5480.txt |
| 98 | +--exec echo "0|" >> $DATADIR/mcol5480.txt |
| 99 | +--exec echo "1|" >> $DATADIR/mcol5480.txt |
| 100 | +--exec echo "1000|" >> $DATADIR/mcol5480.txt |
| 101 | +--exec echo "8388607|" >> $DATADIR/mcol5480.txt |
| 102 | +--exec echo "\N|" >> $DATADIR/mcol5480.txt |
| 103 | +--exec echo "16777215|" >> $DATADIR/mcol5480.txt |
| 104 | +--replace_result $DATADIR DATADIR |
| 105 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 106 | +SELECT * FROM t1; |
| 107 | +DROP TABLE t1; |
| 108 | + |
| 109 | +# Test for timestamp and time data types |
| 110 | +CREATE TABLE t1 (ctimestamp TIMESTAMP, ctime TIME) engine=columnstore; |
| 111 | +--exec rm -f $DATADIR/mcol5480.txt |
| 112 | +--exec echo "2020-08-13 03:14:07|11:58:28|" >> $DATADIR/mcol5480.txt |
| 113 | +--exec echo "2020-08-14 03:14:07|11:58:38|" >> $DATADIR/mcol5480.txt |
| 114 | +--exec echo "2020-08-15 03:14:07|11:58:48|" >> $DATADIR/mcol5480.txt |
| 115 | +--exec echo "2020-08-16 03:14:07|11:58:58|" >> $DATADIR/mcol5480.txt |
| 116 | +--exec echo "2020-08-13 03:14:08|12:58:28|" >> $DATADIR/mcol5480.txt |
| 117 | +--exec echo "2020-08-13 03:14:09|13:58:28|" >> $DATADIR/mcol5480.txt |
| 118 | +--exec echo "2020-08-13 03:14:10|14:58:28|" >> $DATADIR/mcol5480.txt |
| 119 | +--exec echo "2020-08-13 03:14:11|15:58:28|" >> $DATADIR/mcol5480.txt |
| 120 | +--replace_result $DATADIR DATADIR |
| 121 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 122 | +SELECT * FROM t1; |
| 123 | +DROP TABLE t1; |
| 124 | + |
| 125 | +# Test for only timestamp data type |
| 126 | +CREATE TABLE t1 (ctimestamp TIMESTAMP) engine=columnstore; |
| 127 | +--exec rm -f $DATADIR/mcol5480.txt |
| 128 | +--exec echo "2020-08-13 03:14:07|" >> $DATADIR/mcol5480.txt |
| 129 | +--exec echo "2020-08-14 03:14:07|" >> $DATADIR/mcol5480.txt |
| 130 | +--exec echo "2020-08-15 03:14:07|" >> $DATADIR/mcol5480.txt |
| 131 | +--exec echo "2020-08-16 03:14:07|" >> $DATADIR/mcol5480.txt |
| 132 | +--exec echo "2020-08-13 03:14:08|" >> $DATADIR/mcol5480.txt |
| 133 | +--exec echo "2020-08-13 03:14:09|" >> $DATADIR/mcol5480.txt |
| 134 | +--exec echo "2020-08-13 03:14:10|" >> $DATADIR/mcol5480.txt |
| 135 | +--exec echo "2020-08-13 03:14:11|" >> $DATADIR/mcol5480.txt |
| 136 | +--replace_result $DATADIR DATADIR |
| 137 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 138 | +SELECT * FROM t1; |
| 139 | +DROP TABLE t1; |
| 140 | + |
| 141 | +# Test for only time data type |
| 142 | +CREATE TABLE t1 (ctime TIME) engine=columnstore; |
| 143 | +--exec rm -f $DATADIR/mcol5480.txt |
| 144 | +--exec echo "11:58:28|" >> $DATADIR/mcol5480.txt |
| 145 | +--exec echo "11:58:38|" >> $DATADIR/mcol5480.txt |
| 146 | +--exec echo "11:58:48|" >> $DATADIR/mcol5480.txt |
| 147 | +--exec echo "11:58:58|" >> $DATADIR/mcol5480.txt |
| 148 | +--exec echo "12:58:28|" >> $DATADIR/mcol5480.txt |
| 149 | +--exec echo "13:58:28|" >> $DATADIR/mcol5480.txt |
| 150 | +--exec echo "14:58:28|" >> $DATADIR/mcol5480.txt |
| 151 | +--exec echo "15:58:28|" >> $DATADIR/mcol5480.txt |
| 152 | +--replace_result $DATADIR DATADIR |
| 153 | +--eval LOAD DATA INFILE "$DATADIR/mcol5480.txt" INTO TABLE t1 FIELDS TERMINATED BY "|"; |
| 154 | +SELECT * FROM t1; |
| 155 | +DROP TABLE t1; |
| 156 | + |
| 157 | +--exec rm -f $DATADIR/mcol5480.txt |
| 158 | +--disable_warnings |
| 159 | +DROP DATABASE mcol_5480; |
| 160 | +--enable_warnings |
0 commit comments