Package org.postgresql

# Enum PGProperty

java.lang.Object
java.lang.Enum<PGProperty>
org.postgresql.PGProperty

All Implemented Interfaces:
  `Serializable`, `Comparable<PGProperty>`, `java.lang.constant.Constable`

public enum PGProperty extends Enum<PGProperty>
All connection parameters that can be either set in JDBC URL, in Driver properties or in datasource setters.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `ADAPTIVE_FETCH`
  Specifies if number of rows, used during fetching rows of a result set, should be computed dynamically.
  `ADAPTIVE_FETCH_MAXIMUM`
  Specifies the highest number of rows which can be calculated by adaptiveFetch.
  `ADAPTIVE_FETCH_MINIMUM`
  Specifies the lowest number of rows which can be calculated by adaptiveFetch.
  `ALLOW_ENCODING_CHANGES`
  When using the V3 protocol the driver monitors changes in certain server configuration parameters that should not be touched by end users.
  `APPLICATION_NAME`
  The application name (require server version >= 9.0).
  `ASSUME_MIN_SERVER_VERSION`
  Assume the server is at least that version.
  `AUTHENTICATION_PLUGIN_CLASS_NAME`
  AuthenticationPluginClass
  `AUTOSAVE`
  Specifies what the driver should do if a query fails.
  `BINARY_TRANSFER`
  Use binary format for sending and receiving data if possible.
  `BINARY_TRANSFER_DISABLE`
  Comma separated list of types to disable binary transfer.
  `BINARY_TRANSFER_ENABLE`
  Comma separated list of types to enable binary transfer.
  `CANCEL_SIGNAL_TIMEOUT`
  Cancel command is sent out of band over its own connection, so cancel message can itself get stuck.
  `CHANNEL_BINDING`
  Channel binding is a method for the server to authenticate itself to the client.
  `CLEANUP_SAVEPOINTS`
  Determine whether SAVEPOINTS used in AUTOSAVE will be released per query or not
  `CONNECT_TIMEOUT`
  The timeout value used for socket connect operations.
  `CONVERT_BOOLEAN_TO_NUMERIC`
  Enable automatic conversion of PostgreSQL boolean values ('t'/'f') to numeric types (1/0).
  `CURRENT_SCHEMA`
  Specify the schema (or several schema separated by commas) to be set in the search-path.
  `DATABASE_METADATA_CACHE_FIELDS`
  Specifies the maximum number of fields to be cached per connection.
  `DATABASE_METADATA_CACHE_FIELDS_MIB`
  Specifies the maximum size (in megabytes) of fields to be cached per connection.
  `DEFAULT_ROW_FETCH_SIZE`
  Default parameter for `Statement.getFetchSize()`.
  `DISABLE_COLUMN_SANITISER`
  Enable optimization that disables column name sanitiser.
  `ESCAPE_SYNTAX_CALL_MODE`
  Specifies how the driver transforms JDBC escape call syntax into underlying SQL, for invoking procedures or functions.
  `GROUP_STARTUP_PARAMETERS`
  Deprecated.
  since we can send the startup parameters as a multistatment transaction
  `GSS_ENC_MODE`
  `GSS_LIB`
  Force one of SSPI (Windows transparent single-sign-on) GSSAPI (Kerberos, via JSSE) to be used when the server requests Kerberos or SSPI authentication.
  `GSS_RESPONSE_TIMEOUT`
  After requesting an upgrade to SSL from the server there are reports of the server not responding due to a failover without a timeout here, the client can wait forever.
  `GSS_USE_DEFAULT_CREDS`
  Flag to enable/disable the obtaining the default GSS credentials from a pre-existing ccache, rather than using JAAS.
  `HIDE_UNPRIVILEGED_OBJECTS`
  Enable mode to filter out the names of database objects for which the current user has no privileges granted from appearing in the DatabaseMetaData returned by the driver.
  `HOST_RECHECK_SECONDS`
  `JAAS_APPLICATION_NAME`
  Specifies the name of the JAAS system or application login configuration.
  `JAAS_LOGIN`
  Flag to enable/disable obtaining a GSS credential via JAAS login before authenticating.
  `KERBEROS_SERVER_NAME`
  The Kerberos service name to use when authenticating with GSSAPI.
  `LOAD_BALANCE_HOSTS`
  `LOCAL_SOCKET_ADDRESS`
  If this is set then the client side will bind to this address.
  `LOG_SERVER_ERROR_DETAIL`
  Whether to include full server error detail in exception messages.
  `LOG_UNCLOSED_CONNECTIONS`
  When connections that are not explicitly closed are garbage collected, log the stacktrace from the opening of the connection to trace the leak source.
  `LOGGER_FILE`
  Deprecated.
  Logging is configured via java.util.logging.
  `LOGGER_LEVEL`
  Deprecated.
  Logging is configured via java.util.logging.
  `LOGIN_TIMEOUT`
  Specify how long to wait for establishment of a database connection.
  `MAX_RESULT_BUFFER`
  Specifies size of buffer during fetching result set.
  `MAX_SEND_BUFFER_SIZE`
  Maximum amount of bytes buffered before sending to the backend, default is 8192.
  `OPTIONS`
  Specify 'options' connection initialization parameter.
  `PASSWORD`
  Password to use when authenticating.
  `PG_DBNAME`
  Database name to connect to (may be specified directly in the JDBC URL).
  `PG_HOST`
  Hostname of the PostgreSQL server (may be specified directly in the JDBC URL).
  `PG_PORT`
  Port of the PostgreSQL server (may be specified directly in the JDBC URL).
  `PREFER_QUERY_MODE`
  Specifies which mode is used to execute queries to database: simple means ('Q' execute, no parse, no bind, text mode only), extended means always use bind/execute messages, extendedForPrepared means extended for prepared statements only, extendedCacheEverything means use extended protocol and try cache every statement (including Statement.execute(String sql)) in a query cache.
  `PREPARE_THRESHOLD`
  Sets the default threshold for enabling server-side prepare.
  `PREPARED_STATEMENT_CACHE_QUERIES`
  Specifies the maximum number of entries in cache of prepared statements.
  `PREPARED_STATEMENT_CACHE_SIZE_MIB`
  Specifies the maximum size (in megabytes) of the prepared statement cache.
  `PROTOCOL_VERSION`
  Force use of a particular protocol version when connecting, if set, disables protocol version fallback.
  `QUOTE_RETURNING_IDENTIFIERS`
  Quote returning columns.
  `READ_ONLY`
  Puts this connection in read-only mode.
  `READ_ONLY_MODE`
  Connection parameter to control behavior when `Connection.setReadOnly(boolean)` is set to `true`.
  `RECEIVE_BUFFER_SIZE`
  Socket read buffer size (SO_RECVBUF).
  `REPLICATION`
  Connection parameter passed in the startup message.
  `REWRITE_BATCHED_INSERTS`
  Configure optimization to enable batch insert re-writing.
  `SEND_BUFFER_SIZE`
  Socket write buffer size (SO_SNDBUF).
  `SERVICE`
  Service name to use for additional parameters.
  `SOCKET_FACTORY`
  Socket factory used to create socket.
  `SOCKET_FACTORY_ARG`
  The String argument to give to the constructor of the Socket Factory.
  `SOCKET_TIMEOUT`
  The timeout value used for socket read operations.
  `SSL`
  Control use of SSL: empty or `true` values imply `sslmode==verify-full`
  `SSL_CERT`
  File containing the SSL Certificate.
  `SSL_FACTORY`
  Classname of the SSL Factory to use (instance of `SSLSocketFactory`).
  `SSL_FACTORY_ARG`
  The String argument to give to the constructor of the SSL Factory.
  `SSL_HOSTNAME_VERIFIER`
  Classname of the SSL HostnameVerifier to use (instance of `HostnameVerifier`).
  `SSL_KEY`
  File containing the SSL Key.
  `SSL_MODE`
  Parameter governing the use of SSL.
  `SSL_NEGOTIATION`
  Normally a GSS connection is attempted first.
  `SSL_PASSWORD`
  The SSL password to use in the default CallbackHandler.
  `SSL_PASSWORD_CALLBACK`
  The classname instantiating `CallbackHandler` to use.
  `SSL_RESPONSE_TIMEOUT`
  After requesting an upgrade to SSL from the server there are reports of the server not responding due to a failover without a timeout here, the client can wait forever.
  `SSL_ROOT_CERT`
  File containing the root certificate when validating server (`sslmode` = `verify-ca` or `verify-full`).
  `SSPI_SERVICE_CLASS`
  Specifies the name of the SSPI service class that forms the service class part of the SPN.
  `STRING_TYPE`
  Bind String to either `unspecified` or `varchar`.
  `TARGET_SERVER_TYPE`
  `TCP_KEEP_ALIVE`
  Enable or disable TCP keep-alive.
  `TCP_NO_DELAY`
  `UNKNOWN_LENGTH`
  Specifies the length to return for types of unknown length.
  `USE_SPNEGO`
  Use SPNEGO in SSPI authentication requests.
  `USER`
  Username to connect to the database as.
  `XML_FACTORY_FACTORY`
  Factory class to instantiate factories for XML processing.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static @Nullable PGProperty`
  `forName(String name)`
  `@Nullable String`
  `get(Properties properties)`
  Deprecated.
  use `getOrDefault(Properties)` instead
  `boolean`
  `getBoolean(Properties properties)`
  Return the boolean value for this connection parameter in the given `Properties`.
  `String @Nullable []`
  `getChoices()`
  Returns the available values for this connection parameter.
  `@Nullable String`
  `getDefaultValue()`
  Returns the default value for this connection parameter.
  `String`
  `getDescription()`
  Returns the description for this connection parameter.
  `int`
  `getInt(Properties properties)`
  Return the int value for this connection parameter in the given `Properties`.
  `@Nullable Integer`
  `getInteger(Properties properties)`
  Return the `Integer` value for this connection parameter in the given `Properties`.
  `int`
  `getIntNoCheck(Properties properties)`
  Return the int value for this connection parameter in the given `Properties`.
  `String`
  `getName()`
  Returns the name of the connection parameter.
  `@Nullable String`
  `getOrDefault(Properties properties)`
  Returns the value of the connection parameter from the given `Properties` or the default value.
  `@Nullable String`
  `getOrNull(Properties properties)`
  Returns the value of the connection parameter from the given `Properties` or null if there is no default value
  `@Nullable String`
  `getSetString(Properties properties)`
  Return the property if exists but avoiding the default.
  `boolean`
  `isPresent(Properties properties)`
  Test whether this property is present in the given `Properties`.
  `boolean`
  `isRequired()`
  Returns whether this parameter is required.
  `void`
  `set(Properties properties, boolean value)`
  Set the boolean value for this connection parameter in the given `Properties`.
  `void`
  `set(Properties properties, int value)`
  Set the int value for this connection parameter in the given `Properties`.
  `void`
  `set(Properties properties, @Nullable String value)`
  Set the value for this connection parameter in the given `Properties`.
  `DriverPropertyInfo`
  `toDriverPropertyInfo(Properties properties)`
  Convert this connection parameter and the value read from the given `Properties` into a `DriverPropertyInfo`.
  `static PGProperty`
  `valueOf(String name)`
  Returns the enum constant of this type with the specified name.
  `static PGProperty[]`
  `values()`
  Returns an array containing the constants of this enum type, in the order they are declared.

  ### Methods inherited from class java.lang.Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

  ### Methods inherited from class java.lang.Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### ADAPTIVE_FETCH

    public static final PGProperty ADAPTIVE_FETCH
    Specifies if number of rows, used during fetching rows of a result set, should be computed dynamically. Number of rows will be calculated by dividing maxResultBuffer size by max row size observed so far, rounded down. First fetch will have number of rows declared in defaultRowFetchSize. Number of rows can be limited by adaptiveFetchMinimum and adaptiveFetchMaximum. Requires declaring of maxResultBuffer and defaultRowFetchSize to work. Default value is false.

  - ### ADAPTIVE_FETCH_MAXIMUM

    public static final PGProperty ADAPTIVE_FETCH_MAXIMUM
    Specifies the highest number of rows which can be calculated by adaptiveFetch. Requires adaptiveFetch set to true to work. Default value is -1 (used as infinity).

  - ### ADAPTIVE_FETCH_MINIMUM

    public static final PGProperty ADAPTIVE_FETCH_MINIMUM
    Specifies the lowest number of rows which can be calculated by adaptiveFetch. Requires adaptiveFetch set to true to work. Default value is 0.

  - ### ALLOW_ENCODING_CHANGES

    public static final PGProperty ALLOW_ENCODING_CHANGES
    When using the V3 protocol the driver monitors changes in certain server configuration parameters that should not be touched by end users. The `client_encoding` setting is set by the driver and should not be altered. If the driver detects a change it will abort the connection.

  - ### APPLICATION_NAME

    public static final PGProperty APPLICATION_NAME
    The application name (require server version >= 9.0).

  - ### ASSUME_MIN_SERVER_VERSION

    public static final PGProperty ASSUME_MIN_SERVER_VERSION
    Assume the server is at least that version.

  - ### AUTHENTICATION_PLUGIN_CLASS_NAME

    public static final PGProperty AUTHENTICATION_PLUGIN_CLASS_NAME
    AuthenticationPluginClass

  - ### AUTOSAVE

    public static final PGProperty AUTOSAVE
    Specifies what the driver should do if a query fails. In `autosave=always` mode, JDBC driver sets a savepoint before each query, and rolls back to that savepoint in case of failure. In `autosave=never` mode (default), no savepoint dance is made ever. In `autosave=conservative` mode, savepoint is set for each query, however the rollback is done only for rare cases like 'cached statement cannot change return type' or 'statement XXX is not valid' so JDBC driver rollsback and retries

  - ### BINARY_TRANSFER

    public static final PGProperty BINARY_TRANSFER
    Use binary format for sending and receiving data if possible.

  - ### BINARY_TRANSFER_DISABLE

    public static final PGProperty BINARY_TRANSFER_DISABLE
    Comma separated list of types to disable binary transfer. Either OID numbers or names. Overrides values in the driver default set and values set with binaryTransferEnable.

  - ### BINARY_TRANSFER_ENABLE

    public static final PGProperty BINARY_TRANSFER_ENABLE
    Comma separated list of types to enable binary transfer. Either OID numbers or names

  - ### CANCEL_SIGNAL_TIMEOUT

    public static final PGProperty CANCEL_SIGNAL_TIMEOUT
    Cancel command is sent out of band over its own connection, so cancel message can itself get stuck. This property controls "connect timeout" and "socket timeout" used for cancel commands. The timeout is specified in seconds. Default value is 10 seconds.

  - ### CHANNEL_BINDING

    public static final PGProperty CHANNEL_BINDING
    Channel binding is a method for the server to authenticate itself to the client. It is only supported over SSL connections with PostgreSQL 11 or later servers using the SCRAM authentication method.

  - ### CLEANUP_SAVEPOINTS

    public static final PGProperty CLEANUP_SAVEPOINTS
    Determine whether SAVEPOINTS used in AUTOSAVE will be released per query or not

  - ### CONNECT_TIMEOUT

    public static final PGProperty CONNECT_TIMEOUT
    The timeout value used for socket connect operations. If connecting to the server takes longer than this value, the connection is broken.

    The timeout is specified in seconds and a value of zero means that it is disabled.

  - ### CONVERT_BOOLEAN_TO_NUMERIC

    public static final PGProperty CONVERT_BOOLEAN_TO_NUMERIC
    Enable automatic conversion of PostgreSQL boolean values ('t'/'f') to numeric types (1/0). When enabled, calling numeric getters (getByte, getShort, getInt, getLong, getFloat, getDouble, getBigDecimal) on boolean columns will convert 't' to 1 and 'f' to 0 instead of throwing a conversion exception. Default is false to maintain backward compatibility.

  - ### CURRENT_SCHEMA

    public static final PGProperty CURRENT_SCHEMA
    Specify the schema (or several schema separated by commas) to be set in the search-path. This schema will be used to resolve unqualified object names used in statements over this connection.

  - ### DATABASE_METADATA_CACHE_FIELDS

    public static final PGProperty DATABASE_METADATA_CACHE_FIELDS
    Specifies the maximum number of fields to be cached per connection. A value of `0` disables the cache.

  - ### DATABASE_METADATA_CACHE_FIELDS_MIB

    public static final PGProperty DATABASE_METADATA_CACHE_FIELDS_MIB
    Specifies the maximum size (in megabytes) of fields to be cached per connection. A value of `0` disables the cache.

  - ### DEFAULT_ROW_FETCH_SIZE

    public static final PGProperty DEFAULT_ROW_FETCH_SIZE
    Default parameter for `Statement.getFetchSize()`. A value of `0` means that need fetch all rows at once

  - ### DISABLE_COLUMN_SANITISER

    public static final PGProperty DISABLE_COLUMN_SANITISER
    Enable optimization that disables column name sanitiser.

  - ### ESCAPE_SYNTAX_CALL_MODE

    public static final PGProperty ESCAPE_SYNTAX_CALL_MODE
    Specifies how the driver transforms JDBC escape call syntax into underlying SQL, for invoking procedures or functions. (backend >= 11) In `escapeSyntaxCallMode=select` mode (the default), the driver always uses a SELECT statement (allowing function invocation only). In `escapeSyntaxCallMode=callIfNoReturn` mode, the driver uses a CALL statement (allowing procedure invocation) if there is no return parameter specified, otherwise the driver uses a SELECT statement. In `escapeSyntaxCallMode=call` mode, the driver always uses a CALL statement (allowing procedure invocation only).

  - ### GROUP_STARTUP_PARAMETERS

    @Deprecated public static final PGProperty GROUP_STARTUP_PARAMETERS
    Deprecated.
    since we can send the startup parameters as a multistatment transaction
    Group startup parameters in a transaction This is important in pool-by-transaction scenarios in order to make sure that all the statements reaches the same connection that is being initialized. All of the startup parameters will be wrapped in a transaction Note this is off by default as pgbouncer in statement mode

  - ### GSS_ENC_MODE

    public static final PGProperty GSS_ENC_MODE

  - ### GSS_LIB

    public static final PGProperty GSS_LIB
    Force one of
    - SSPI (Windows transparent single-sign-on)
    - GSSAPI (Kerberos, via JSSE)
    to be used when the server requests Kerberos or SSPI authentication.

  - ### GSS_RESPONSE_TIMEOUT

    public static final PGProperty GSS_RESPONSE_TIMEOUT
    After requesting an upgrade to SSL from the server there are reports of the server not responding due to a failover without a timeout here, the client can wait forever. The pattern for requesting a GSS encrypted connection is the same so we provide the same timeout mechanism This timeout will be set before the request and reset after

  - ### GSS_USE_DEFAULT_CREDS

    public static final PGProperty GSS_USE_DEFAULT_CREDS
    Flag to enable/disable the obtaining the default GSS credentials from a pre-existing ccache, rather than using JAAS. This also allows GSS to work in environments where the default kerberos principal a user has is not user@DEFAULT_REALM, but some other user (this is valid, and often the case in more advanced Kerberos setups). Finally, this also means that if the "native" GSS implementation is used (i.e. the local system GSS libraries), all means of fetching the default credential are supported. Currently, JAAS is pure java on Linux, and does not support the use of KCM (and only supports file-based ccaches and keytabs).

  - ### HIDE_UNPRIVILEGED_OBJECTS

    public static final PGProperty HIDE_UNPRIVILEGED_OBJECTS
    Enable mode to filter out the names of database objects for which the current user has no privileges granted from appearing in the DatabaseMetaData returned by the driver.

  - ### HOST_RECHECK_SECONDS

    public static final PGProperty HOST_RECHECK_SECONDS

  - ### JAAS_APPLICATION_NAME

    public static final PGProperty JAAS_APPLICATION_NAME
    Specifies the name of the JAAS system or application login configuration.

  - ### JAAS_LOGIN

    public static final PGProperty JAAS_LOGIN
    Flag to enable/disable obtaining a GSS credential via JAAS login before authenticating. Useful if setting system property javax.security.auth.useSubjectCredsOnly=false or using native GSS with system property sun.security.jgss.native=true

  - ### KERBEROS_SERVER_NAME

    public static final PGProperty KERBEROS_SERVER_NAME
    The Kerberos service name to use when authenticating with GSSAPI. This is equivalent to libpq's PGKRBSRVNAME environment variable.

  - ### LOAD_BALANCE_HOSTS

    public static final PGProperty LOAD_BALANCE_HOSTS

  - ### LOCAL_SOCKET_ADDRESS

    public static final PGProperty LOCAL_SOCKET_ADDRESS
    If this is set then the client side will bind to this address. This is useful if you need to choose which interface to connect to.

  - ### LOGGER_FILE

    @Deprecated public static final PGProperty LOGGER_FILE
    Deprecated.
    Logging is configured via java.util.logging.
    This property is no longer used by the driver and will be ignored.

  - ### LOGGER_LEVEL

    @Deprecated public static final PGProperty LOGGER_LEVEL
    Deprecated.
    Logging is configured via java.util.logging.
    This property is no longer used by the driver and will be ignored.

  - ### LOGIN_TIMEOUT

    public static final PGProperty LOGIN_TIMEOUT
    Specify how long to wait for establishment of a database connection. The timeout is specified in seconds.

  - ### LOG_SERVER_ERROR_DETAIL

    public static final PGProperty LOG_SERVER_ERROR_DETAIL
    Whether to include full server error detail in exception messages.

  - ### LOG_UNCLOSED_CONNECTIONS

    public static final PGProperty LOG_UNCLOSED_CONNECTIONS
    When connections that are not explicitly closed are garbage collected, log the stacktrace from the opening of the connection to trace the leak source.

  - ### MAX_RESULT_BUFFER

    public static final PGProperty MAX_RESULT_BUFFER
    Specifies size of buffer during fetching result set. Can be specified as specified size or percent of heap memory.

  - ### MAX_SEND_BUFFER_SIZE

    public static final PGProperty MAX_SEND_BUFFER_SIZE
    Maximum amount of bytes buffered before sending to the backend, default is 8192.

  - ### OPTIONS

    public static final PGProperty OPTIONS
    Specify 'options' connection initialization parameter. The value of this parameter may contain spaces and other special characters or their URL representation.

  - ### PASSWORD

    public static final PGProperty PASSWORD
    Password to use when authenticating.

  - ### PG_DBNAME

    public static final PGProperty PG_DBNAME
    Database name to connect to (may be specified directly in the JDBC URL).

  - ### PG_HOST

    public static final PGProperty PG_HOST
    Hostname of the PostgreSQL server (may be specified directly in the JDBC URL).

  - ### PG_PORT

    public static final PGProperty PG_PORT
    Port of the PostgreSQL server (may be specified directly in the JDBC URL).

  - ### PREFER_QUERY_MODE

    public static final PGProperty PREFER_QUERY_MODE
    Specifies which mode is used to execute queries to database: simple means ('Q' execute, no parse, no bind, text mode only), extended means always use bind/execute messages, extendedForPrepared means extended for prepared statements only, extendedCacheEverything means use extended protocol and try cache every statement (including Statement.execute(String sql)) in a query cache.

    This mode is meant for debugging purposes and/or for cases when extended protocol cannot be used (e.g. logical replication protocol)

  - ### PREPARED_STATEMENT_CACHE_QUERIES

    public static final PGProperty PREPARED_STATEMENT_CACHE_QUERIES
    Specifies the maximum number of entries in cache of prepared statements. A value of `0` disables the cache.

  - ### PREPARED_STATEMENT_CACHE_SIZE_MIB

    public static final PGProperty PREPARED_STATEMENT_CACHE_SIZE_MIB
    Specifies the maximum size (in megabytes) of the prepared statement cache. A value of `0` disables the cache.

  - ### PREPARE_THRESHOLD

    public static final PGProperty PREPARE_THRESHOLD
    Sets the default threshold for enabling server-side prepare. A value of `-1` stands for forceBinary

  - ### PROTOCOL_VERSION

    public static final PGProperty PROTOCOL_VERSION
    Force use of a particular protocol version when connecting, if set, disables protocol version fallback.

  - ### QUOTE_RETURNING_IDENTIFIERS

    public static final PGProperty QUOTE_RETURNING_IDENTIFIERS
    Quote returning columns. There are some ORM's that quote everything, including returning columns If we quote them, then we end up sending ""colname"" to the backend which will not be found

  - ### READ_ONLY

    public static final PGProperty READ_ONLY
    Puts this connection in read-only mode.

  - ### READ_ONLY_MODE

    public static final PGProperty READ_ONLY_MODE
    Connection parameter to control behavior when `Connection.setReadOnly(boolean)` is set to `true`.

  - ### RECEIVE_BUFFER_SIZE

    public static final PGProperty RECEIVE_BUFFER_SIZE
    Socket read buffer size (SO_RECVBUF). A value of `-1`, which is the default, means system default.

  - ### REPLICATION

    public static final PGProperty REPLICATION
    Connection parameter passed in the startup message. This parameter accepts two values; "true" and "database". Passing "true" tells the backend to go into walsender mode, wherein a small set of replication commands can be issued instead of SQL statements. Only the simple query protocol can be used in walsender mode. Passing "database" as the value instructs walsender to connect to the database specified in the dbname parameter, which will allow the connection to be used for logical replication from that database.

    Parameter should be use together with `ASSUME_MIN_SERVER_VERSION` with parameter >= 9.4 (backend >= 9.4)

  - ### REWRITE_BATCHED_INSERTS

    public static final PGProperty REWRITE_BATCHED_INSERTS
    Configure optimization to enable batch insert re-writing.

  - ### SEND_BUFFER_SIZE

    public static final PGProperty SEND_BUFFER_SIZE
    Socket write buffer size (SO_SNDBUF). A value of `-1`, which is the default, means system default.

  - ### SERVICE

    public static final PGProperty SERVICE
    Service name to use for additional parameters. It specifies a service name in "pg_service .conf" that holds additional connection parameters. This allows applications to specify only a service name so connection parameters can be centrally maintained.

  - ### SOCKET_FACTORY

    public static final PGProperty SOCKET_FACTORY
    Socket factory used to create socket. A null value, which is the default, means system default.

  - ### SOCKET_FACTORY_ARG

    public static final PGProperty SOCKET_FACTORY_ARG
    The String argument to give to the constructor of the Socket Factory.

  - ### SOCKET_TIMEOUT

    public static final PGProperty SOCKET_TIMEOUT
    The timeout value used for socket read operations. If reading from the server takes longer than this value, the connection is closed. This can be used as both a brute force global query timeout and a method of detecting network problems. The timeout is specified in seconds and a value of zero means that it is disabled.

  - ### SSL

    public static final PGProperty SSL
    Control use of SSL: empty or `true` values imply `sslmode==verify-full`

  - ### SSL_CERT

    public static final PGProperty SSL_CERT
    File containing the SSL Certificate. Default will be the file `postgresql.crt` in `$HOME/.postgresql` (*nix) or `%APPDATA%\postgresql` (windows).

  - ### SSL_FACTORY

    public static final PGProperty SSL_FACTORY
    Classname of the SSL Factory to use (instance of `SSLSocketFactory`).

  - ### SSL_FACTORY_ARG

    public static final PGProperty SSL_FACTORY_ARG
    The String argument to give to the constructor of the SSL Factory.

  - ### SSL_HOSTNAME_VERIFIER

    public static final PGProperty SSL_HOSTNAME_VERIFIER
    Classname of the SSL HostnameVerifier to use (instance of `HostnameVerifier`).

  - ### SSL_KEY

    public static final PGProperty SSL_KEY
    File containing the SSL Key. Default will be the file `postgresql.pk8` in `$HOME/.postgresql` (*nix) or `%APPDATA%\postgresql` (windows).

  - ### SSL_MODE

    public static final PGProperty SSL_MODE
    Parameter governing the use of SSL. The allowed values are `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full`. If `ssl` property is empty or set to `true` it implies `verify-full`. Default mode is "require"

  - ### SSL_NEGOTIATION

    public static final PGProperty SSL_NEGOTIATION
    Normally a GSS connection is attempted first. If this is set to `direct` then the GSS connection attempt will not be made

  - ### SSL_PASSWORD

    public static final PGProperty SSL_PASSWORD
    The SSL password to use in the default CallbackHandler.

  - ### SSL_PASSWORD_CALLBACK

    public static final PGProperty SSL_PASSWORD_CALLBACK
    The classname instantiating `CallbackHandler` to use.

  - ### SSL_RESPONSE_TIMEOUT

    public static final PGProperty SSL_RESPONSE_TIMEOUT
    After requesting an upgrade to SSL from the server there are reports of the server not responding due to a failover without a timeout here, the client can wait forever. This timeout will be set before the request and reset after

  - ### SSL_ROOT_CERT

    public static final PGProperty SSL_ROOT_CERT
    File containing the root certificate when validating server (`sslmode` = `verify-ca` or `verify-full`). Default will be the file `root.crt` in `$HOME/.postgresql` (*nix) or `%APPDATA%\postgresql` (windows).

  - ### SSPI_SERVICE_CLASS

    public static final PGProperty SSPI_SERVICE_CLASS
    Specifies the name of the SSPI service class that forms the service class part of the SPN. The default, `POSTGRES`, is almost always correct.

  - ### STRING_TYPE

    public static final PGProperty STRING_TYPE
    Bind String to either `unspecified` or `varchar`. Default is `varchar` for 8.0+ backends.

  - ### TARGET_SERVER_TYPE

    public static final PGProperty TARGET_SERVER_TYPE

  - ### TCP_KEEP_ALIVE

    public static final PGProperty TCP_KEEP_ALIVE
    Enable or disable TCP keep-alive. The default is `false`.

  - ### TCP_NO_DELAY

    public static final PGProperty TCP_NO_DELAY

  - ### UNKNOWN_LENGTH

    public static final PGProperty UNKNOWN_LENGTH
    Specifies the length to return for types of unknown length.

  - ### USER

    public static final PGProperty USER
    Username to connect to the database as.

  - ### USE_SPNEGO

    public static final PGProperty USE_SPNEGO
    Use SPNEGO in SSPI authentication requests.

  - ### XML_FACTORY_FACTORY

    public static final PGProperty XML_FACTORY_FACTORY
    Factory class to instantiate factories for XML processing. The default factory disables external entity processing. Legacy behavior with external entity processing can be enabled by specifying a value of LEGACY_INSECURE. Or specify a custom class that implements `PGXmlFactoryFactory`.

- ## Method Details

  - ### values

    public static PGProperty[] values()
    Returns an array containing the constants of this enum type, in the order they are declared.
    Returns:
      an array containing the constants of this enum type, in the order they are declared

  - ### valueOf

    public static PGProperty valueOf(String name)
    Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum type has no constant with the specified name
      `NullPointerException` - if the argument is null

  - ### getName

    public String getName()
    Returns the name of the connection parameter. The name is the key that must be used in JDBC URL or in Driver properties
    Returns:
      the name of the connection parameter

  - ### getDefaultValue

    public @Nullable String getDefaultValue()
    Returns the default value for this connection parameter.
    Returns:
      the default value for this connection parameter or null

  - ### isRequired

    public boolean isRequired()
    Returns whether this parameter is required.
    Returns:
      whether this parameter is required

  - ### getDescription

    public String getDescription()
    Returns the description for this connection parameter.
    Returns:
      the description for this connection parameter

  - ### getChoices

    public String @Nullable [] getChoices()
    Returns the available values for this connection parameter.
    Returns:
      the available values for this connection parameter or null

  - ### getOrDefault

    public @Nullable String getOrDefault(Properties properties)
    Returns the value of the connection parameter from the given `Properties` or the default value.
    Parameters:
      `properties` - properties to take actual value from
    Returns:
      evaluated value for this connection parameter

  - ### get

    @Deprecated public @Nullable String get(Properties properties)
    Deprecated.
    use `getOrDefault(Properties)` instead
    Returns the value of the connection parameter from the given `Properties` or the default value
    Parameters:
      `properties` - properties to take actual value from
    Returns:
      evaluated value for this connection parameter or null

  - ### getOrNull

    public @Nullable String getOrNull(Properties properties)
    Returns the value of the connection parameter from the given `Properties` or null if there is no default value
    Parameters:
      `properties` - properties object to get value from
    Returns:
      evaluated value for this connection parameter

  - ### set

    public void set(Properties properties, @Nullable String value)
    Set the value for this connection parameter in the given `Properties`.
    Parameters:
      `properties` - properties in which the value should be set
      `value` - value for this connection parameter

  - ### getBoolean

    public boolean getBoolean(Properties properties)
    Return the boolean value for this connection parameter in the given `Properties`.
    Parameters:
      `properties` - properties to take actual value from
    Returns:
      evaluated value for this connection parameter converted to boolean

  - ### getIntNoCheck

    public int getIntNoCheck(Properties properties)
    Return the int value for this connection parameter in the given `Properties`. Prefer the use of `getInt(Properties)` anywhere you can throw an `SQLException`.
    Parameters:
      `properties` - properties to take actual value from
    Returns:
      evaluated value for this connection parameter converted to int
    Throws:
      `NumberFormatException` - if it cannot be converted to int.

  - ### getInt

    public int getInt(Properties properties) throws PSQLException
    Return the int value for this connection parameter in the given `Properties`.
    Parameters:
      `properties` - properties to take actual value from
    Returns:
      evaluated value for this connection parameter converted to int
    Throws:
      `PSQLException` - if it cannot be converted to int.

  - ### getInteger

    public @Nullable Integer getInteger(Properties properties) throws PSQLException
    Return the `Integer` value for this connection parameter in the given `Properties`.
    Parameters:
      `properties` - properties to take actual value from
    Returns:
      evaluated value for this connection parameter converted to Integer or null
    Throws:
      `PSQLException` - if unable to parse property as integer

  - ### set

    public void set(Properties properties, boolean value)
    Set the boolean value for this connection parameter in the given `Properties`.
    Parameters:
      `properties` - properties in which the value should be set
      `value` - boolean value for this connection parameter

  - ### set

    public void set(Properties properties, int value)
    Set the int value for this connection parameter in the given `Properties`.
    Parameters:
      `properties` - properties in which the value should be set
      `value` - int value for this connection parameter

  - ### isPresent

    public boolean isPresent(Properties properties)
    Test whether this property is present in the given `Properties`.
    Parameters:
      `properties` - set of properties to check current in
    Returns:
      true if the parameter is specified in the given properties

  - ### toDriverPropertyInfo

    public DriverPropertyInfo toDriverPropertyInfo(Properties properties)
    Convert this connection parameter and the value read from the given `Properties` into a `DriverPropertyInfo`.
    Parameters:
      `properties` - properties to take actual value from
    Returns:
      a DriverPropertyInfo representing this connection parameter

  - ### forName

    public static @Nullable PGProperty forName(String name)

  - ### getSetString

    public @Nullable String getSetString(Properties properties)
    Return the property if exists but avoiding the default. Allowing the caller to detect the lack of a property.
    Parameters:
      `properties` - properties bundle
    Returns:
      the value of a set property