Files
zeekay 999d38466d rename: this fork is ours — datastore_connect
Imports read `datastore_connect`, distribution `datastore-connect`, so nothing has to
import another product's name to talk to Hanzo Datastore.

Cut from upstream 0.8.17 — the version this stack already ran — rather than from
upstream HEAD, so it is a PURE RENAME with no behaviour change. Forking from
HEAD would have dragged versions along with the name (connect alone jumped
0.8.17 -> 1.6.0, a major), which is a different and much riskier change wearing
a rename's clothes.

X-ClickHouse-* headers are untouched: they are wire protocol the server sends
and expects, and a different token shape from the module name.
2026-07-26 11:01:30 -07:00

40 lines
1.2 KiB
Python

from typing import Optional
from datastore_connect.datatypes.registry import get_from_name
from datastore_connect.driver.query import QueryResult
class QuerySummary:
summary = {}
def __init__(self, summary: Optional[dict] = None):
if summary is not None:
self.summary = summary
@property
def written_rows(self) -> int:
return int(self.summary.get('written_rows', 0))
def written_bytes(self) -> int:
return int(self.summary.get('written_bytes', 0))
def query_id(self) -> str:
return self.summary.get('query_id', '')
def as_query_result(self) -> QueryResult:
data = []
column_names = []
column_types = []
str_type = get_from_name('String')
int_type = get_from_name('Int64')
for key, value in self.summary.items():
column_names.append(key)
if value.isnumeric():
data.append(int(value))
column_types.append(int_type)
else:
data.append(value)
column_types.append(str_type)
return QueryResult([data], column_names=tuple(column_names), column_types=tuple(column_types))