Skip to content

Commit 69d4d02

Browse files
committed
Handle null array scalars in row.
1 parent 5e53432 commit 69d4d02

2 files changed

Lines changed: 5 additions & 6 deletions

File tree

graphique/interface.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,9 @@ def row(self, info: Info, index: int = 0) -> dict:
9797
table = self.table.select(*names)[index:][:1].cache()
9898
row = {}
9999
for name in table.columns:
100-
if isinstance(table[name], ibis.expr.types.ArrayColumn):
101-
row[name] = Column.cast(table[name].first().unnest())
102-
else:
103-
(row[name],) = table[name].to_list()
100+
(row[name],) = table[name].to_list()
101+
if isinstance(row[name], list):
102+
row[name] = Column.cast(table[name].unnest())
104103
return row
105104

106105
def filter(self, info: Info, where: Expression | None = None, **queries: Filter) -> Self:

tests/test_models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ def test_array(executor):
134134
assert data == {"columns": {"array": {"count": 1, "type": "array<int32>"}}}
135135
data = executor("{ row { array { ... on IntColumn { values } } } }")
136136
assert data == {"row": {"array": {"values": [0, 1, 2]}}}
137-
data = executor("{ row(index: -1) { array { ... on IntColumn { values } } } }")
138-
assert data == {"row": {"array": {"values": []}}}
137+
data = executor("{ row(index: -1) { array { type } } }")
138+
assert data == {"row": {"array": None}}
139139

140140
data = executor("""{ project(columns: {array: {index: [{name: "array"}, {value: 1}]}, alias: "list"}) {
141141
column(name: "list") { ... on BigIntColumn { values } } } }""")

0 commit comments

Comments
 (0)