Skip to content

Commit aae36c0

Browse files
authored
Merge pull request #676 from ydb-platform/result_set_index
Add index to resultsets
2 parents dbf4235 + f948e45 commit aae36c0

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

tests/query/test_query_session_pool.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ def test_oneshot_query_normal(self, pool: QuerySessionPool):
1717
res = pool.execute_with_retries("select 1;")
1818
assert len(res) == 1
1919

20+
def test_oneshot_query_result_set_index(self, pool: QuerySessionPool):
21+
res = pool.execute_with_retries("select 1; select 2; select 3")
22+
assert len(res) == 3
23+
indexes = [result_set.index for result_set in res]
24+
assert indexes == [0, 1, 2]
25+
2026
def test_oneshot_ddl_query(self, pool: QuerySessionPool):
2127
pool.execute_with_retries("create table Queen(key UInt64, PRIMARY KEY (key));")
2228
pool.execute_with_retries("drop table Queen;")

ydb/convert.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -352,16 +352,17 @@ def _unwrap_optionality(column):
352352

353353

354354
class _ResultSet(object):
355-
__slots__ = ("columns", "rows", "truncated", "snapshot")
355+
__slots__ = ("columns", "rows", "truncated", "snapshot", "index")
356356

357-
def __init__(self, columns, rows, truncated, snapshot=None):
357+
def __init__(self, columns, rows, truncated, snapshot=None, index=None):
358358
self.columns = columns
359359
self.rows = rows
360360
self.truncated = truncated
361361
self.snapshot = snapshot
362+
self.index = index
362363

363364
@classmethod
364-
def from_message(cls, message, table_client_settings=None, snapshot=None):
365+
def from_message(cls, message, table_client_settings=None, snapshot=None, index=None):
365366
rows = []
366367
# prepare column parsers before actuall parsing
367368
column_parsers = []
@@ -384,7 +385,7 @@ def from_message(cls, message, table_client_settings=None, snapshot=None):
384385
column_parser, unwrapped_type = column_info
385386
row[column.name] = column_parser(unwrapped_type, value, table_client_settings)
386387
rows.append(row)
387-
return cls(message.columns, rows, message.truncated, snapshot)
388+
return cls(message.columns, rows, message.truncated, snapshot, index)
388389

389390
@classmethod
390391
def lazy_from_message(cls, message, table_client_settings=None, snapshot=None):

ydb/query/base.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,11 @@ def wrap_execute_query_response(
208208
session._last_query_stats = response_pb.exec_stats
209209

210210
if response_pb.HasField("result_set"):
211-
return convert.ResultSet.from_message(response_pb.result_set, settings)
211+
return convert.ResultSet.from_message(
212+
response_pb.result_set,
213+
settings,
214+
index=response_pb.result_set_index,
215+
)
212216

213217
return None
214218

0 commit comments

Comments
 (0)