CREATE TABLE "accounts" (
id UUID PRIMARY KEY,
username VARCHAR(255) NOT NULL,
email TEXT NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL
);
Queries used
// both queries were used in testing
queryv1 := `SELECT * FROM "accounts" WHERE id=$1 OR username=$2 OR email=$3`
queryv2 := `SELECT id,username,email,created_at,updated_at FROM "accounts" WHERE id=$1 OR username=$2 OR email=$3`
Code being ran
type storage struct {
Conn *pgx.Conn
}
func (s *storage) Find(ctx context.Context, id uuid.UUID, email, username string) (AccountModel, error) {
rows, err := s.Conn.Query(ctx, queryv1, id, username, email) // both queryv1 and queryv2 was tried here
if err != nil {
return AccountModel{}, err
}
// doesn't work with
// RowToStructByName
// RowToStructByNameLax
// RowToStructByPos
m, err := pgx.CollectOneRow(rows, pgx.RowToStructByName[AccountModel])
if err != nil {
return AccountModel{}, err
}
return m, nil
}
Error Message
"struct doesn't have corresponding row field id"
Expected behavior
Should expect the id field to be excluded in the returned struct.
When I include the id field it works and throws no error.
I've looked through all previous error post opened and the solutions linked there have not worked.
Version
Go: go version go1.22.5 windows/amd64
PostgreSQL: PostgreSQL 16.1, compiled by Visual C++ build 1937, 64-bit
Your query returns a column "id" but you don't have anywhere to scan it. Every column returned from a query must have a destination for the RowToStruct* functions.
pgx throwing "struct doesn't have corresponding row field" when attempting to use struct tag
db:"-"
with the following functions:Code Im working with Model
Postgres Table
Queries used
Code being ran
Error Message
Expected behavior Should expect the id field to be excluded in the returned struct. When I include the id field it works and throws no error. I've looked through all previous error post opened and the solutions linked there have not worked.
Version