BUG #15192: Implement option to use columns order defined at CSV

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: kes-kes(at)yandex(dot)ru
Subject: BUG #15192: Implement option to use columns order defined at CSV
Date: 2018-05-10 11:18:04
Message-ID: 152595108433.1481.5280132477337920465@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 15192
Logged by: Eugen Konkov
Email address: kes-kes(at)yandex(dot)ru
PostgreSQL version: 9.6.1
Operating system: SMP Debian 4.9.82-1+deb9u3
Description:

While dumping/restore data I faced into problem that column order are
different on different servers.

Restoring the data

COPY tariff_details FROM STDIN WITH( FORMAT CSV, HEADER )

cause error:

ERROR: null value in column "periodic" violates not-null constraint
DETAIL: Failing row contains (17, 1, Setup fee, 5.000000000000000000,
null, f, null, 0).
CONTEXT: COPY tariff_details, line 2: "17,1,Setup
fee,5.000000000000000000,,f,,0"

To work around this problem I use next makefile:

dbrestoretable: export PGPASSWORD = ${DB_PASS}
dbrestoretable:
line=$$(head -n 1 ${APP_ROOT}/db/${TABLE}.dump.csv)
@cat ${APP_ROOT}/db/${TABLE}.dump.csv | \
psql -h ${DB_HOST} -p ${DB_PORT} -U ${DB_USER} ${DB_NAME} -c \
"BEGIN;COPY ${TABLE}($$line) FROM STDIN WITH( FORMAT CSV, HEADER
);COMMIT;" ||:

Implement option to force postgres to use columns order from CSV

For details: https://stackoverflow.com/q/50271162/4632019

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Stephen Frost 2018-05-10 13:36:39 PostgreSQL 2018-05-10 Security Update Release
Previous Message Michael Paquier 2018-05-10 09:04:53 Re: the postgres process is not killed when the postmaster is killed