Skip to content

Commit 2d7dd86

Browse files
authored
Fix TimeDimension group by (#82)
1 parent de0f9a1 commit 2d7dd86

File tree

4 files changed

+21
-0
lines changed

4 files changed

+21
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
kind: Fixes
2+
body: Fix TimeDimension in group_by
3+
time: 2025-04-14T20:40:39.754768-05:00

dbtsl/api/adbc/protocol.py

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ def _serialize_val(cls, val: Any) -> str:
4646
g = f'Dimension("{val.name}")'
4747
elif val.type == GroupByType.ENTITY:
4848
g = f'Entity("{val.name}")'
49+
else: # val.type == GroupByType.TIME_DIMENSION
50+
return f'TimeDimension("{val.name}", "{val.grain}")'
4951
if val.grain:
5052
grain_str = val.grain.lower()
5153
g += f'.grain("{grain_str}")'

dbtsl/api/shared/query_params.py

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class GroupByType(Enum):
77
"""The type of a group_by, i.e a dimension or an entity."""
88

99
DIMENSION = "dimension"
10+
TIME_DIMENSION = "time_dimension"
1011
ENTITY = "entity"
1112

1213

tests/api/adbc/test_protocol.py

+15
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,21 @@ def test_serialize_val_OrderByGroupBy() -> None:
3131
)
3232

3333

34+
def test_serialize_time_dimension_group_by() -> None:
35+
assert (
36+
ADBCProtocol._serialize_val(
37+
GroupByParam(name="time_dim", type=GroupByType.TIME_DIMENSION, grain="month"),
38+
)
39+
== 'TimeDimension("time_dim", "month")'
40+
)
41+
assert (
42+
ADBCProtocol._serialize_val(
43+
GroupByParam(name="time_dim", type=GroupByType.TIME_DIMENSION, grain="week"),
44+
)
45+
== 'TimeDimension("time_dim", "week")'
46+
)
47+
48+
3449
def test_serialize_query_params_metrics() -> None:
3550
params = ADBCProtocol._serialize_params_dict({"metrics": ["a", "b"]}, ["metrics"])
3651

0 commit comments

Comments
 (0)