sqlite: check for no rows
1 file changed, 11 insertions(+), 8 deletions(-)
M internal/storage/sqlite/reader.go → internal/storage/sqlite/reader.go
@@ -66,16 +66,17 @@ } var unixTime int64 var encoding string var content []byte + + r.log.Debug("querying db for file", "filename", filename) rows, err := r.queries.getFile.Query(filename) if err != nil { - if err == sql.ErrNoRows { - return nil, nil - } - return nil, errors.WithMessage(err, "querying database") } + defer rows.Close() + count := 0 for rows.Next() { + count += 1 err = rows.Scan( &file.ContentType, &unixTime,@@ -85,15 +86,17 @@ &encoding, &content, ) if err != nil { - if err == sql.ErrNoRows { - return nil, nil - } - return nil, errors.WithMessage(err, "querying database") } file.LastModified = time.Unix(unixTime, 0) file.Encodings[encoding] = buffer.NewBuffer(content) + } + if count == 0 { + return nil, nil + } + if err := rows.Err(); err != nil { + return nil, errors.WithMessage(err, "error iterating rows") } return file, nil