Skip to content

Commit 9ae132d

Browse files
committed
fix: query cancellation leads to null results being cached (#6927)
* fix: query cancellation leads to null results being cached * fix unit tests and lint failures * fix some more instances
1 parent 5ed8791 commit 9ae132d

25 files changed

+88
-18
lines changed

.golangci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ linters:
4747
- unused
4848
- usestdlibvars
4949
- whitespace
50+
- rowserrcheck
5051

5152
linters-settings:
5253
depguard:

admin/provisioner/clickhousestatic/provisioner_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ func TestClickHouseStatic(t *testing.T) {
7474
require.NoError(t, err)
7575
require.Equal(t, count, 1)
7676
}
77+
require.NoError(t, err)
7778
rows.Close()
7879

7980
// Get the name of the first connection's database
@@ -93,6 +94,7 @@ func TestClickHouseStatic(t *testing.T) {
9394
for rows.Next() {
9495
require.Fail(t, "unexpected visible table in information schema")
9596
}
97+
require.NoError(t, err)
9698
rows.Close()
9799

98100
// Deprovision the resources

runtime/drivers/clickhouse/olap.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,10 @@ func (c *connection) RenameTable(ctx context.Context, oldName, newName string) e
479479
return err
480480
}
481481
}
482+
err = res.Err()
483+
if err != nil {
484+
return err
485+
}
482486
res.Close()
483487
engineFull = strings.ReplaceAll(engineFull, localTableName(oldName), safelocalTableName(newName))
484488

@@ -535,6 +539,10 @@ func (c *connection) renameView(ctx context.Context, oldName, newName, onCluster
535539
return err
536540
}
537541
}
542+
err = res.Err()
543+
if err != nil {
544+
return err
545+
}
538546
res.Close()
539547

540548
// create new view
@@ -735,6 +743,10 @@ func (c *connection) columnClause(ctx context.Context, table string) (string, er
735743
columnClause.WriteString(" ")
736744
columnClause.WriteString(typ)
737745
}
746+
err = res.Err()
747+
if err != nil {
748+
return "", err
749+
}
738750
columnClause.WriteRune(')')
739751
return columnClause.String(), nil
740752
}
@@ -838,6 +850,10 @@ func (c *connection) getTableEngine(ctx context.Context, name string) (string, e
838850
return "", err
839851
}
840852
}
853+
err = res.Err()
854+
if err != nil {
855+
return "", err
856+
}
841857
return engine, nil
842858
}
843859

@@ -860,6 +876,10 @@ func (c *connection) getTablePartitions(ctx context.Context, name string) ([]str
860876
}
861877
partitions = append(partitions, part)
862878
}
879+
err = res.Err()
880+
if err != nil {
881+
return nil, err
882+
}
863883
return partitions, nil
864884
}
865885

runtime/drivers/clickhouse/olap_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ func testInsertTableAsSelect_WithAppend(t *testing.T, olap drivers.OLAPStore) {
194194
require.NoError(t, res.Scan(&r.ID, &r.Planet))
195195
result = append(result, r)
196196
}
197+
require.NoError(t, err)
197198

