com.amazon.redshift

## Enum RedshiftProperty

- java.lang.Object
- - java.lang.Enum<RedshiftProperty>
  - - com.amazon.redshift.RedshiftProperty

All Implemented Interfaces:
  Serializable, Comparable<RedshiftProperty>

    public enum RedshiftProperty
    extends Enum<RedshiftProperty>

All connection parameters that can be either set in JDBC URL, in Driver properties or in datasource setters.

### Enum Constant Summary

Enum Constants
Enum Constant and Description
`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.
`ASSUME_MIN_SERVER_VERSION` Assume the server is at least that version.
`AUTH_MECH` Added for backward compatibility.
`AUTH_PROFILE` The authentication profile referring to connection props as JSON in the coral service.
`AUTOSAVE` Specifies what the driver should do if a query fails.
`AWS_PROFILE` The AWS profile name for credentials.
`AWS_REGION` The AWS region where the cluster is located.
`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.
`BLOCKING_ROWS_MODE` Added for backward compatibility.
`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
`CLUSTER_IDENTIFIER` The name of the Redshift cluster to connect to.
`CONNECT_TIMEOUT` The timeout value used for socket connect operations.
`CREDENTIALS_PROVIDER` The fully qualified class path for a class that implements AWSCredentialsProvider.
`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.
`DATABASE_METADATA_CURRENT_DB_ONLY` Returns metadata for the connected database only.
`DB_GROUPS` A comma delimited database group names.
`DB_GROUPS_FILTER` Regex for filtering out dbGroups.
`DB_USER` The database user name.
`DBNAME` Database name to connect to (may be specified directly in the JDBC URL).
`DEFAULT_ROW_FETCH_SIZE` Default parameter for `Statement.getFetchSize()`.
`DISABLE_COLUMN_SANITISER` Enable optimization that disables column name sanitiser.
`DISABLE_ISVALID_QUERY` This option specifies whether the driver submits a new database query when using the Connection.isValid() method to determine whether the database connection is active.
`DSI_LOG_LEVEL` Added for backward compatibility.
`ENABLE_FETCH_RING_BUFFER` The Redshift fetch rows using a ring buffer on a separate thread.
`ENABLE_GENERATED_NAME_FOR_PREPARED_STATEMENT` Use generated statement name cursor for prepared statements.
`ENABLE_MULTI_SQL_SUPPORT` "true" means driver supports multiple SQL commands (semicolon separated) in a Statement object.
`ENABLE_STATEMENT_CACHE` The statement cache enable/disable.
`ENDPOINT_URL` The Redshift endpoint url.
`ESCAPE_SYNTAX_CALL_MODE` Specifies how the driver transforms JDBC escape call syntax into underlying SQL, for invoking procedures or functions.
`FETCH_RING_BUFFER_SIZE` Specifies size of buffer during fetching result set.
`FORCE_LOWERCASE` Forces database group names to be lower case.
`GROUP_FEDERATION` Use the IDP Groups in the Redshift.
`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.
`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` Hostname of the Redshift server (may be specified directly in the JDBC URL).
`HOST_RECHECK_SECONDS`
`IAM_ACCESS_KEY_ID` The IAM access key id for the IAM user or role.
`IAM_AUTH` Indicates whether use IAM authentication.
`IAM_DISABLE_CACHE` Disable IAM credentials cache.
`IAM_DURATION` The length of time (in seconds) until the temporary IAM credentials expire.
`IAM_SECRET_ACCESS_KEY` The IAM secret key for the IAM user or role.
`IAM_SESSION_TOKEN` The IAM security token for an IAM user or role.
`INI_FILE` The JDBC INI file name.
`INI_SECTION` The JDBC INI file section name.
`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`
`LOG_LEVEL` Added for backward compatibility.
`LOG_PATH`
`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` File name output of the Logger, if set, the Logger will use a `FileHandler` to write to a specified file.
`LOGGER_LEVEL` Logger level of the driver.
`LOGIN_TIMEOUT` Specify how long to wait for establishment of a database connection.
`MAX_LOG_FILE_COUNT`
`MAX_LOG_FILE_SIZE`
`MAX_RESULT_BUFFER` Specifies size of buffer during fetching result set.
`OPTIONS` Specify 'options' connection initialization parameter.
`PASSWORD` Password to use when authenticating.
`PORT` Port of the Redshift 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.
`PROVIDER_NAME` The name of the Redshift Native Auth Provider.
`PWD` Password to use when authenticating.
`QUERY_GROUP` Set the query group on a connection.
`RAISE_EXCEPTION_ON_SILENT_ROLLBACK` Certain database versions perform a silent rollback instead of commit in case the transaction was in a failed state.
`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.
`REWRITE_BATCHED_INSERTS_SIZE` Configure optimization to batch insert size re-writing.
`SEND_BUFFER_SIZE` Socket write buffer size (SO_SNDBUF).
`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 `javax.net.ssl.SSLSocketFactory`).
`SSL_FACTORY_ARG` Deprecated. use `..Factory(Properties)` constructor.
`SSL_HOSTNAME_VERIFIER` Classname of the SSL HostnameVerifier to use (instance of `javax.net.ssl.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 `javax.security.auth.callback.CallbackHandler` to use.
`SSL_ROOT_CERT` File containing the root certificate when validating server (`sslmode` = `verify-ca` or `verify-full`).
`SSL_TRUSTSTORE_PATH_KEY` The SSL Truststore path key.
`SSL_TRUSTSTORE_PWD_KEY` The SSL Truststore path key.
`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`.
`STS_ENDPOINT_URL` The STS endpoint url.
`TARGET_SERVER_TYPE`
`TCP_KEEP_ALIVE` Enable or disable TCP keep-alive.
`UID` Username to connect to the database as.
`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.
`USER_AUTOCREATE` Indicates whether the user should be created if not exists.
`WEB_IDENTITY_TOKEN` The Oauth access token for an idp connection.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static RedshiftProperty` `forName(String name)`
`String` `get(Properties properties)` Returns the value of the connection parameters according to the given `Properties` or the default value.
`boolean` `getBoolean(Properties properties)` Return the boolean value for this connection parameter in the given `Properties`.
`String[]` `getChoices()` Returns the available values for this connection parameter.
`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`.
`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.
`String` `getSetString(Properties properties)` Return the property if exists but avoiding the default.
`boolean` `isDeprecated()` Returns whether this connection parameter is deprecated.
`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, 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 RedshiftProperty` `valueOf(String name)` Returns the enum constant of this type with the specified name.
`static RedshiftProperty[]` `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, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

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

