CONNECT — establish a database connection
CONNECT TOconnection_target
[ ASconnection_name
] [ USERconnection_user
] CONNECT TO DEFAULT CONNECTconnection_user
DATABASEconnection_target
The CONNECT
command establishes a connection
between the client and the LightDB server.
connection_target
connection_target
specifies the target server of the connection on one of
several forms.
database_name
] [ @
host
] [ :
port
]Connect over TCP/IP
unix:postgresql://
host
[ :
port
] /
[ database_name
] [ ?
connection_option
]Connect over Unix-domain sockets
tcp:postgresql://
host
[ :
port
] /
[ database_name
] [ ?
connection_option
]Connect over TCP/IP
containing a value in one of the above forms
host variable of type char[]
or VARCHAR[]
containing a value in one of the
above forms
connection_name
An optional identifier for the connection, so that it can be referred to in other commands. This can be an SQL identifier or a host variable.
connection_user
The user name for the database connection.
This parameter can also specify user name and password, using one the forms
,
user_name
/password
,
user_name
/password
@database_name
, or
user_name
IDENTIFIED BY password
.
user_name
USING password
User name and password can be SQL identifiers, string constants, or host variables.
The first /
in the
string variable is the separator between the username and password.
The username and password strings can contain spaces.
user_name
/password
in the string variable,
the first user_name
/password
@database_name
/
is the separator between the username and password,
and the first @
after the separator is the separator between the password and the database name.
The username, password, and database name strings can contain spaces.
DEFAULT
Use all default connection parameters, as defined by libpq.
Here a several variants for specifying connection parameters:
EXEC SQL CONNECT TO "connectdb" AS main; EXEC SQL CONNECT TO "connectdb" AS second; EXEC SQL CONNECT TO "unix:postgresql://200.46.204.71/connectdb" AS main USER connectuser; EXEC SQL CONNECT TO "unix:postgresql://localhost/connectdb" AS main USER connectuser; EXEC SQL CONNECT TO 'connectdb' AS main; EXEC SQL CONNECT TO 'unix:postgresql://localhost/connectdb' AS main USER :user; EXEC SQL CONNECT TO :db AS :id; EXEC SQL CONNECT TO :db USER connectuser USING :pw; EXEC SQL CONNECT TO @localhost AS main USER connectdb; EXEC SQL CONNECT TO REGRESSDB1 as main; EXEC SQL CONNECT TO AS main USER connectdb; EXEC SQL CONNECT TO connectdb AS :id; EXEC SQL CONNECT TO connectdb AS main USER connectuser/connectdb; EXEC SQL CONNECT TO connectdb AS main; EXEC SQL CONNECT TO connectdb@localhost AS main; EXEC SQL CONNECT TO tcp:postgresql://localhost/ USER connectdb; EXEC SQL CONNECT TO tcp:postgresql://localhost/connectdb USER connectuser IDENTIFIED BY connectpw; EXEC SQL CONNECT TO tcp:postgresql://localhost:20/connectdb USER connectuser IDENTIFIED BY connectpw; EXEC SQL CONNECT TO unix:postgresql://localhost/ AS main USER connectdb; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb AS main USER connectuser; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb USER connectuser IDENTIFIED BY "connectpw"; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb USER connectuser USING "connectpw"; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb?connect_timeout=14 USER connectuser;
Here is an example program that illustrates the use of host variables to specify connection parameters:
int main(void) { EXEC SQL BEGIN DECLARE SECTION; char *dbname = "testdb"; /* database name */ char *user = "testuser"; /* connection user name */ char *connection = "tcp:postgresql://localhost:5432/testdb"; /* connection string */ char *userpassowrd = "testuser/testuser"; /* user name/password */ char *userpassowrddbname = "testuser/testuser@testuser"; /* user name/password@database name */ char ver[256]; /* buffer to store the version string */ EXEC SQL END DECLARE SECTION; ECPGdebug(1, stderr); EXEC SQL CONNECT TO :dbname USER :user; EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT version() INTO :ver; EXEC SQL DISCONNECT; printf("version: %s\n", ver); EXEC SQL CONNECT TO :connection USER :user; EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT version() INTO :ver; EXEC SQL DISCONNECT; printf("version: %s\n", ver); EXEC SQL CONNECT :userpassowrd; EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT version() INTO :ver; EXEC SQL DISCONNECT; printf("version: %s\n", ver); EXEC SQL CONNECT :userpassowrddbname; EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT version() INTO :ver; EXEC SQL DISCONNECT; printf("version: %s\n", ver); return 0; }
CONNECT
is specified in the SQL standard, but
the format of the connection parameters is
implementation-specific.