[MCOL-572] "values saturated" warnings when loading data don't reference row # or field name Created: 2017-02-15 Updated: 2019-09-27 Resolved: 2019-08-16 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | DMLProc |
| Affects Version/s: | 1.0.7, 1.0.11 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Justin Swanhart (Inactive) | Assignee: | Andrew Hutchings (Inactive) |
| Resolution: | Won't Fix | Votes: | 2 |
| Labels: | None | ||
| Description |
|
I loaded some data into a table with LOAD DATA INFILE and I got some warnings, but I can't tell on what fields or rows the warnings happened! MariaDB [(none)]> show warnings;
--------
-------- |
| Comments |
| Comment by David Thompson (Inactive) [ 2017-02-16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As per | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Pierre Coustilas [ 2017-11-17 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I have same problem, but i have a reproductible test. My table :
STEP 1 : I use this csv file : mysql> LOAD DATA INFILE '/mnt/tarnasdev/developpement/pierre/fic.csv' INTO TABLE tmp__pierre FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; mysql> show warnings; mysql> SELECT * FROM tmp__pierre;
-----
----- STEP 2 , this file : mysql> LOAD DATA INFILE '/mnt/tarnasdev/developpement/pierre/fic.csv' INTO TABLE tmp__pierre FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; mysql> show warnings; mysql> SELECT * FROM tmp__pierre;
-----
----- STEP 3, this file : mysql> LOAD DATA INFILE '/mnt/tarnasdev/developpement/pierre/fic.csv' INTO TABLE tmp__pierre FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; mysql> show warnings;
--------
-------- mysql> SELECT * FROM tmp__pierre;
-----
----- STEP 4 : this file : mysql> LOAD DATA INFILE '/mnt/tarnasdev/developpement/pierre/fic.csv' INTO TABLE tmp__pierre FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; mysql> show warnings;
--------
-------- mysql> SELECT * FROM tmp__pierre;
-----
----- STEP 5, this file : mysql> LOAD DATA INFILE '/mnt/tarnasdev/developpement/pierre/fic.csv' INTO TABLE tmp__pierre FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; mysql> show warnings;
--------
-------- mysql> SELECT * FROM tmp__pierre;
-----
----- CONCLUSION : It is very problematic to debug the LOAD | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Hutchings (Inactive) [ 2017-11-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The current way this works is looks for the cpimport error count in the log file and then spits out that many warnings. I think at the moment the best way to implement it would be to use the /tmp/columnstore_tmp_files/BrmRpt*.rpt file indicated in the log file and parse this to generate relevant warnings. For Pierre's example it contains this:
Longer term we will use the API's writeengine calls instead of cpimport and get real data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Pierre Coustilas [ 2017-11-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
same problem with date : mysql> create table tmp__date (madate date) engine=columnstore; mysql> INSERT INTO tmp__date VALUES ('0201-11-11'); mysql> show warnings;
--------
-------- mysql> LOAD DATA INFILE '/mnt/tarnasdev/developpement/pierre/date.csv' INTO TABLE tmp__date FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '\n'; mysql> show warnings;
--------
-------- date.csv : if I look .rpt file generated by LOAD date.csv :
how to interpret this file ?? Thanks Pierre | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Roman [ 2017-12-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
In case of out of range values you should look at the rows containing 'DATA:' since they contain all the information you need: column_number column_type column_oid out_of_range_number. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Hutchings (Inactive) [ 2017-12-31 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Roman, Unfortunately that log doesn't show which row or value, just how many. The code currently takes this count and loops to create warnings at the end. It would not be possible to give more information without modifying the log files or cpimport since the data is basically piped to cpimport and we don't get a real-time response for this. With 1.2 we will be moving to a different method of doing LOAD DATA and INSERT...SELECT which will be able to process the warnings properly. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Andrew Hutchings (Inactive) [ 2019-08-16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
We will be doing LDI differently in future so closing as "won't fix" |