Skip to content

Commit 47fd60d

Browse files
introduce strongly typed ChunkInfo
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
1 parent 2967119 commit 47fd60d

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ class ExternalLink:
4242
http_headers: Optional[Dict[str, str]] = None
4343

4444

45+
@dataclass
46+
class ChunkInfo:
47+
"""Information about a chunk in the result set."""
48+
49+
chunk_index: int
50+
byte_count: int
51+
row_offset: int
52+
row_count: int
53+
54+
4555
@dataclass
4656
class ResultData:
4757
"""Result data from a statement execution."""
@@ -73,5 +83,5 @@ class ResultManifest:
7383
total_byte_count: int
7484
total_chunk_count: int
7585
truncated: bool = False
76-
chunks: Optional[List[Dict[str, Any]]] = None
86+
chunks: Optional[List[ChunkInfo]] = None
7787
result_compression: Optional[str] = None

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
ResultData,
1515
ServiceError,
1616
ExternalLink,
17+
ChunkInfo,
1718
)
1819

1920

@@ -43,15 +44,28 @@ def _parse_manifest(data: Dict[str, Any]) -> ResultManifest:
4344
"""Parse manifest from response data."""
4445

4546
manifest_data = data.get("manifest", {})
47+
chunks = None
48+
if "chunks" in manifest_data:
49+
chunks = [
50+
ChunkInfo(
51+
chunk_index=chunk.get("chunk_index", 0),
52+
byte_count=chunk.get("byte_count", 0),
53+
row_offset=chunk.get("row_offset", 0),
54+
row_count=chunk.get("row_count", 0),
55+
)
56+
for chunk in manifest_data.get("chunks", [])
57+
]
58+
4659
return ResultManifest(
4760
format=manifest_data.get("format", ""),
4861
schema=manifest_data.get("schema", {}),
4962
total_row_count=manifest_data.get("total_row_count", 0),
5063
total_byte_count=manifest_data.get("total_byte_count", 0),
5164
total_chunk_count=manifest_data.get("total_chunk_count", 0),
5265
truncated=manifest_data.get("truncated", False),
53-
chunks=manifest_data.get("chunks"),
66+
chunks=chunks,
5467
result_compression=manifest_data.get("result_compression"),
68+
is_volume_operation=manifest_data.get("is_volume_operation"),
5569
)
5670

5771

0 commit comments

Comments
 (0)