### Enum Constant Detail

#### ALLOW_ENCODING_CHANGES

    public static final RedshiftProperty 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 RedshiftProperty APPLICATION_NAME

The application name.

#### ASSUME_MIN_SERVER_VERSION

    public static final RedshiftProperty ASSUME_MIN_SERVER_VERSION

Assume the server is at least that version.

#### AUTH_PROFILE

    public static final RedshiftProperty AUTH_PROFILE

The authentication profile referring to connection props as JSON in the coral service.

#### AUTOSAVE

    public static final RedshiftProperty 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 RedshiftProperty BINARY_TRANSFER

Use binary format for sending and receiving data if possible.

#### BINARY_TRANSFER_DISABLE

    public static final RedshiftProperty 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 RedshiftProperty BINARY_TRANSFER_ENABLE

Comma separated list of types to enable binary transfer. Either OID numbers or names

#### CANCEL_SIGNAL_TIMEOUT

    public static final RedshiftProperty 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 RedshiftProperty CLEANUP_SAVEPOINTS

Determine whether SAVEPOINTS used in AUTOSAVE will be released per query or not

#### CONNECT_TIMEOUT

    public static final RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty 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.

#### DATABASE_METADATA_CURRENT_DB_ONLY

    public static final RedshiftProperty DATABASE_METADATA_CURRENT_DB_ONLY

Returns metadata for the connected database only. Application is ready to accept metadata from all databases, can set the value of this parameter "false". Default value is "true" means application gets metadata from single databases.

#### DEFAULT_ROW_FETCH_SIZE

    public static final RedshiftProperty DEFAULT_ROW_FETCH_SIZE

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

#### BLOCKING_ROWS_MODE

    public static final RedshiftProperty BLOCKING_ROWS_MODE

Added for backward compatibility.

#### DISABLE_COLUMN_SANITISER

    public static final RedshiftProperty DISABLE_COLUMN_SANITISER

Enable optimization that disables column name sanitiser.

#### DISABLE_ISVALID_QUERY

    public static final RedshiftProperty DISABLE_ISVALID_QUERY

This option specifies whether the driver submits a new database query when using the Connection.isValid() method to determine whether the database connection is active. true: The driver does not submit a query when using Connection.isValid() to determine whether the database connection is active. This may cause the driver to incorrectly identify the database connection as active if the database server has shut down unexpectedly. false: The driver submits a query when using Connection.isValid() to determine whether the database connection is active. 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.

