Skip to content

Commit 7ef7f76

Browse files
authored
adjusted handling of zero-rows results (#121)
1 parent 7f599d2 commit 7ef7f76

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

dataframe_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func TestNoRowsFrame(t *testing.T) {
4040
},
4141
Rows: [][]any{},
4242
},
43-
expectedFieldCount: 0,
43+
expectedFieldCount: 2,
4444
},
4545
{
4646
name: "empty wide",
@@ -135,7 +135,7 @@ func TestNoRowsFrame(t *testing.T) {
135135
},
136136
Rows: [][]any{},
137137
},
138-
expectedFieldCount: 0,
138+
expectedFieldCount: 2,
139139
},
140140
{
141141
name: "trace",
@@ -151,7 +151,7 @@ func TestNoRowsFrame(t *testing.T) {
151151
},
152152
Rows: [][]any{},
153153
},
154-
expectedFieldCount: 0,
154+
expectedFieldCount: 1,
155155
},
156156
}
157157

query.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,19 @@ func getFrames(rows *sql.Rows, limit int64, converters []sqlutil.Converter, fill
131131
if err != nil {
132132
return nil, err
133133
}
134-
if count == 0 {
135-
return nil, ErrorNoResults
136-
}
134+
135+
// the handling of zero-rows differs between various "format"s.
136+
zeroRows := count == 0
137137

138138
frame.Meta.ExecutedQueryString = query.RawSQL
139139
frame.Meta.PreferredVisualization = data.VisTypeGraph
140140

141141
switch query.Format {
142142
case FormatOptionMulti:
143+
if zeroRows {
144+
return nil, ErrorNoResults
145+
}
146+
143147
if frame.TimeSeriesSchema().Type == data.TimeSeriesTypeLong {
144148

145149
err = fixFrameForLongToMulti(frame)
@@ -161,6 +165,10 @@ func getFrames(rows *sql.Rows, limit int64, converters []sqlutil.Converter, fill
161165
frame.Meta.PreferredVisualization = data.VisTypeTrace
162166
// Format as timeSeries
163167
default:
168+
if zeroRows {
169+
return nil, ErrorNoResults
170+
}
171+
164172
if frame.TimeSeriesSchema().Type == data.TimeSeriesTypeLong {
165173
frame, err = data.LongToWide(frame, fillMode)
166174
if err != nil {

0 commit comments

Comments
 (0)