Class LazyThriftInlineArrowResult
- java.lang.Object
-
- com.databricks.jdbc.api.impl.arrow.LazyThriftInlineArrowResult
-
- All Implemented Interfaces:
IExecutionResult
public class LazyThriftInlineArrowResult extends Object implements IExecutionResult
Lazy implementation for thrift-based inline Arrow results that fetches arrow batches on demand. Similar to LazyThriftResult but processes Arrow data instead of columnar thrift data.
-
-
Constructor Summary
Constructors Constructor Description LazyThriftInlineArrowResult(TFetchResultsResp initialResponse, IDatabricksStatementInternal statement, IDatabricksSession session)Creates a new LazyThriftInlineArrowResult that lazily fetches arrow data on demand.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes this result and releases associated resources.List<String>getArrowMetadata()Gets the Arrow metadata for the current chunk.longgetChunkCount()Gets the chunk count.longgetCurrentRow()Gets the current row index (0-based).ObjectgetObject(int columnIndex)Gets the value at the specified column index for the current row.longgetRowCount()Gets the number of rows in the current chunk.booleanhasNext()Checks if there are more rows available without advancing the cursor.booleannext()Moves the cursor to the next row.
-
-
-
Constructor Detail
-
LazyThriftInlineArrowResult
public LazyThriftInlineArrowResult(TFetchResultsResp initialResponse, IDatabricksStatementInternal statement, IDatabricksSession session) throws DatabricksSQLException
Creates a new LazyThriftInlineArrowResult that lazily fetches arrow data on demand.- Parameters:
initialResponse- the initial response from the serverstatement- the statement that generated this resultsession- 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:
getObjectin interfaceIExecutionResult- 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:
getCurrentRowin interfaceIExecutionResult- Returns:
- the current row index
-
next
public boolean next() throws SQLExceptionMoves the cursor to the next row. Fetches additional data from server if needed.- Specified by:
nextin interfaceIExecutionResult- Returns:
- true if there is a next row, false if at the end
- Throws:
DatabricksSQLException- if an error occurs while fetching dataSQLException
-
hasNext
public boolean hasNext()
Checks if there are more rows available without advancing the cursor.- Specified by:
hasNextin interfaceIExecutionResult- Returns:
- true if there are more rows, false otherwise
-
close
public void close()
Closes this result and releases associated resources.- Specified by:
closein interfaceIExecutionResult
-
getRowCount
public long getRowCount()
Gets the number of rows in the current chunk.- Specified by:
getRowCountin interfaceIExecutionResult- Returns:
- the number of rows in the current chunk
-
getChunkCount
public long getChunkCount()
Gets the chunk count. Always returns 0 for lazy thrift inline arrow results.- Specified by:
getChunkCountin interfaceIExecutionResult- Returns:
- 0 (lazy results don't use chunks in the same sense as buffered results)
-
getArrowMetadata
public List<String> getArrowMetadata() throws DatabricksSQLException
Gets the Arrow metadata for the current chunk.- Returns:
- list of arrow metadata strings, or null if no chunk is loaded
- Throws:
DatabricksSQLException- if an error occurs
-
-