From: | jian he <jian(dot)universality(at)gmail(dot)com> |
---|---|
To: | Nishant Sharma <nishant(dot)sharma(at)enterprisedb(dot)com> |
Cc: | Kirill Reshke <reshkekirill(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: on_error table, saving error info to a table |
Date: | 2025-10-22 05:15:11 |
Message-ID: | CACJufxFVNyrzMxoDqLpmPgQPAco7v_KRUP+Z8L7JBVYCZ-NZ0Q@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
hi.
The previous discussion mentioned using built-in typed tables for the
error saving table.
It's doable.
first create an build-in composite type in system_functions.sql:
CREATE TYPE copy_error_saving AS(
userid oid,
copy_tbl oid,
filename text COLLATE "C",
lineno bigint,
line text COLLATE "C",
colname text COLLATE "C",
raw_field_value text COLLATE "C",
err_message text COLLATE "C",
err_detail text COLLATE "C",
errorcode text COLLATE "C"
);
then we can use it to create a table like:
CREATE TABLE error_saving_table OF copy_error_saving;
The downside of this:
If the pg_catalog composite (type copy_error_saving) were to change,
it could lead to potential compatibility issues.
We need to be confident that copy_error_saving definitions are
unlikely to occur in the future.
For the above type copy_error_saving, I am wondering, do we aslo need
add a timestamptz field like "starttime" to indicate COPY beginning time.
anyway, please take a look at the attached patch.
It introduces a built-in composite type, allowing users to simply use
CREATE TABLE x OF copy_error_saving
to create a table for storing COPY FROM error-related information.
Attachment | Content-Type | Size |
---|---|---|
v7-0001-COPY-FROM-on_error-table.patch | text/x-patch | 34.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Smith | 2025-10-22 05:23:03 | Re: Logical Replication of sequences |
Previous Message | Amit Kapila | 2025-10-22 05:05:49 | Re: Logical Replication of sequences |