Thread: SQL statement in an error report for deferred constraint violation.
Hi, While PQresultErrorField() from libpq allows to get context in which an error occurred for immediate constraints, and thus an SQL statement which caused the constraint violation, I cannot see any way to find out which SQL statement caused an error in case of deferred constraints, in particular deferred foreign key constraints. Is there any way to check which SQL statement or at least which row violated a constraint when it's deferred? If not does anyone know why there is such restriction? Konrad
Attachment
Konrad Witaszczyk wrote > Hi, > > While PQresultErrorField() from libpq allows to get context in which an > error > occurred for immediate constraints, and thus an SQL statement which caused > the > constraint violation, I cannot see any way to find out which SQL statement > caused an error in case of deferred constraints, in particular deferred > foreign > key constraints. > > Is there any way to check which SQL statement or at least which row > violated a > constraint when it's deferred? If not does anyone know why there is such > restriction? > > > Konrad > > > > signature.asc (981 bytes) > <http://www.postgresql-archive.org/attachment/6015088/0/signature.asc> First of all, you need to locate the problem SQL by modifying log parameters. sed -ir "s/#*logging_collector.*/logging_collector= on/" $PGDATA/postgresql.conf sed -ir "s/#*log_directory.*/log_directory = 'pg_log'/" $PGDATA/postgresql.conf sed -ir "s/#*log_statement.*/log_statement= 'all'/" $PGDATA/postgresql.conf Execute this SQL and send error message in the log. regards Jack Gao -- Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html