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 22cd565e5fbd01544dce7ba9a7b6ac4f042416e6..33f5e82815461ea221801360adc09434e18d0aee 100644 (file)
@@ -343,12 +343,6 @@ EXEC SQL DISCONNECT connection;
      
     
 
-    
-     
-      DEFAULT
-     
-    
-
     
      
       CURRENT
@@ -6927,7 +6921,6 @@ EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
 
 DISCONNECT connection_name
 DISCONNECT [ CURRENT ]
-DISCONNECT DEFAULT
 DISCONNECT ALL
 
    
@@ -6968,15 +6961,6 @@ DISCONNECT ALL
       
      
 
-     
-      DEFAULT
-      
-       
-        Close the default connection.
-       
-      
-     
-
      
       ALL
       
@@ -6995,13 +6979,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;
@@ -7521,10 +7503,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).