Skip to content

Commit 816ae51

Browse files
committed
fix: changes for statistics
1 parent 85287a6 commit 816ae51

2 files changed

Lines changed: 42 additions & 2 deletions

File tree

src/query_farm_flight_server/parameter_types.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,43 @@ class ChangeColumnType(AlterBase):
190190
_validate_column_schema = field_validator("column_schema", mode="before")(deserialize_schema)
191191

192192

193+
class ColumnStatisticsStringResults(BaseModel):
194+
max: str
195+
min: str
196+
197+
198+
class ColumnStatisticsNumericValueResult(BaseModel):
199+
boolean: bool | None = None
200+
tinyint: int | None = None
201+
smallint: int | None = None
202+
integer: int | None = None
203+
bigint: int | None = None
204+
utinyint: int | None = None
205+
usmallint: int | None = None
206+
uinteger: int | None = None
207+
ubigint: int | None = None
208+
hugeint_high: int | None = None
209+
hugeint_low: int | None = None
210+
float_: float | None = None
211+
double_: float | None = None
212+
213+
214+
class ColumnStatisticsNumericResults(BaseModel):
215+
has_min: bool
216+
has_max: bool
217+
218+
min: ColumnStatisticsNumericValueResult | None = None
219+
max: ColumnStatisticsNumericValueResult | None = None
220+
221+
222+
class ColumnStatisticsResult(BaseModel):
223+
has_null: bool
224+
has_not_null: bool
225+
distinct_count: int
226+
string_stats: ColumnStatisticsStringResults | None = None
227+
numeric_stats: ColumnStatisticsNumericResults | None = None
228+
229+
193230
class ColumnStatistics(BaseModel):
194231
model_config = ConfigDict(arbitrary_types_allowed=True) # for Pydantic v2
195232
flight_descriptor: flight.FlightDescriptor

src/query_farm_flight_server/server.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,10 @@ def __init__(
242242
False,
243243
),
244244
ActionType.COLUMN_STATISTICS: ActionHandlerSpec(
245-
self.action_column_statistics, parameter_types.column_statistics, None, False
245+
self.action_column_statistics,
246+
parameter_types.column_statistics,
247+
lambda x: x.model_dump(),
248+
False,
246249
),
247250
ActionType.CREATE_TABLE: ActionHandlerSpec(
248251
self.action_create_table,
@@ -445,7 +448,7 @@ def action_column_statistics(
445448
*,
446449
context: CallContext[AccountType, TokenType],
447450
parameters: parameter_types.ColumnStatistics,
448-
) -> dict[str, Any]:
451+
) -> parameter_types.ColumnStatisticsResult:
449452
self._unimplemented_action(ActionType.COLUMN_STATISTICS)
450453

451454
def action_drop_not_null(

0 commit comments

Comments
 (0)