-
Notifications
You must be signed in to change notification settings - Fork 1k
Expand file tree
/
Copy pathquery.sql.go
More file actions
85 lines (75 loc) · 1.52 KB
/
query.sql.go
File metadata and controls
85 lines (75 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: query.sql
package querytest
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const createProduct = `-- name: CreateProduct :one
INSERT INTO products (name, price, tags)
VALUES ($1, $2, $3)
RETURNING id, name, price, tags
`
type CreateProductParams struct {
Name string
Price pgtype.Numeric
Tags []string
}
func (q *Queries) CreateProduct(ctx context.Context, arg CreateProductParams) (Product, error) {
row := q.db.QueryRow(ctx, createProduct, arg.Name, arg.Price, arg.Tags)
var i Product
err := row.Scan(
&i.ID,
&i.Name,
&i.Price,
&i.Tags,
)
return i, err
}
const getProduct = `-- name: GetProduct :one
SELECT id, name, price, tags
FROM products
WHERE id = $1
`
func (q *Queries) GetProduct(ctx context.Context, id int64) (Product, error) {
row := q.db.QueryRow(ctx, getProduct, id)
var i Product
err := row.Scan(
&i.ID,
&i.Name,
&i.Price,
&i.Tags,
)
return i, err
}
const listProducts = `-- name: ListProducts :many
SELECT id, name, price, tags
FROM products
ORDER BY id
`
func (q *Queries) ListProducts(ctx context.Context) ([]Product, error) {
rows, err := q.db.Query(ctx, listProducts)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Product
for rows.Next() {
var i Product
if err := rows.Scan(
&i.ID,
&i.Name,
&i.Price,
&i.Tags,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}