On Thu, Jul 14, 2011 at 10:10:28AM +0800, Craig Ringer wrote:
> On 14/07/2011 4:53 AM, Aleksey Tsalolikhin wrote:
> >The following bug has been logged online:
> >
> >Bug reference:      6117
> >Logged by:          Aleksey Tsalolikhin
> >Email address:      atsaloli.t...@gmail.com
> >PostgreSQL version: 8.4.8
> >Operating system:   CentOS 5.5 (64-bit)
> >Description:        psql -c does not work as expected.  a documentation bug?
> >  a program bug?
> >Details:
> >
> >The psql man page says, in the section for the -c option:
> >
> >     If the command string contains multiple SQL
> >     commands, they are processed in a  single
> >     transaction
> >
> >However when I run a command string with multiple
> >SQL commands, apparently only the last one is
> >processed.
> >
> What's happening is that all of them are processed, but only the
> output for the last one is emitted. I agree that the documentation
> isn't clear about that, and I'm not sure whether or not that was the
> intended result.
> 
> psql -c "CREATE TABLE test(x integer); INSERT INTO test(x) VALUES
> (1),(2),(3); SELECT version(); SELECT * FROM test;"
>  x
> ---
>  1
>  2
>  3
> (3 rows)
> 
> 
> Comments anybody? Just fix the docs, or is this a behaviour issue?

I have added documentation for this behavior.  Patch attached, and
backpatched to 9.2 and 9.1.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
new file mode 100644
index b6bf6a3..1ba5ea8
*** a/doc/src/sgml/ref/psql-ref.sgml
--- b/doc/src/sgml/ref/psql-ref.sgml
*************** PostgreSQL documentation
*** 99,105 ****
         <command>BEGIN</>/<command>COMMIT</> commands included in the
         string to divide it into multiple transactions.  This is
         different from the behavior when the same string is fed to
!        <application>psql</application>'s standard input.
        </para>
        </listitem>
      </varlistentry>
--- 99,106 ----
         <command>BEGIN</>/<command>COMMIT</> commands included in the
         string to divide it into multiple transactions.  This is
         different from the behavior when the same string is fed to
!        <application>psql</application>'s standard input.  Also, only
!        the result of the last SQL command is returned.
        </para>
        </listitem>
      </varlistentry>
-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to