Skip to content

Commit 5791745

Browse files
account for total chunk count
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
1 parent 4dd9434 commit 5791745

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"""
66

77
import base64
8-
from typing import Dict, Any, List
8+
from typing import Dict, Any, List, Optional
99
from dataclasses import dataclass
1010

1111
from databricks.sql.backend.types import CommandState

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ def __init__(
159159

160160
self._sea_client = sea_client
161161
self._statement_id = statement_id
162+
self._total_chunk_count = total_chunk_count
162163

163164
logger.debug(
164165
"SeaCloudFetchQueue: Initialize CloudFetch loader for statement {}, total chunks: {}".format(
@@ -169,8 +170,8 @@ def __init__(
169170
initial_links = result_data.external_links
170171
self._chunk_index_to_link = {link.chunk_index: link for link in initial_links}
171172

172-
initial_link = self._chunk_index_to_link.get(0, None)
173-
if not initial_link:
173+
first_link = self._chunk_index_to_link.get(0, None)
174+
if not first_link:
174175
# possibly an empty response
175176
return
176177

@@ -201,6 +202,11 @@ def _convert_to_thrift_link(self, link: "ExternalLink") -> TSparkArrowResultLink
201202
)
202203

203204
def _get_chunk_link(self, chunk_index: int) -> Optional["ExternalLink"]:
205+
if chunk_index >= self._total_chunk_count:
206+
raise ValueError(
207+
f"Chunk index {chunk_index} is greater than total chunk count {self._total_chunk_count}"
208+
)
209+
204210
if chunk_index not in self._chunk_index_to_link:
205211
links = self._sea_client.get_chunk_links(self._statement_id, chunk_index)
206212
self._chunk_index_to_link.update({link.chunk_index: link for link in links})

0 commit comments

Comments
 (0)