Doc: remove misleading info about ecpg's CONNECT/DISCONNECT DEFAULT.

As far as I can see, ecpg has no notion of a "default" open
connection.  You can do "CONNECT TO DEFAULT" but that just specifies
letting libpq use all its default connection parameters --- the
resulting connection is not special subsequently.  In particular,
SET CONNECTION = DEFAULT and DISCONNECT DEFAULT simply act on a
connection named DEFAULT, if you've made one; they do not have
special lookup rules.  But the documentation of these commands
makes it look like they do.

Simplest fix, I think, is just to remove the paras suggesting that
DEFAULT is special here.

Also, SET CONNECTION *does* have one special lookup rule, which
is that it recognizes CURRENT as an alias for the currently selected
connection.  SET CONNECTION = CURRENT is a no-op, so it's pretty
useless, but nonetheless it does something different from selecting
a connection by name; so we'd better document it.

Per report from Sylvain Frandaz.  Back-patch to all supported
versions.

Discussion: https://postgr.es/m/169824721149.1769274.1553568436817652238@wrigleys.postgresql.org
This commit is contained in:
Tom Lane 2023-10-25 17:34:47 -04:00
parent fdeb6e6a74
commit bddc2f7480
1 changed files with 3 additions and 21 deletions

View File

@ -412,12 +412,6 @@ EXEC SQL DISCONNECT <optional><replaceable>connection</replaceable></optional>;
</simpara>
</listitem>
<listitem>
<simpara>
<literal>DEFAULT</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<literal>CURRENT</literal>
@ -7130,7 +7124,6 @@ EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
<synopsis>
DISCONNECT <replaceable class="parameter">connection_name</replaceable>
DISCONNECT [ CURRENT ]
DISCONNECT DEFAULT
DISCONNECT ALL
</synopsis>
</refsynopsisdiv>
@ -7171,15 +7164,6 @@ DISCONNECT ALL
</listitem>
</varlistentry>
<varlistentry id="ecpg-sql-disconnect-default">
<term><literal>DEFAULT</literal></term>
<listitem>
<para>
Close the default connection.
</para>
</listitem>
</varlistentry>
<varlistentry id="ecpg-sql-disconnect-all">
<term><literal>ALL</literal></term>
<listitem>
@ -7198,13 +7182,11 @@ DISCONNECT ALL
int
main(void)
{
EXEC SQL CONNECT TO testdb AS DEFAULT USER testuser;
EXEC SQL CONNECT TO testdb AS con1 USER testuser;
EXEC SQL CONNECT TO testdb AS con2 USER testuser;
EXEC SQL CONNECT TO testdb AS con3 USER testuser;
EXEC SQL DISCONNECT CURRENT; /* close con3 */
EXEC SQL DISCONNECT DEFAULT; /* close DEFAULT */
EXEC SQL DISCONNECT ALL; /* close con2 and con1 */
return 0;
@ -7772,11 +7754,11 @@ SET CONNECTION [ TO | = ] <replaceable class="parameter">connection_name</replac
</listitem>
</varlistentry>
<varlistentry id="ecpg-sql-set-connection-default">
<term><literal>DEFAULT</literal></term>
<varlistentry id="ecpg-sql-set-connection-current">
<term><literal>CURRENT</literal></term>
<listitem>
<para>
Set the connection to the default connection.
Set the connection to the current connection (thus, nothing happens).
</para>
</listitem>
</varlistentry>