#### ENABLE_FETCH_RING_BUFFER

    public static final RedshiftProperty ENABLE_FETCH_RING_BUFFER

The Redshift fetch rows using a ring buffer on a separate thread.

#### ENABLE_GENERATED_NAME_FOR_PREPARED_STATEMENT

    public static final RedshiftProperty ENABLE_GENERATED_NAME_FOR_PREPARED_STATEMENT

Use generated statement name cursor for prepared statements.

#### ENABLE_MULTI_SQL_SUPPORT

    public static final RedshiftProperty ENABLE_MULTI_SQL_SUPPORT

"true" means driver supports multiple SQL commands (semicolon separated) in a Statement object. "false" means driver throws an exception when see multiple SQL commands. Default value is "true".

#### ENABLE_STATEMENT_CACHE

    public static final RedshiftProperty ENABLE_STATEMENT_CACHE

The statement cache enable/disable.

#### ESCAPE_SYNTAX_CALL_MODE

    public static final RedshiftProperty 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).

#### FETCH_RING_BUFFER_SIZE

    public static final RedshiftProperty FETCH_RING_BUFFER_SIZE

Specifies size of buffer during fetching result set. Can be specified as specified size or percent of heap memory.

#### GSS_LIB

    public static final RedshiftProperty 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.

#### HIDE_UNPRIVILEGED_OBJECTS

    public static final RedshiftProperty 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 RedshiftProperty HOST_RECHECK_SECONDS

#### INI_FILE

    public static final RedshiftProperty INI_FILE

The JDBC INI file name.

#### INI_SECTION

    public static final RedshiftProperty INI_SECTION

The JDBC INI file section name. Section name to use for connection configuration.

#### JAAS_APPLICATION_NAME

    public static final RedshiftProperty JAAS_APPLICATION_NAME

Specifies the name of the JAAS system or application login configuration.

#### JAAS_LOGIN

    public static final RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty LOAD_BALANCE_HOSTS

#### LOGGER_FILE

    public static final RedshiftProperty LOGGER_FILE

File name output of the Logger, if set, the Logger will use a `FileHandler` to write to a specified file. If the parameter is not set or the file can't be created the `ConsoleHandler` will be used instead.

Parameter should be use together with `LOGGER_LEVEL`

#### LOG_PATH

    public static final RedshiftProperty LOG_PATH

#### MAX_LOG_FILE_SIZE

    public static final RedshiftProperty MAX_LOG_FILE_SIZE

#### MAX_LOG_FILE_COUNT

    public static final RedshiftProperty MAX_LOG_FILE_COUNT

#### LOGGER_LEVEL

    public static final RedshiftProperty LOGGER_LEVEL

Logger level of the driver. Allowed values: `OFF`, `DEBUG` or `TRACE`.

This enable the `Logger` of the driver based on the following mapping of levels:

- FINE -> DEBUG
- FINEST -> TRACE

NOTE: The recommended approach to enable java.util.logging is using a `logging.properties` configuration file with the property `-Djava.util.logging.config.file=myfile` or if your are using an application server you should use the appropriate logging subsystem.

#### LOG_LEVEL

    public static final RedshiftProperty LOG_LEVEL

Added for backward compatibility.

#### DSI_LOG_LEVEL

    public static final RedshiftProperty DSI_LOG_LEVEL

Added for backward compatibility.

#### LOGIN_TIMEOUT

    public static final RedshiftProperty 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 RedshiftProperty LOG_SERVER_ERROR_DETAIL

Whether to include full server error detail in exception messages.

#### LOG_UNCLOSED_CONNECTIONS

    public static final RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty PASSWORD

Password to use when authenticating.

#### PWD

    public static final RedshiftProperty PWD

Password to use when authenticating. It's an alias for the Password.

#### QUERY_GROUP

    public static final RedshiftProperty QUERY_GROUP

Set the query group on a connection.

#### DBNAME

    public static final RedshiftProperty DBNAME

Database name to connect to (may be specified directly in the JDBC URL).

#### HOST

    public static final RedshiftProperty HOST

Hostname of the Redshift server (may be specified directly in the JDBC URL).

#### PORT

    public static final RedshiftProperty PORT

Port of the Redshift server (may be specified directly in the JDBC URL).

