Files
workspace/code/allapp/allapp-go2/db/repo/batch.go
T
2026-02-25 17:31:09 +08:00

69 lines
1.4 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: batch.go
package repo
import (
"context"
"errors"
"github.com/jackc/pgx/v5"
)
var (
ErrBatchAlreadyClosed = errors.New("batch already closed")
)
const batchUpdateMoneyCategorySort = `-- name: BatchUpdateMoneyCategorySort :batchexec
UPDATE money_user_category
SET sort_number = $2
WHERE id = $1
`
type BatchUpdateMoneyCategorySortBatchResults struct {
br pgx.BatchResults
tot int
closed bool
}
type BatchUpdateMoneyCategorySortParams struct {
ID int64
SortNumber int32
}
func (q *Queries) BatchUpdateMoneyCategorySort(ctx context.Context, arg []BatchUpdateMoneyCategorySortParams) *BatchUpdateMoneyCategorySortBatchResults {
batch := &pgx.Batch{}
for _, a := range arg {
vals := []interface{}{
a.ID,
a.SortNumber,
}
batch.Queue(batchUpdateMoneyCategorySort, vals...)
}
br := q.db.SendBatch(ctx, batch)
return &BatchUpdateMoneyCategorySortBatchResults{br, len(arg), false}
}
func (b *BatchUpdateMoneyCategorySortBatchResults) Exec(f func(int, error)) {
defer b.br.Close()
for t := 0; t < b.tot; t++ {
if b.closed {
if f != nil {
f(t, ErrBatchAlreadyClosed)
}
continue
}
_, err := b.br.Exec()
if f != nil {
f(t, err)
}
}
}
func (b *BatchUpdateMoneyCategorySortBatchResults) Close() error {
b.closed = true
return b.br.Close()
}