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.
`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.
`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`
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.
`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.
`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.
`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`
Deprecated.
use `..Factory(Properties)` constructor.
`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`
Deprecated.
use `..Factory(Properties)` constructor.
`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_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.

### 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.

### 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

public static final PGProperty GROUP_STARTUP_PARAMETERS
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

### 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.

### 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

@Deprecated public static final PGProperty SOCKET_FACTORY_ARG
Deprecated.
use `..Factory(Properties)` constructor.
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

@Deprecated public static final PGProperty SSL_FACTORY_ARG
Deprecated.
use `..Factory(Properties)` constructor.
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_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