#### PREFER_QUERY_MODE

    public static final RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty PREPARE_THRESHOLD

Sets the default threshold for enabling server-side prepare. A value of `-1` stands for forceBinary

#### PROTOCOL_VERSION

    public static final RedshiftProperty PROTOCOL_VERSION

Force use of a particular protocol version when connecting, if set, disables protocol version fallback.

#### RAISE_EXCEPTION_ON_SILENT_ROLLBACK

    public static final RedshiftProperty RAISE_EXCEPTION_ON_SILENT_ROLLBACK

Certain database versions perform a silent rollback instead of commit in case the transaction was in a failed state.

#### READ_ONLY

    public static final RedshiftProperty READ_ONLY

Puts this connection in read-only mode.

#### READ_ONLY_MODE

    public static final RedshiftProperty READ_ONLY_MODE

Connection parameter to control behavior when `Connection.setReadOnly(boolean)` is set to `true`.

#### RECEIVE_BUFFER_SIZE

    public static final RedshiftProperty RECEIVE_BUFFER_SIZE

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

#### REPLICATION

    public static final RedshiftProperty 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 RedshiftProperty REWRITE_BATCHED_INSERTS

Configure optimization to enable batch insert re-writing.

#### REWRITE_BATCHED_INSERTS_SIZE

    public static final RedshiftProperty REWRITE_BATCHED_INSERTS_SIZE

Configure optimization to batch insert size re-writing. This must be power of 2.

#### SEND_BUFFER_SIZE

    public static final RedshiftProperty SEND_BUFFER_SIZE

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

#### SOCKET_FACTORY

    public static final RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty 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 RedshiftProperty SSL

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

#### SSL_CERT

    public static final RedshiftProperty SSL_CERT

File containing the SSL Certificate. Default will be the file `redshift.crt` in `$HOME/.redshift` (*nix) or `%APPDATA%\redshift` (windows).

#### SSL_FACTORY

    public static final RedshiftProperty SSL_FACTORY

Classname of the SSL Factory to use (instance of `javax.net.ssl.SSLSocketFactory`).

#### SSL_FACTORY_ARG

    @Deprecated
    public static final RedshiftProperty 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 RedshiftProperty SSL_HOSTNAME_VERIFIER

Classname of the SSL HostnameVerifier to use (instance of `javax.net.ssl.HostnameVerifier`).

#### SSL_KEY

    public static final RedshiftProperty SSL_KEY

File containing the SSL Key. Default will be the file `redshift.pk8` in `$HOME/.redshift` (*nix) or `%APPDATA%\redshift` (windows).

#### SSL_MODE

    public static final RedshiftProperty 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"

#### AUTH_MECH

    public static final RedshiftProperty AUTH_MECH

Added for backward compatibility.

#### SSL_PASSWORD

    public static final RedshiftProperty SSL_PASSWORD

The SSL password to use in the default CallbackHandler.

#### SSL_PASSWORD_CALLBACK

    public static final RedshiftProperty SSL_PASSWORD_CALLBACK

The classname instantiating `javax.security.auth.callback.CallbackHandler` to use.

