// 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 batchUpdateSpaceSortNumber = `-- name: BatchUpdateSpaceSortNumber :batchexec UPDATE space_member SET sort_number = $1 WHERE user_id = $2 AND space_id = $3 ` type BatchUpdateSpaceSortNumberBatchResults struct { br pgx.BatchResults tot int closed bool } type BatchUpdateSpaceSortNumberParams struct { SortNumber int32 UserID int64 SpaceID int64 } // 更新空间顺序 func (q *Queries) BatchUpdateSpaceSortNumber(ctx context.Context, arg []BatchUpdateSpaceSortNumberParams) *BatchUpdateSpaceSortNumberBatchResults { batch := &pgx.Batch{} for _, a := range arg { vals := []interface{}{ a.SortNumber, a.UserID, a.SpaceID, } batch.Queue(batchUpdateSpaceSortNumber, vals...) } br := q.db.SendBatch(ctx, batch) return &BatchUpdateSpaceSortNumberBatchResults{br, len(arg), false} } func (b *BatchUpdateSpaceSortNumberBatchResults) 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 *BatchUpdateSpaceSortNumberBatchResults) Close() error { b.closed = true return b.br.Close() }