1 /*------------------------------------------------------------------------- 2 * 3 * Facilities for frontend code to connect to and disconnect from databases. 4 * 5 * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group 6 * Portions Copyright (c) 1994, Regents of the University of California 7 * 8 * src/include/fe_utils/connect_utils.h 9 * 10 *------------------------------------------------------------------------- 11 */ 12 #ifndef CONNECT_UTILS_H 13 #define CONNECT_UTILS_H 14 15 #include "libpq-fe.h" 16 17 enum trivalue 18 { 19 TRI_DEFAULT, 20 TRI_NO, 21 TRI_YES 22 }; 23 24 /* Parameters needed by connectDatabase/connectMaintenanceDatabase */ 25 typedef struct _connParams 26 { 27 /* These fields record the actual command line parameters */ 28 const char *dbname; /* this may be a connstring! */ 29 const char *pghost; 30 const char *pgport; 31 const char *pguser; 32 enum trivalue prompt_password; 33 /* If not NULL, this overrides the dbname obtained from command line */ 34 /* (but *only* the DB name, not anything else in the connstring) */ 35 const char *override_dbname; 36 } ConnParams; 37 38 extern PGconn *connectDatabase(const ConnParams *cparams, 39 const char *progname, 40 bool echo, bool fail_ok, 41 bool allow_password_reuse); 42 43 extern PGconn *connectMaintenanceDatabase(ConnParams *cparams, 44 const char *progname, bool echo); 45 46 extern void disconnectDatabase(PGconn *conn); 47 48 #endif /* CONNECT_UTILS_H */ 49