@@ -115,6 +115,7 @@ class SeaDatabricksClient(DatabricksClient):
115115 STATEMENT_PATH = BASE_PATH + "statements"
116116 STATEMENT_PATH_WITH_ID = STATEMENT_PATH + "/{}"
117117 CANCEL_STATEMENT_PATH_WITH_ID = STATEMENT_PATH + "/{}/cancel"
118+ CHUNK_PATH_WITH_ID_AND_INDEX = STATEMENT_PATH + "/{}/result/chunks/{}"
118119
119120 # SEA constants
120121 POLL_INTERVAL_SECONDS = 0.2
@@ -301,7 +302,7 @@ def close_session(self, session_id: SessionId) -> None:
301302
302303 def _extract_description_from_manifest (
303304 self , manifest : ResultManifest
304- ) -> Optional [ List ]:
305+ ) -> List [ Tuple ]:
305306 """
306307 Extract column description from a manifest object, in the format defined by
307308 the spec: https://peps.python.org/pep-0249/#description
@@ -310,39 +311,28 @@ def _extract_description_from_manifest(
310311 manifest: The ResultManifest object containing schema information
311312
312313 Returns:
313- Optional[ List]: A list of column tuples or None if no columns are found
314+ List[Tuple ]: A list of column tuples
314315 """
315316
316317 schema_data = manifest .schema
317318 columns_data = schema_data .get ("columns" , [])
318319
319- if not columns_data :
320- return None
321-
322320 columns = []
323321 for col_data in columns_data :
324322 # Format: (name, type_code, display_size, internal_size, precision, scale, null_ok)
325- name = col_data .get ("name" , "" )
326- type_name = col_data .get ("type_name" , "" )
327- type_name = (
328- type_name [:- 5 ] if type_name .endswith ("_TYPE" ) else type_name
329- ).lower ()
330- precision = col_data .get ("type_precision" )
331- scale = col_data .get ("type_scale" )
332-
333323 columns .append (
334324 (
335- name , # name
336- type_name , # type_code
325+ col_data . get ( " name" , "" ) , # name
326+ col_data . get ( " type_name" , "" ) , # type_code
337327 None , # display_size (not provided by SEA)
338328 None , # internal_size (not provided by SEA)
339- precision , # precision
340- scale , # scale
341- None , # null_ok
329+ col_data . get ( " precision" ) , # precision
330+ col_data . get ( " scale" ) , # scale
331+ col_data . get ( "nullable" , True ) , # null_ok
342332 )
343333 )
344334
345- return columns if columns else None
335+ return columns
346336
347337 def _results_message_to_execute_response (
348338 self , response : Union [ExecuteStatementResponse , GetStatementResponse ]
0 commit comments