# Deprecated API

## Contents

- Interfaces
- Classes
- Fields
- Methods
- Constructors
- Enum Constants

Deprecated Interfaces
Interface
Description
org.postgresql.PGRefCursorResultSet
As of 8.0, this interface is only present for backwards- compatibility purposes. New code should call getString() on the ResultSet that contains the refcursor to obtain the underlying cursor name.

Deprecated Classes
Class
Description
org.postgresql.ds.PGPoolingDataSource
Since 42.0.0, instead of this class you should use a fully featured connection pool like HikariCP, vibur-dbcp, commons-dbcp, c3p0, etc.
org.postgresql.fastpath.Fastpath
This API is somewhat obsolete, as one may achieve similar performance and greater functionality by setting up a prepared statement to define the function call. Then, executing the statement with binary transmission of parameters and results substitutes for a fast-path function call.
org.postgresql.fastpath.FastpathArg
This API is somewhat obsolete, as one may achieve similar performance and greater functionality by setting up a prepared statement to define the function call. Then, executing the statement with binary transmission of parameters and results substitutes for a fast-path function call.
org.postgresql.jdbc.EscapedFunctions
see `EscapedFunctions2`
org.postgresql.jdbc2.optional.ConnectionPool
Please use `PGConnectionPoolDataSource`
org.postgresql.jdbc2.optional.PoolingDataSource
Since 42.0.0, see `PGPoolingDataSource`
org.postgresql.jdbc2.optional.SimpleDataSource
Please use `PGSimpleDataSource`
org.postgresql.jdbc3.Jdbc3ConnectionPool
Please use `PGConnectionPoolDataSource`
org.postgresql.jdbc3.Jdbc3PoolingDataSource
Since 42.0.0, see `PGPoolingDataSource`
org.postgresql.jdbc3.Jdbc3SimpleDataSource
Please use `PGSimpleDataSource`
org.postgresql.ssl.jdbc4.LibPQFactory
prefer `LibPQFactory`

Deprecated Fields
Field
Description
org.postgresql.core.QueryExecutor.QUERY_DISALLOW_BATCHING
in PgJDBC 9.4 as we now auto-size batches.

