[MDEV-26730] SQL Error (1296): Got error 122 'Field 22 too long for my_column line 1292 of my_file.csv' from CONNECT Created: 2021-09-30 Updated: 2022-08-26 Resolved: 2022-08-26 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - Connect |
| Affects Version/s: | 10.5.9 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Peter Schulz | Assignee: | Andrew Hutchings |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | Documentation | ||
| Environment: |
Windows 10 |
||
| Description |
|
When I load a CSV with a lot of large text columns, a CONNECT table is created and I can query the table. Some rows however, are returning the following error:
HeidiSQL, SQL command line and PDO are all giving the same error. The error log shows:
This is my create table statement:
Column my_column is auto created as varchar(3329). But when I scan the CSV file, the row on line 1292 contains a text string with a length of 6632. What can I do? Are there any parameters that I can change? Could this be Windows related? Any help is appreciated. Thanks, |
| Comments |
| Comment by Andrew Hutchings [ 2022-08-26 ] | ||||||||
|
The reason for this is that the CSV parser in CONNECT engine only reads a maximum 4096 bytes for a row's data by default, which means that when determining row length that row would have been truncated. If it was quoted you would have got an "Unbalanced quote" error. To resolve this you need to add the lrecl parameter to your CREATE TABLE and set it to something higher than your maximum row length. Something like:
I will update the documentation for this accordingly. | ||||||||
| Comment by Andrew Hutchings [ 2022-08-26 ] | ||||||||
|
Updated the following document to add note about lrecl: |