Обсуждение: interactive oddity for psql -c "cmd; cmd;"

Поиск
Список
Период
Сортировка

interactive oddity for psql -c "cmd; cmd;"

От
Ed Loehr
Дата:
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)


Re: interactive oddity for psql -c "cmd; cmd;"

От
Bruce Momjian
Дата:
> 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
 


Re: interactive oddity for psql -c "cmd; cmd;"

От
Peter Eisentraut
Дата:
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



Re: interactive oddity for psql -c "cmd; cmd;"

От
Ed Loehr
Дата:
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