Deprecated Methods
Method
Description
org.postgresql.core.BaseConnection.getTimestampUtils()
org.postgresql.core.QueryExecutor.createFastpathParameters(int)
This API is somewhat obsolete, as one may achieve similar performance and greater functionality by setting up a prepared statement to define the function call. Then, executing the statement with binary transmission of parameters and results substitutes for a fast-path function call.
org.postgresql.core.QueryExecutor.fastpathCall(int, ParameterList, boolean)
This API is somewhat obsolete, as one may achieve similar performance and greater functionality by setting up a prepared statement to define the function call. Then, executing the statement with binary transmission of parameters and results substitutes for a fast-path function call.
org.postgresql.core.QueryExecutor.getBinaryReceiveOids()
the method returns a copy of the set, so it is not efficient. Use `TypeTransferModeRegistry.useBinaryForReceive(int)`
org.postgresql.core.QueryExecutor.getBinarySendOids()
the method returns a copy of the set, so it is not efficient. Use `TypeTransferModeRegistry.useBinaryForSend(int)`
org.postgresql.core.Utils.parseServerVersionStr(String)
use specific `Version` instance
org.postgresql.Driver.getVersion()
use `Driver.getMajorVersion()` and `Driver.getMinorVersion()` instead
org.postgresql.ds.common.BaseDataSource.getLoggerFile()
Configure via java.util.logging
org.postgresql.ds.common.BaseDataSource.getLoggerLevel()
Configure via java.util.logging
org.postgresql.ds.common.BaseDataSource.getPortNumber()
use `BaseDataSource.getPortNumbers()`
org.postgresql.ds.common.BaseDataSource.getServerName()
use `BaseDataSource.getServerNames()`
org.postgresql.ds.common.BaseDataSource.setLoggerFile(String)
Configure via java.util.logging
org.postgresql.ds.common.BaseDataSource.setLoggerLevel(String)
Configure via java.util.logging
org.postgresql.ds.common.BaseDataSource.setPortNumber(int)
use `BaseDataSource.setPortNumbers(int[])`
org.postgresql.ds.common.BaseDataSource.setServerName(String)
use `BaseDataSource.setServerNames(String[])`
org.postgresql.fastpath.Fastpath.fastpath(int, boolean, FastpathArg[])
please use `Fastpath.fastpath(int, FastpathArg[])`
org.postgresql.fastpath.Fastpath.fastpath(String, boolean, FastpathArg[])
Use `Fastpath.getData(String, FastpathArg[])` if you expect a binary result, or one of `Fastpath.getInteger(String, FastpathArg[])` or `Fastpath.getLong(String, FastpathArg[])` if you expect a numeric one
org.postgresql.jdbc.PgConnection.getTimestampUtils()
org.postgresql.jdbc.TimestampUtils.toOffsetDateTime(Time)
was used internally, and not used anymore
org.postgresql.largeobject.LargeObject.getOID()
As of 8.3, replaced by `LargeObject.getLongOID()`
org.postgresql.largeobject.LargeObjectManager.create()
As of 8.3, replaced by `LargeObjectManager.createLO()`
org.postgresql.largeobject.LargeObjectManager.create(int)
As of 8.3, replaced by `LargeObjectManager.createLO(int)`
org.postgresql.largeobject.LargeObjectManager.delete(int)
As of 8.3, replaced by `LargeObjectManager.delete(long)`
org.postgresql.largeobject.LargeObjectManager.open(int)
As of 8.3, replaced by `LargeObjectManager.open(long)`
org.postgresql.largeobject.LargeObjectManager.open(int, int)
As of 8.3, replaced by `LargeObjectManager.open(long, int)`
org.postgresql.largeobject.LargeObjectManager.unlink(int)
As of 8.3, replaced by `LargeObjectManager.unlink(long)`
org.postgresql.PGConnection.addDataType(String, String)
As of 8.0, replaced by `PGConnection.addDataType(String, Class)`. This deprecated method does not work correctly for registering classes that cannot be directly loaded by the JDBC driver's classloader.
org.postgresql.PGConnection.getFastpathAPI()
This API is somewhat obsolete, as one may achieve similar performance and greater functionality by setting up a prepared statement to define the function call. Then, executing the statement with binary transmission of parameters and results substitutes for a fast-path function call.
org.postgresql.PGProperty.get(Properties)
use `PGProperty.getOrDefault(Properties)` instead
org.postgresql.PGRefCursorResultSet.getRefCursor()
As of 8.0, replaced with calling getString() on the ResultSet that this ResultSet was obtained from.
org.postgresql.PGStatement.setUseServerPrepare(boolean)
As of build 302, replaced by `PGStatement.setPrepareThreshold(int)`
org.postgresql.ssl.jdbc4.LibPQFactory.verify(String, SSLSession)
use PgjdbcHostnameVerifier
org.postgresql.ssl.jdbc4.LibPQFactory.verifyHostName(String, String)
use `PGjdbcHostnameVerifier`

Deprecated Constructors
Constructor
Description
org.postgresql.core.PGStream(SocketFactory, HostSpec)
use `PGStream(SocketFactory, org.postgresql.util.HostSpec, int)`
org.postgresql.ssl.jdbc4.LibPQFactory(Properties)
prefer `LibPQFactory`

Deprecated Enum Constants
Enum Constant
Description
org.postgresql.hostchooser.HostRequirement.master
we no longer use the terms master or slave in the driver, or the PostgreSQL project.
org.postgresql.PGProperty.LOGGER_FILE
Logging is configured via java.util.logging.
org.postgresql.PGProperty.LOGGER_LEVEL
Logging is configured via java.util.logging.
org.postgresql.PGProperty.SOCKET_FACTORY_ARG
use `..Factory(Properties)` constructor.
org.postgresql.PGProperty.SSL_FACTORY_ARG
use `..Factory(Properties)` constructor.