Purpose

Specifies whether the driver uses the JSON query format when the arrow format is not properly initialized. The driver uses a high-speed arrow transfer that requires the restricted APIs from java.nio package. For JVMs that are Java SE 16 (or equivalent) and higher, the following JVM value must be set to use arrow transfer:

--add-opens=java.base/java.nio=ALL-UNNAMED

If this value is not specified, the API throws an InaccessibleObjectException during query execution. To allow you to continue executing queries in this scenario, you can set this property to configure the driver to fall back to the JSON query format when the JVM is not properly configured.

Valid Values

Enable | Warn | Disable

Behavior

If set to Enable, the driver falls back to JSON query format if the arrow APIs can not be initialized using Java SE 16 and higher, and a CONFIG-level message is logged.

If set to Warn, the driver falls back to JSON query format if the arrow APIs can not be initialized using Java SE 16 and higher, and a WARN-level message is logged.

If set to Disable, the driver does not fall back to JSON query format if arrow APIs can not be initialized, and the driver throws a SQLException when executing a SELECT query that uses arrow transfer.

Notes

  • The recommended practice is to configure the JVM with the --add-opens=java.base/java.nio=ALL-UNNAMED option value and disable this connection property. This configuration provides the best performance.

  • Alternatively, your application can set JSON query format for the session by executing the ALTER SESSION SET JDBC_QUERY_RESULT_FORMAT='JSON' statement.

  • This connection property can affect performance.

Data Source Methods

public String getArrowFallbackToJson()

public void setArrowFallbackToJson(String)

Default Value

Enable

Data Type

String