Skip to content

Commit

Permalink
fix: incorrect error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
alnr committed Mar 17, 2023
1 parent ec9229d commit 6435ef0
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 5 deletions.
18 changes: 15 additions & 3 deletions dialect_cockroach.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package pop

import (
"bytes"
"errors"
"database/sql"
"fmt"
"io"
"net/url"
Expand Down Expand Up @@ -90,12 +90,18 @@ func (p *cockroach) Create(c *Connection, model *Model, cols columns.Columns) er
}
defer rows.Close()
if !rows.Next() {
return errors.New("named insert: no rows")
if err := rows.Err(); err != nil {
return fmt.Errorf("named insert: next: %w", err)
}
return fmt.Errorf("named insert: %w", sql.ErrNoRows)
}
var id interface{}
if err := rows.Scan(&id); err != nil {
return fmt.Errorf("named insert: scan: %w", err)
}
if err := rows.Close(); err != nil {
return fmt.Errorf("named insert: close: %w", err)
}
model.setID(id)
return nil

Expand All @@ -121,12 +127,18 @@ func (p *cockroach) Create(c *Connection, model *Model, cols columns.Columns) er
}
defer rows.Close()
if !rows.Next() {
return errors.New("named insert: no rows")
if err := rows.Err(); err != nil {
return fmt.Errorf("named insert: next: %w", err)
}
return fmt.Errorf("named insert: %w", sql.ErrNoRows)
}
var id uuid.UUID
if err := rows.Scan(&id); err != nil {
return fmt.Errorf("named insert: scan: %w", err)
}
if err := rows.Close(); err != nil {
return fmt.Errorf("named insert: close: %w", err)
}
model.setID(id)
return nil
}
Expand Down
10 changes: 8 additions & 2 deletions dialect_postgresql.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package pop

import (
"errors"
"database/sql"
"fmt"
"io"
"net/url"
Expand Down Expand Up @@ -73,12 +73,18 @@ func (p *postgresql) Create(c *Connection, model *Model, cols columns.Columns) e
}
defer rows.Close()
if !rows.Next() {
return errors.New("named insert: no rows")
if err := rows.Err(); err != nil {
return fmt.Errorf("named insert: next: %w", err)
}
return fmt.Errorf("named insert: %w", sql.ErrNoRows)
}
var id interface{}
if err := rows.Scan(&id); err != nil {
return fmt.Errorf("named insert: scan: %w", err)
}
if err := rows.Close(); err != nil {
return fmt.Errorf("named insert: close: %w", err)
}
model.setID(id)
return nil
}
Expand Down
3 changes: 3 additions & 0 deletions preload_associations.go
Original file line number Diff line number Diff line change
Expand Up @@ -491,6 +491,9 @@ func preloadManyToMany(tx *Connection, asoc *AssociationMetaInfo, mmi *ModelMeta
fkids = append(fkids, row[1])
}
}
if err := rows.Err(); err != nil {
return err
}

q := tx.Q()
q.eager = false
Expand Down

0 comments on commit 6435ef0

Please sign in to comment.