Skip to content

feat(csharp): enable IntervalTypesAsArrow on protocol V5+ #475

@eric-wang-1990

Description

@eric-wang-1990

Background

DatabricksStatement.SetStatementProperties currently sets IntervalTypesAsArrow = false unconditionally, meaning the Thrift server returns interval values as strings rather than native Arrow interval types.

JDBC (DatabricksThriftServiceClient.java) enables IntervalTypesAsArrow = true for protocol V5+ servers alongside the other advanced Arrow types.

Work

  • Implement client-side handling for native Arrow interval types (analogous to how ComplexTypeSerializingStream handles ARRAY/MAP/STRUCT).
  • Once handling is in place, set IntervalTypesAsArrow = advancedArrowTypes in FeatureVersionNegotiator-gated block in DatabricksStatement.SetStatementProperties (same pattern as DecimalAsArrow / ComplexTypesAsArrow).
  • Add E2E test coverage for interval columns under both Thrift and SEA paths.

References

  • csharp/src/DatabricksStatement.csSetStatementProperties (currently hardcodes IntervalTypesAsArrow = false)
  • csharp/src/FeatureVersionNegotiator.csSupportsAdvancedArrowTypes (V5+)
  • JDBC: DatabricksThriftServiceClient.java lines 245–251

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions