# 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.QueryExecutorBase.sendCloseMessage()
  use `QueryExecutorBase.getCloseAction()` instead
  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.geometric.PGpoint.setLocation(Point)
  Will be removed for avoiding a dependency to the `java.desktop` module.
  org.postgresql.jdbc.PgConnection.getTimestampUtils()
  org.postgresql.jdbc.TimestampUtils.toDate(Calendar, String)
  org.postgresql.jdbc.TimestampUtils.toLocalDateTime(String)
  use `TimestampUtils.toLocalDateTime(byte[])`
  org.postgresql.jdbc.TimestampUtils.toOffsetDateTime(String)
  use `TimestampUtils.toOffsetDateTimeBin(byte[])`
  org.postgresql.jdbc.TimestampUtils.toOffsetDateTime(Time)
  was used internally, and not used anymore
  org.postgresql.jdbc.TimestampUtils.toOffsetTime(String)
  in use `TimestampUtils.toOffsetTime(byte[])` instead
  org.postgresql.jdbc.TimestampUtils.toTime(Calendar, String)
  org.postgresql.jdbc.TimestampUtils.toTimestamp(Calendar, String)
  use `TimestampUtils.toTimestamp(Calendar, byte[])`
  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`
  org.postgresql.util.PasswordUtil.encodeMd5(String, char[])
  prefer `PGConnection.alterUserPassword(String, char[], String)` or `PasswordUtil.encodeScramSha256(char[])` for better security.

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

- Deprecated Enum Constants
  Enum Constant
  Description
  org.postgresql.core.ServerVersion.v8_2
  org.postgresql.core.ServerVersion.v8_3
  org.postgresql.core.ServerVersion.v8_4
  org.postgresql.core.ServerVersion.v9_0
  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.SSL_FACTORY_ARG
  use `..Factory(Properties)` constructor.