Thread: BUG #1725: psql --command and PQexec do not work and fail silently
The following bug has been logged online: Bug reference: 1725 Logged by: Charlie Monkton Email address: charlie@hwhc.net PostgreSQL version: 7.4.6 Operating system: Solaris 9 Description: psql --command and PQexec do not work and fail silently Details: Create the following tables: create table test ( i int primary key not null ); create table test_ref ( i int references test(i) on delete cascade ); Executing the following SQL via the psql -c option (or PQexec does not work: psql -c "delete from test;insert into test values ( 1 );insert into test_ref values ( 1 );" INSERT 30816 1 #select * from test_ref; i --- (0 rows) echo "delete from test;insert into test values ( 1 );insert into test_ref values ( 1 );" | /usr/local/pgsql/bin/psql DELETE 1 INSERT 30813 1 INSERT 30814 1 # select * from test_ref; i --- 1 (1 row) This is very bad as multiple statement executed by PQexec fail and do not return an error message.
"Charlie Monkton" <charlie@hwhc.net> writes: > Executing the following SQL via the psql -c option (or PQexec does not > work: > psql -c "delete from test;insert into test values ( 1 );insert into > test_ref values ( 1 );" In 7.4 and before, test's ON DELETE trigger won't be fired until the end of that command string, so it deletes both the old and new rows in test_ref. We changed the timing of trigger firing in 8.0, and now that example works as you expect. regards, tom lane