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:51 +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 25c62d7636755954f507d44b2a5664ca313dc17a..dd576c275e8f42efbbd61f67c12e9094a63cea5a 100644 (file)
@@ -412,12 +412,6 @@ EXEC SQL DISCONNECT connection;
      
     
 
-    
-     
-      DEFAULT
-     
-    
-
     
      
       CURRENT
@@ -7130,7 +7124,6 @@ EXEC SQL DEALLOCATE DESCRIPTOR mydesc;
 
 DISCONNECT connection_name
 DISCONNECT [ CURRENT ]
-DISCONNECT DEFAULT
 DISCONNECT ALL
 
    
@@ -7171,15 +7164,6 @@ DISCONNECT ALL
       
      
 
-     
-      DEFAULT
-      
-       
-        Close the default connection.
-       
-      
-     
-
      
       ALL
       
@@ -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 | = ] connection_name
       
      
 
-     default">
-      DEFAULT
+     current">
+      CURRENT
       
        
-        Set the connection to the default connection.
+        Set the connection to the current connection (thus, nothing happens).