Thread: interactive oddity for psql -c "cmd; cmd;"
I would think this should echo *two* "INSERT <oid> 1" messages, instead of just 1. % createdb viewsdb CREATE DATABASE % psql -d viewsdb -c "create table foo(i integer); create table bar(j integer);" CREATE % psql -d viewsdb -c "insert into foo(i) values (1); insert into foo(i) values (2);" INSERT 9968065 1 % psql -d viewsdb -c "select * from foo;"i ---12 (2 rows) % psql -d viewsdb -c "select oid from foo;" oid ---------99680649968065 (2 rows)
> I would think this should echo *two* "INSERT <oid> 1" messages, instead > of just 1. > > % createdb viewsdb > CREATE DATABASE > % psql -d viewsdb -c "create table foo(i integer); create table bar(j > integer);" > CREATE > % psql -d viewsdb -c "insert into foo(i) values (1); insert into foo(i) > values (2);" > INSERT 9968065 1 > % psql -d viewsdb -c "select * from foo;" > i > --- > 1 > 2 > (2 rows) > > % psql -d viewsdb -c "select oid from foo;" > oid > --------- > 9968064 > 9968065 > (2 rows) > The query is sent as one string, and only one return is sent back. It has always been that way. -- Bruce Momjian | http://www.op.net/~candle pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Bruce Momjian writes: > > % psql -d viewsdb -c "insert into foo(i) values (1); insert into foo(i) > > values (2);" > > INSERT 9968065 1 > The query is sent as one string, and only one return is sent back. It > has always been that way. Which can be construed as a semi-feature because that's the only way to get unencumbered strings from psql to the backend. -- Peter Eisentraut Sernanders väg 10:115 peter_e@gmx.net 75262 Uppsala http://yi.org/peter-e/ Sweden
Bruce Momjian wrote: > > > I would think this should echo *two* "INSERT <oid> 1" messages, instead > > of just 1. > > > > % psql -d viewsdb -c "insert into foo(i) values (1); insert into foo(i) > > values (2);" > > INSERT 9968065 1 > > The query is sent as one string, and only one return is sent back. It > has always been that way. That's unintuitive and inconsistent behavior, albeit largely inconsequential, when compared with the same line in a script... % psql -d vtdb vtdb=# INSERT INTO foo(i) values (13); INSERT INTO foo(i) values (13); INSERT 9971328 1 INSERT 9971329 1 Regards, Ed Loehr