Prevent multiple queries in a single string into a single transaction
when autocommit is off, and document grouping when autocommit is on.
This commit is contained in:
parent
d258ba01ec
commit
8670e3588f
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.114 2003/03/22 03:29:05 momjian Exp $
|
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.115 2003/03/24 18:33:52 momjian Exp $
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<chapter id="libpq">
|
<chapter id="libpq">
|
||||||
@ -857,11 +857,8 @@ returned by the server.
|
|||||||
maintain the <structname>PGresult</structname> abstraction. Use the accessor functions below to get
|
maintain the <structname>PGresult</structname> abstraction. Use the accessor functions below to get
|
||||||
at the contents of <structname>PGresult</structname>. Avoid directly referencing the fields of the
|
at the contents of <structname>PGresult</structname>. Avoid directly referencing the fields of the
|
||||||
<structname>PGresult</structname> structure because they are subject to change in the future.
|
<structname>PGresult</structname> structure because they are subject to change in the future.
|
||||||
(Beginning in <productname>PostgreSQL</productname> 6.4, the
|
If <quote>autocommit</quote> is on, multiple queries sent in a single
|
||||||
definition of <type>struct</> behind <structname>PGresult</> is not even provided in <filename>libpq-fe.h</>. If you
|
function call are processed in a single transaction.
|
||||||
have old code that accesses <structname>PGresult</structname> fields directly, you can keep using it
|
|
||||||
by including <filename>libpq-int.h</filename> too, but you are encouraged to fix the code
|
|
||||||
soon.)
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.86 2003/03/24 14:32:51 petere Exp $
|
$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.87 2003/03/24 18:33:52 momjian Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -86,6 +86,11 @@ PostgreSQL documentation
|
|||||||
meta-commands. To achieve that, you could pipe the string into
|
meta-commands. To achieve that, you could pipe the string into
|
||||||
<application>psql</application>, like this: <literal>echo "\x \\
|
<application>psql</application>, like this: <literal>echo "\x \\
|
||||||
select * from foo;" | psql</literal>.
|
select * from foo;" | psql</literal>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If <quote>autocommit</quote> is on, multiple queries in a single
|
||||||
|
string are processed in a single transaction.
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.319 2003/03/22 04:23:34 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.320 2003/03/24 18:33:52 momjian Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* this is the "main" module of the postgres backend and
|
* this is the "main" module of the postgres backend and
|
||||||
@ -83,6 +83,8 @@ sigjmp_buf Warn_restart;
|
|||||||
bool Warn_restart_ready = false;
|
bool Warn_restart_ready = false;
|
||||||
bool InError = false;
|
bool InError = false;
|
||||||
|
|
||||||
|
extern bool autocommit;
|
||||||
|
|
||||||
static bool EchoQuery = false; /* default don't echo */
|
static bool EchoQuery = false; /* default don't echo */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -893,7 +895,7 @@ pg_exec_query_string(StringInfo query_string, /* string to execute */
|
|||||||
* historical Postgres behavior, we do not force a transaction
|
* historical Postgres behavior, we do not force a transaction
|
||||||
* boundary between queries appearing in a single query string.
|
* boundary between queries appearing in a single query string.
|
||||||
*/
|
*/
|
||||||
if (lnext(parsetree_item) == NIL && xact_started)
|
if ((lnext(parsetree_item) == NIL || !autocommit) && xact_started)
|
||||||
{
|
{
|
||||||
finish_xact_command(false);
|
finish_xact_command(false);
|
||||||
xact_started = false;
|
xact_started = false;
|
||||||
@ -1793,7 +1795,7 @@ PostgresMain(int argc, char *argv[], const char *username)
|
|||||||
if (!IsUnderPostmaster)
|
if (!IsUnderPostmaster)
|
||||||
{
|
{
|
||||||
puts("\nPOSTGRES backend interactive interface ");
|
puts("\nPOSTGRES backend interactive interface ");
|
||||||
puts("$Revision: 1.319 $ $Date: 2003/03/22 04:23:34 $\n");
|
puts("$Revision: 1.320 $ $Date: 2003/03/24 18:33:52 $\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user