BUG #1725: psql --command and PQexec do not work and fail silently

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

BUG #1725: psql --command and PQexec do not work and fail silently

Charlie Monkton

The following bug has been logged online:

Bug reference:      1725
Logged by:          Charlie Monkton
Email address:      [hidden email]
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.

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings
Reply | Threaded
Open this post in threaded view
|

Re: BUG #1725: psql --command and PQexec do not work and fail silently

Tom Lane-2
"Charlie Monkton" <[hidden email]> 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

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [hidden email]