Package com.databricks.jdbc.api.impl

## Class LazyThriftResult

- java.lang.Object
- - com.databricks.jdbc.api.impl.LazyThriftResult

All Implemented Interfaces:
  `IExecutionResult`

    public class LazyThriftResult
    extends Object
    implements IExecutionResult

### Constructor Summary

Constructors
`LazyThriftResult​(TFetchResultsResp initialResponse, IDatabricksStatementInternal statement, IDatabricksSession session)` Creates a new LazyThriftResult that lazily fetches data on demand.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()` Closes this result and releases associated resources.
`long` `getChunkCount()` Gets the chunk count.
`long` `getCurrentRow()` Gets the current row index (0-based).
`Object` `getObject​(int columnIndex)` Gets the value at the specified column index for the current row.
`long` `getRowCount()` Gets the number of rows in the current batch.
`long` `getTotalRowsFetched()` Gets the total number of rows fetched from the server so far.
`boolean` `hasNext()` Checks if there are more rows available without advancing the cursor.
`boolean` `isCompletelyFetched()` Checks if all data has been fetched from the server.
`boolean` `next()` Moves the cursor to the next row.

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

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

### Constructor Detail

#### LazyThriftResult

    public LazyThriftResult​(TFetchResultsResp initialResponse,
                            IDatabricksStatementInternal statement,
                            IDatabricksSession session)
                     throws DatabricksSQLException

Creates a new LazyThriftResult that lazily fetches data on demand.

Parameters:
  `initialResponse` - the initial response from the server
  `statement` - the statement that generated this result
  `session` - the session to use for fetching additional data
Throws:
  `DatabricksSQLException` - if the initial response cannot be processed

### Method Detail

#### getObject

    public Object getObject​(int columnIndex)
                     throws DatabricksSQLException

Gets the value at the specified column index for the current row.

Specified by:
  `getObject` in interface `IExecutionResult`
Parameters:
  `columnIndex` - the zero-based column index
Returns:
  the value at the specified column
Throws:
  `DatabricksSQLException` - if the result is closed, cursor is invalid, or column index is out of bounds

#### getCurrentRow

    public long getCurrentRow()

Gets the current row index (0-based). Returns -1 if before the first row.

Specified by:
  `getCurrentRow` in interface `IExecutionResult`
Returns:
  the current row index

#### next

    public boolean next()
                 throws SQLException

Moves the cursor to the next row. Fetches additional data from server if needed.

Specified by:
  `next` in interface `IExecutionResult`
Returns:
  true if there is a next row, false if at the end
Throws:
  `SQLException` - if an error occurs while fetching data

#### hasNext

    public boolean hasNext()

Checks if there are more rows available without advancing the cursor.

Specified by:
  `hasNext` in interface `IExecutionResult`
Returns:
  true if there are more rows, false otherwise

#### close

    public void close()

Closes this result and releases associated resources.

Specified by:
  `close` in interface `IExecutionResult`

#### getRowCount

    public long getRowCount()

Gets the number of rows in the current batch.

Specified by:
  `getRowCount` in interface `IExecutionResult`
Returns:
  the number of rows in the current batch

#### getChunkCount

    public long getChunkCount()

Gets the chunk count. Always returns 0 for thrift columnar results.

Specified by:
  `getChunkCount` in interface `IExecutionResult`
Returns:
  0 (thrift results don't use chunks like Arrow)

#### getTotalRowsFetched

    public long getTotalRowsFetched()

Gets the total number of rows fetched from the server so far. This is different from getRowCount() which returns current batch size.

Returns:
  the total number of rows fetched from the server

#### isCompletelyFetched

    public boolean isCompletelyFetched()

Checks if all data has been fetched from the server.

Returns:
  true if all data has been fetched (either reached end or maxRows limit)