Skip to content

Commit 99e7435

Browse files
simplify description extraction
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
1 parent 2d44596 commit 99e7435

File tree

1 file changed

+9
-19
lines changed

1 file changed

+9
-19
lines changed

src/databricks/sql/backend/sea/backend.py

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)