#### SSL_ROOT_CERT

    public static final RedshiftProperty 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/.redshift` (*nix) or `%APPDATA%\redshift` (windows).

#### SSL_TRUSTSTORE_PATH_KEY

    public static final RedshiftProperty SSL_TRUSTSTORE_PATH_KEY

The SSL Truststore path key.

#### SSL_TRUSTSTORE_PWD_KEY

    public static final RedshiftProperty SSL_TRUSTSTORE_PWD_KEY

The SSL Truststore path key.

#### SSPI_SERVICE_CLASS

    public static final RedshiftProperty SSPI_SERVICE_CLASS

Specifies the name of the SSPI service class that forms the service class part of the SPN. The default, `REDSHIFT`, is almost always correct.

#### STRING_TYPE

    public static final RedshiftProperty STRING_TYPE

Bind String to either `unspecified` or `varchar`. Default is `varchar` for 8.0+ backends.

#### TARGET_SERVER_TYPE

    public static final RedshiftProperty TARGET_SERVER_TYPE

#### TCP_KEEP_ALIVE

    public static final RedshiftProperty TCP_KEEP_ALIVE

Enable or disable TCP keep-alive. The default is `true`.

#### UNKNOWN_LENGTH

    public static final RedshiftProperty UNKNOWN_LENGTH

Specifies the length to return for types of unknown length.

#### USER

    public static final RedshiftProperty USER

Username to connect to the database as.

#### UID

    public static final RedshiftProperty UID

Username to connect to the database as. It's an alias for the USER.

#### USE_SPNEGO

    public static final RedshiftProperty USE_SPNEGO

Use SPNEGO in SSPI authentication requests.

#### CLUSTER_IDENTIFIER

    public static final RedshiftProperty CLUSTER_IDENTIFIER

The name of the Redshift cluster to connect to. Used only by JDBC driver internally only.

#### IAM_DURATION

    public static final RedshiftProperty IAM_DURATION

The length of time (in seconds) until the temporary IAM credentials expire.

#### IAM_ACCESS_KEY_ID

    public static final RedshiftProperty IAM_ACCESS_KEY_ID

The IAM access key id for the IAM user or role.

#### IAM_AUTH

    public static final RedshiftProperty IAM_AUTH

Indicates whether use IAM authentication. Used only by JDBC driver internally only.

#### IAM_DISABLE_CACHE

    public static final RedshiftProperty IAM_DISABLE_CACHE

Disable IAM credentials cache. Enable cache gives protection against throttling API calls. Default value is false.

#### AWS_REGION

    public static final RedshiftProperty AWS_REGION

The AWS region where the cluster is located. Used only by JDBC driver internally only.

#### ENDPOINT_URL

    public static final RedshiftProperty ENDPOINT_URL

The Redshift endpoint url. Used only AWS internal team.

#### STS_ENDPOINT_URL

    public static final RedshiftProperty STS_ENDPOINT_URL

The STS endpoint url.

#### AWS_PROFILE

    public static final RedshiftProperty AWS_PROFILE

The AWS profile name for credentials.

#### IAM_SECRET_ACCESS_KEY

    public static final RedshiftProperty IAM_SECRET_ACCESS_KEY

The IAM secret key for the IAM user or role.

#### IAM_SESSION_TOKEN

    public static final RedshiftProperty IAM_SESSION_TOKEN

The IAM security token for an IAM user or role.

#### CREDENTIALS_PROVIDER

    public static final RedshiftProperty CREDENTIALS_PROVIDER

The fully qualified class path for a class that implements AWSCredentialsProvider.

#### USER_AUTOCREATE

    public static final RedshiftProperty USER_AUTOCREATE

Indicates whether the user should be created if not exists.

#### DB_USER

    public static final RedshiftProperty DB_USER

The database user name.

#### DB_GROUPS

    public static final RedshiftProperty DB_GROUPS

A comma delimited database group names.

#### DB_GROUPS_FILTER

    public static final RedshiftProperty DB_GROUPS_FILTER

Regex for filtering out dbGroups.

#### FORCE_LOWERCASE

    public static final RedshiftProperty FORCE_LOWERCASE

Forces database group names to be lower case.

#### GROUP_FEDERATION

    public static final RedshiftProperty GROUP_FEDERATION

Use the IDP Groups in the Redshift. This is supported by new GetClusterCredentialsV2 API. Default value is false for backward compatibility, which uses STS API and GetClusterCredentials for user federation and explictily specifying DbGroups in connection.

#### WEB_IDENTITY_TOKEN

    public static final RedshiftProperty WEB_IDENTITY_TOKEN

The Oauth access token for an idp connection.

#### PROVIDER_NAME

    public static final RedshiftProperty PROVIDER_NAME

The name of the Redshift Native Auth Provider.

### Method Detail

#### values

    public static RedshiftProperty[] values()

Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

    for (RedshiftProperty c : RedshiftProperty.values())
        System.out.println(c);

Returns:
  an array containing the constants of this enum type, in the order they are declared

#### valueOf

    public static RedshiftProperty 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 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[] getChoices()

Returns the available values for this connection parameter.

Returns:
  the available values for this connection parameter or null

#### isDeprecated

    public boolean isDeprecated()

Returns whether this connection parameter is deprecated.

Returns:
  whether this connection parameter is deprecated

#### get

    public String get(Properties properties)

Returns the value of the connection parameters according to the given `Properties` or the default value.

Parameters:
  `properties` - properties to take actual value from
Returns:
  evaluated value for this connection parameter

#### set

    public void set(Properties properties,
                    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 RedshiftException

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:
  `RedshiftException` - if it cannot be converted to int.

#### getInteger

    public Integer getInteger(Properties properties)
                       throws RedshiftException

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:
  `RedshiftException` - 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 RedshiftProperty forName(String name)

#### getSetString

    public 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