Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pgloader 3.6.2 - "on error resume next" functionality doesn't work for Pgloader. #1557

Open
bhanase opened this issue Feb 5, 2024 · 0 comments

Comments

@bhanase
Copy link

bhanase commented Feb 5, 2024

Hi Team,
While migrating Postgres.v11–v14, we found the following query issue with the internal PGloader 3.3.2 tool. As a result, we upgraded to PGLoader 3.6.2.

Following that, we encountered issues when loading from CSV files using the PGloader, and the job immediately ceased executing as a result of the error (contains ""). We attempted to proceed with the procedure by using the on error resume next command, but PGLoader version 3.6.2 is not allowing this command to function as intended.

While we can process the entire CSV file after an error occurs in PGloader version 3.3.2 with Postgres-v11, this feature is not supported in PGloader version 3.6.2 with Postgres-v14.

column def.adsrc does not exist
QUERY:
select nspname, relname, c.oid, attname,
t.oid::regtype as type,
case when atttypmod > 0 then atttypmod - 4 else null end as typmod,
attnotnull,
case when atthasdef then def.adsrc end as default
from pg_class c
join pg_namespace n on n.oid = c.relnamespace
left join pg_attribute a on c.oid = a.attrelid
join pg_type t on t.oid = a.atttypid and attnum > 0
left join pg_attrdef def on a.attrelid = def.adrelid
and a.attnum = def.adnum

 where nspname !~ '^pg_' and n.nspname <> 'information_schema'
       and relkind = 'r'
       and ((n.nspname = 'tdw_stg' and c.relname ~ '^src_archive$'))

order by nspname, relname, attnum
2023-10-11T02:48:46.147000Z FATAL Failed to prepare target PostgreSQL table.
2023-10-11T02:48:46.147000Z FATAL Database error 42703: column def.adsrc does not exist
QUERY:

The code below is for the on error continue next in PGloader load.csv, but it does not support the below WITH instructions when loading the CSV with the sample field ("OBC ZONE5- AREAN "N" ", ""MUSAFFAH INDUSTRIAL AREA,M 24Ï¿½""), specifically (""). Instead, it stops while loading the data.

LOAD CSV
FROM 'csvfile' WITH ENCODING encoding
HAVING FIELDS
(
tabledefn
)
INTO loadurl
TARGET TABLE schemaname.tablename
WITH skip header = 1,
fields terminated by ',',
on error resume next,
fields optionally enclosed by '"',
batch rows = 200;

Sample Data
2,951855394,1786020,0,0,67,"09/17/2023 07:50:57","09/17/2023 08:50:57","10/16/2023 13:45:36",211,21,52.469799,-1.999604,13173,1
23284.15,0,""MUSAFFAH INDUSTRIAL AREA,M 24Ï¿½"","","B68 0LU","WEST MIDLANDS","OLDBURY","UK",1,0,0,13173,0,"09/17","0023355_WR11KZC","0","0",23
339,0,0,0,0,3000,25,24,10,10,425,299,30,6,0,0,"","UNITED KINGDOM",52,-2,"09/17/2023 07:50:57","09/17/2023 08:50:57",0,"","NCID"
,,,,0,"10/16/2023 14:17:11","GSL1-NAGM",,

Error while processing:
ERROR non whitespace after quoted data #<CSV-READER LINE-IDX:18411 CHARACTER-LINE-IDX:148 CHARACTER
-IDX:3822750 "" {100935F1E3}> M

@bhanase bhanase changed the title PGLoader CSV exceptions with postgresV14 PGLoader -Pgloader 3.6.2 not compatible with postgresV14 when handing data error with double quotes(") Feb 5, 2024
@bhanase bhanase changed the title PGLoader -Pgloader 3.6.2 not compatible with postgresV14 when handing data error with double quotes(") PGLoader -Pgloader 3.6.2 not processing data after data error with double quotes(") Feb 5, 2024
@bhanase bhanase changed the title PGLoader -Pgloader 3.6.2 not processing data after data error with double quotes(") PGLoader -Pgloader 3.6.2 - "on error resume next" functionality doesn't work for Pgloader. Feb 5, 2024
@bhanase bhanase changed the title PGLoader -Pgloader 3.6.2 - "on error resume next" functionality doesn't work for Pgloader. Pgloader 3.6.2 - "on error resume next" functionality doesn't work for Pgloader. Feb 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant