Package com.databricks.jdbc.common.util

## Class ProtocolFeatureUtil

- java.lang.Object
- - com.databricks.jdbc.common.util.ProtocolFeatureUtil

    public final class ProtocolFeatureUtil
    extends Object

Utility class for checking Spark protocol version features. Provides methods to determine if specific protocol features are supported.

### Method Summary

All Methods Static Methods Concrete Methods
`static boolean` `isNonDatabricksCompute​(TProtocolVersion protocolVersion)` Checks if the given protocol version indicates a non-Databricks compute.
`static boolean` `supportsAdvancedArrowTypes​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports advanced Arrow types.
`static boolean` `supportsArrowMetadata​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports Arrow metadata in result sets.
`static boolean` `supportsAsyncMetadataExecution​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports async metadata execution.
`static boolean` `supportsAsyncMetadataOperations​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports async metadata operations.
`static boolean` `supportsCloudFetch​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports cloud result fetching.
`static boolean` `supportsCompressedArrowBatches​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports compressed Arrow batches.
`static boolean` `supportsDirectResults​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports direct results.
`static boolean` `supportsGetInfosInOpenSession​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports getting additional information in OpenSession.
`static boolean` `supportsModifiedHasMoreRowsSemantics​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports modified hasMoreRows semantics.
`static boolean` `supportsMultipleCatalogs​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports multiple catalogs in metadata operations.
`static boolean` `supportsParameterizedQueries​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports parameterized queries.
`static boolean` `supportsResultPersistenceMode​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports result persistence mode.
`static boolean` `supportsResultSetMetadataFromFetch​(TProtocolVersion protocolVersion)` Checks if the given protocol version supports getting result set metadata from fetch results.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### supportsGetInfosInOpenSession

    public static boolean supportsGetInfosInOpenSession​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports getting additional information in OpenSession.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if getInfos in OpenSession is supported, false otherwise

#### supportsDirectResults

    public static boolean supportsDirectResults​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports direct results.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if direct results are supported, false otherwise

#### supportsModifiedHasMoreRowsSemantics

    public static boolean supportsModifiedHasMoreRowsSemantics​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports modified hasMoreRows semantics.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if modified hasMoreRows semantics are supported, false otherwise

#### supportsCloudFetch

    public static boolean supportsCloudFetch​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports cloud result fetching.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if cloud fetch is supported, false otherwise

#### supportsMultipleCatalogs

    public static boolean supportsMultipleCatalogs​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports multiple catalogs in metadata operations.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if multiple catalogs are supported, false otherwise

#### supportsArrowMetadata

    public static boolean supportsArrowMetadata​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports Arrow metadata in result sets.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if Arrow metadata is supported, false otherwise

#### supportsResultSetMetadataFromFetch

    public static boolean supportsResultSetMetadataFromFetch​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports getting result set metadata from fetch results.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if getting result set metadata from fetch is supported, false otherwise

#### supportsAdvancedArrowTypes

    public static boolean supportsAdvancedArrowTypes​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports advanced Arrow types.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if advanced Arrow types are supported, false otherwise

#### supportsCompressedArrowBatches

    public static boolean supportsCompressedArrowBatches​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports compressed Arrow batches.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if compressed Arrow batches are supported, false otherwise

#### supportsAsyncMetadataExecution

    public static boolean supportsAsyncMetadataExecution​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports async metadata execution.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if async metadata execution is supported, false otherwise

#### supportsResultPersistenceMode

    public static boolean supportsResultPersistenceMode​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports result persistence mode.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if result persistence mode is supported, false otherwise

#### supportsParameterizedQueries

    public static boolean supportsParameterizedQueries​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports parameterized queries.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if parameterized queries are supported, false otherwise

#### supportsAsyncMetadataOperations

    public static boolean supportsAsyncMetadataOperations​(TProtocolVersion protocolVersion)

Checks if the given protocol version supports async metadata operations.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if async metadata operations are supported, false otherwise

#### isNonDatabricksCompute

    public static boolean isNonDatabricksCompute​(TProtocolVersion protocolVersion)

Checks if the given protocol version indicates a non-Databricks compute.

Parameters:
  `protocolVersion` - The protocol version to check
Returns:
  true if this is a non-Databricks compute, false otherwise