com.foundationdb.sql.jdbc

## Interface PGConnection

    public interface PGConnection

This interface defines the public PostgreSQL extensions to java.sql.Connection. All Connections returned by the PostgreSQL driver implement PGConnection.

### Method Summary

Methods
`void` `addDataType(java.lang.String type, java.lang.Class klass)` This allows client code to add a handler for one of org.postgresql's more unique data types.
`void` `addDataType(java.lang.String type, java.lang.String name)` Deprecated. As of 8.0, replaced by `addDataType(String,Class)`. This deprecated method does not work correctly for registering classes that cannot be directly loaded by the JDBC driver's classloader.
`int` `getBackendPID()` Return the process ID (PID) of the backend server process handling this connection.
`CopyManager` `getCopyAPI()` This returns the COPY API for the current connection.
`Fastpath` `getFastpathAPI()` This returns the Fastpath API for the current connection.
`LargeObjectManager` `getLargeObjectAPI()` This returns the LargeObject API for the current connection.
`PGNotification[]` `getNotifications()` This method returns any notifications that have been received since the last call to this method.
`int` `getPrepareThreshold()` Get the default server-side prepare reuse threshold for statements created from this connection.
`void` `setPrepareThreshold(int threshold)` Set the default statement reuse threshold before enabling server-side prepare.

### Method Detail

#### getNotifications

    PGNotification[] getNotifications()
                                      throws java.sql.SQLException

This method returns any notifications that have been received since the last call to this method. Returns null if there have been no notifications.

Throws:
  `java.sql.SQLException`
Since:
  7.3

#### getCopyAPI

    CopyManager getCopyAPI()
                           throws java.sql.SQLException

This returns the COPY API for the current connection.

Throws:
  `java.sql.SQLException`
Since:
  8.4

#### getLargeObjectAPI

    LargeObjectManager getLargeObjectAPI()
                                         throws java.sql.SQLException

This returns the LargeObject API for the current connection.

Throws:
  `java.sql.SQLException`
Since:
  7.3

#### getFastpathAPI

    Fastpath getFastpathAPI()
                            throws java.sql.SQLException

This returns the Fastpath API for the current connection.

Throws:
  `java.sql.SQLException`
Since:
  7.3

#### addDataType

    void addDataType(java.lang.String type,
                   java.lang.String name)

Deprecated. As of 8.0, replaced by `addDataType(String,Class)`. This deprecated method does not work correctly for registering classes that cannot be directly loaded by the JDBC driver's classloader.
This allows client code to add a handler for one of org.postgresql's more unique data types. It is approximately equivalent to `addDataType(type, Class.forName(name))`.

Throws:
  `java.lang.RuntimeException` - if the type cannot be registered (class not found, etc).

#### addDataType

    void addDataType(java.lang.String type,
                   java.lang.Class klass)
                     throws java.sql.SQLException

This allows client code to add a handler for one of org.postgresql's more unique data types.

NOTE: This is not part of JDBC, but an extension.

The best way to use this is as follows:

     ...
     ((org.postgresql.PGConnection)myconn).addDataType("mytype", my.class.name.class);
     ...

where myconn is an open Connection to org.postgresql.

The handling class must extend org.postgresql.util.PGobject

Parameters:
  `type` - the PostgreSQL type to register
  `klass` - the class implementing the Java representation of the type; this class must implement `PGobject`).
Throws:
  `java.sql.SQLException` - if `klass` does not implement `PGobject`).
Since:
  8.0
See Also:
  `PGobject`

#### setPrepareThreshold

    void setPrepareThreshold(int threshold)

Set the default statement reuse threshold before enabling server-side prepare. See `PGStatement.setPrepareThreshold(int)` for details.

Parameters:
  `threshold` - the new threshold
Since:
  build 302

#### getPrepareThreshold

    int getPrepareThreshold()

Get the default server-side prepare reuse threshold for statements created from this connection.

Returns:
  the current threshold
Since:
  build 302

#### getBackendPID

    int getBackendPID()

Return the process ID (PID) of the backend server process handling this connection.

Returns:
  PID of backned server process.