Doc: remove misleading info about ecpg's CONNECT/DISCONNECT DEFAULT.
authorTom Lane
Wed, 25 Oct 2023 21:34:47 +0000 (17:34 -0400)
committerTom Lane
Wed, 25 Oct 2023 21:34:47 +0000 (17:34 -0400)
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

doc/src/sgml/ecpg.sgml

index bb81b03287c100ca9475039917137607b3a8ad47..e406868db27075eb212d16d1c7bbfb2642c41401 100644 (file)
@@ -412,12 +412,6 @@ EXEC SQL DISCONNECT connection;
      
     
 
-    
-     
-      DEFAULT
-     
-    
-
     
      
       CURRENT
@@ -7091,7 +7085,6 @@ EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
 
 DISCONNECT connection_name
 DISCONNECT [ CURRENT ]
-DISCONNECT DEFAULT
 DISCONNECT ALL
 
    
@@ -7132,15 +7125,6 @@ DISCONNECT ALL
       
      
 
-     
-      DEFAULT
-      
-       
-        Close the default connection.
-       
-      
-     
-
      
       ALL
       
@@ -7159,13 +7143,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;
@@ -7734,10 +7716,10 @@ SET CONNECTION [ TO | = ] connection_name
      
 
      
-      DEFAULT
+      CURRENT
       
        
-        Set the connection to the default connection.
+        Set the connection to the current connection (thus, nothing happens).