198199
expected := []struct {
199200
ID int
@@ -258,6 +259,7 @@ func testInsertTableAsSelect_WithMerge(t *testing.T, olap drivers.OLAPStore) {
258259
require.NoError(t, res.Scan(&r.ID, &r.Value))
259260
result = append(result, r)
260261
}
262+
require.NoError(t, err)
261263

262264
expected := map[int]string{
263265
0: "insert",
@@ -328,6 +330,7 @@ func testInsertTableAsSelect_WithPartitionOverwrite(t *testing.T, olap drivers.O
328330
require.NoError(t, res.Scan(&r.ID, &r.Value))
329331
result = append(result, r)
330332
}
333+
require.NoError(t, err)
331334

332335
expected := []struct {
333336
ID int
@@ -394,6 +397,7 @@ func testInsertTableAsSelect_WithPartitionOverwrite_DatePartition(t *testing.T,
394397
require.NoError(t, res.Scan(&r.DT, &r.Value))
395398
result = append(result, r)
396399
}
400+
require.NoError(t, err)
397401

398402
expected := []struct {
399403
DT string

runtime/drivers/druid/druid_container_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ func testTimeFloor(t *testing.T, olap drivers.OLAPStore) {
179179
require.Equal(t, 15, tm.Minute())
180180
count += 1
181181
}
182+
require.NoError(t, rows.Err())
182183
require.Equal(t, 9, count)
183184
}
184185

runtime/drivers/duckdb/model_executor_https_self_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,5 +100,6 @@ func TestHTTPToDuckDBTransfer(t *testing.T) {
100100
require.NoError(t, err)
101101
require.Equal(t, 3, count)
102102
}
103+
require.NoError(t, res.Err())
103104
require.NoError(t, res.Close())
104105
}

runtime/drivers/duckdb/olap_crud_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ func Test_connection_InsertTableAsSelect_WithMergeStrategy(t *testing.T) {
198198
require.NoError(t, res.Scan(&r.Range, &r.Strategy))
199199
results = append(results, r)
200200
}
201+
require.NoError(t, res.Err())
201202
require.NoError(t, res.Close())
202203

203204
exptected := []struct {

runtime/drivers/duckdb/transporter_mysql_to_duckDB_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ func allMySQLDataTypesTest(t *testing.T, db *sql.DB, dsn string) {
129129
require.NoError(t, err)
130130
require.Equal(t, count, 2)
131131
}
132+
require.NoError(t, res.Err())
132133
require.NoError(t, res.Close())
133134
require.NoError(t, to.Close())
134135
}
@@ -180,6 +181,7 @@ func mysqlToDuckDB(t *testing.T, dsn string) {
180181
require.NoError(t, err)
181182
require.Equal(t, 2, count)
182183
}
184+
require.NoError(t, res.Err())
183185
require.NoError(t, res.Close())
184186
tbl, err := olap.InformationSchema().Lookup(context.Background(), "", "", "sink")
185187
require.NoError(t, err)

runtime/drivers/duckdb/transporter_postgres_to_duckDB_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ func allDataTypesTest(t *testing.T, db *sql.DB, dbURL string) {
9090
require.NoError(t, err)
9191
require.Equal(t, 1, count)
9292
}
93+
require.NoError(t, res.Err())
9394
require.NoError(t, res.Close())
9495
require.NoError(t, to.Close())
9596
}
@@ -141,6 +142,7 @@ func pgxToDuckDB(t *testing.T, pgdb *sql.DB, dbURL string) {
141142
require.NoError(t, err)
142143
require.Equal(t, 1, count)
143144
}
145+
require.NoError(t, res.Err())
144146
require.NoError(t, res.Close())
145147

146148
// ingest some more data in postges
@@ -165,6 +167,7 @@ func pgxToDuckDB(t *testing.T, pgdb *sql.DB, dbURL string) {
165167
require.NoError(t, err)
166168
require.Equal(t, 2, count)
167169
}
170+
require.NoError(t, res.Err())
168171
require.NoError(t, res.Close())
169172

170173
require.NoError(t, duckDB.Close())

runtime/drivers/duckdb/transporter_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ mum,8.2`)
195195
for rows.Next() {
196196
colCount++
197197
}
198+
require.NoError(t, rows.Err())
198199
require.NoError(t, rows.Close())
199200
require.Equal(t, test.colCount, colCount)
200201
})
@@ -438,6 +439,7 @@ func TestIterativeParquetIngestionWithVariableSchema(t *testing.T) {
438439
for rows.Next() {
439440
colCount++
440441
}
442+
require.NoError(t, rows.Err())
441443
require.NoError(t, rows.Close())
442444
require.Equal(t, test.colCount, colCount)
443445
})
@@ -586,6 +588,7 @@ func TestIterativeJSONIngestionWithVariableSchema(t *testing.T) {
586588
for rows.Next() {
587589
colCount++
588590
}
591+
require.NoError(t, rows.Err())
589592
require.NoError(t, rows.Close())
590593
require.Equal(t, test.colCount, colCount)
591594
})

0 commit comments

Comments
 (0)