Skip to content

Commit b5065e2

Browse files
remove merge artifacts, account for result set
1 parent 917b42b commit b5065e2

File tree

4 files changed

+31
-48
lines changed

4 files changed

+31
-48
lines changed

src/databricks/sql/backend/thrift_backend.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -956,18 +956,6 @@ def execute_command(
956956
thrift_handle,
957957
)
958958

959-
logger.debug(
960-
"ThriftBackend.execute_command(operation=%s, session_handle=%s)",
961-
operation,
962-
thrift_handle,
963-
)
964-
965-
logger.debug(
966-
"ThriftBackend.execute_command(operation=%s, session_handle=%s)",
967-
operation,
968-
session_handle,
969-
)
970-
971959
spark_arrow_types = ttypes.TSparkArrowTypes(
972960
timestampAsArrow=self._use_arrow_native_timestamps,
973961
decimalAsArrow=self._use_arrow_native_decimals,

src/databricks/sql/client.py

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -776,7 +776,7 @@ def execute(
776776

777777
self._check_not_closed()
778778
self._close_and_clear_active_result_set()
779-
execute_response = self.backend.execute_command(
779+
self.active_result_set = self.backend.execute_command(
780780
operation=prepared_operation,
781781
session_id=self.connection.session.get_session_id(),
782782
max_rows=self.arraysize,
@@ -788,14 +788,6 @@ def execute(
788788
async_op=False,
789789
enforce_embedded_schema_correctness=enforce_embedded_schema_correctness,
790790
)
791-
self.active_result_set = ResultSet(
792-
self.connection,
793-
execute_response,
794-
self.backend,
795-
self.buffer_size_bytes,
796-
self.arraysize,
797-
self.connection.use_cloud_fetch,
798-
)
799791

800792
if self.active_result_set.is_staging_operation:
801793
self._handle_staging_operation(
@@ -930,7 +922,7 @@ def catalogs(self) -> "Cursor":
930922
self._check_not_closed()
931923
self._close_and_clear_active_result_set()
932924
self.active_result_set = self.backend.get_catalogs(
933-
session_handle=self.connection.session._session_handle,
925+
session_id=self.connection.session.get_session_id(),
934926
max_rows=self.arraysize,
935927
max_bytes=self.buffer_size_bytes,
936928
cursor=self,
@@ -949,7 +941,7 @@ def schemas(
949941
self._check_not_closed()
950942
self._close_and_clear_active_result_set()
951943
self.active_result_set = self.backend.get_schemas(
952-
session_handle=self.connection.session._session_handle,
944+
session_id=self.connection.session.get_session_id(),
953945
max_rows=self.arraysize,
954946
max_bytes=self.buffer_size_bytes,
955947
cursor=self,
@@ -975,7 +967,7 @@ def tables(
975967
self._close_and_clear_active_result_set()
976968

977969
self.active_result_set = self.backend.get_tables(
978-
session_handle=self.connection.session._session_handle,
970+
session_id=self.connection.session.get_session_id(),
979971
max_rows=self.arraysize,
980972
max_bytes=self.buffer_size_bytes,
981973
cursor=self,
@@ -1003,7 +995,7 @@ def columns(
1003995
self._close_and_clear_active_result_set()
1004996

1005997
self.active_result_set = self.backend.get_columns(
1006-
session_handle=self.connection.session._session_handle,
998+
session_id=self.connection.session.get_session_id(),
1007999
max_rows=self.arraysize,
10081000
max_bytes=self.buffer_size_bytes,
10091001
cursor=self,

src/databricks/sql/result_set.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def __init__(
109109
super().__init__(connection, thrift_client, arraysize, buffer_size_bytes)
110110

111111
# Initialize ThriftResultSet-specific attributes
112-
self.command_id = execute_response.command_handle
112+
self.command_id = execute_response.command_id
113113
self.op_state = execute_response.status
114114
self.has_been_closed_server_side = execute_response.has_been_closed_server_side
115115
self.has_more_rows = execute_response.has_more_rows
@@ -127,7 +127,7 @@ def __init__(
127127

128128
def _fill_results_buffer(self):
129129
results, has_more_rows = self.backend.fetch_results(
130-
op_handle=self.command_id,
130+
command_id=self.command_id,
131131
max_rows=self.arraysize,
132132
max_bytes=self.buffer_size_bytes,
133133
expected_row_start_offset=self._next_row_index,

tests/unit/test_client.py

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ def test_closing_result_set_with_closed_connection_soft_closes_commands(self):
133133

134134
result_set = ThriftResultSet(
135135
connection=mock_connection,
136-
backend=mock_backend,
137136
execute_response=Mock(),
138137
thrift_client=mock_backend,
139138
)
@@ -582,69 +581,71 @@ def test_cursor_context_manager_handles_exit_exception(self):
582581
"""Test that cursor's context manager handles exceptions during __exit__."""
583582
mock_backend = Mock()
584583
mock_connection = Mock()
585-
584+
586585
cursor = client.Cursor(mock_connection, mock_backend)
587586
original_close = cursor.close
588587
cursor.close = Mock(side_effect=Exception("Test error during close"))
589-
588+
590589
try:
591590
with cursor:
592591
raise ValueError("Test error inside context")
593592
except ValueError:
594593
pass
595-
594+
596595
cursor.close.assert_called_once()
597596

598597
def test_connection_close_handles_cursor_close_exception(self):
599598
"""Test that _close handles exceptions from cursor.close() properly."""
600599
cursors_closed = []
601-
600+
602601
def mock_close_with_exception():
603602
cursors_closed.append(1)
604603
raise Exception("Test error during close")
605-
604+
606605
cursor1 = Mock()
607606
cursor1.close = mock_close_with_exception
608-
607+
609608
def mock_close_normal():
610609
cursors_closed.append(2)
611-
610+
612611
cursor2 = Mock()
613612
cursor2.close = mock_close_normal
614-
613+
615614
mock_backend = Mock()
616615
mock_session_handle = Mock()
617-
616+
618617
try:
619618
for cursor in [cursor1, cursor2]:
620619
try:
621620
cursor.close()
622621
except Exception:
623622
pass
624-
623+
625624
mock_backend.close_session(mock_session_handle)
626625
except Exception as e:
627626
self.fail(f"Connection close should handle exceptions: {e}")
628-
629-
self.assertEqual(cursors_closed, [1, 2], "Both cursors should have close called")
627+
628+
self.assertEqual(
629+
cursors_closed, [1, 2], "Both cursors should have close called"
630+
)
630631

631632
def test_resultset_close_handles_cursor_already_closed_error(self):
632633
"""Test that ResultSet.close() handles CursorAlreadyClosedError properly."""
633634
result_set = client.ThriftResultSet.__new__(client.ThriftResultSet)
634635
result_set.backend = Mock()
635-
result_set.backend.CLOSED_OP_STATE = 'CLOSED'
636+
result_set.backend.CLOSED_OP_STATE = "CLOSED"
636637
result_set.connection = Mock()
637638
result_set.connection.open = True
638-
result_set.op_state = 'RUNNING'
639+
result_set.op_state = "RUNNING"
639640
result_set.has_been_closed_server_side = False
640641
result_set.command_id = Mock()
641642

642643
class MockRequestError(Exception):
643644
def __init__(self):
644645
self.args = ["Error message", CursorAlreadyClosedError()]
645-
646+
646647
result_set.backend.close_command.side_effect = MockRequestError()
647-
648+
648649
original_close = client.ResultSet.close
649650
try:
650651
try:
@@ -660,11 +661,13 @@ def __init__(self):
660661
finally:
661662
result_set.has_been_closed_server_side = True
662663
result_set.op_state = result_set.backend.CLOSED_OP_STATE
663-
664-
result_set.backend.close_command.assert_called_once_with(result_set.command_id)
665-
664+
665+
result_set.backend.close_command.assert_called_once_with(
666+
result_set.command_id
667+
)
668+
666669
assert result_set.has_been_closed_server_side is True
667-
670+
668671
assert result_set.op_state == result_set.backend.CLOSED_OP_STATE
669672
finally:
670673
pass

0 commit comments

Comments
 (0)