Documentation
¶
Overview ¶
Package db provides database access for gitgres: repos, refs, and Git objects stored in PostgreSQL. Schema and queries are in sql/; Go code is generated by sqlc (see Queries, ListRefs, ObjectRead, etc.) plus hand-written connection and helpers.
Library usage: open a pool with OpenPool, then create Queries with New(pool). Use GetOrCreateRepo or GetRepo to resolve a repo name to an ID. For a storage.Storer implementation that uses this package, see internal/storer.
Index ¶
- func OpenPool(ctx context.Context, connString string) (*pgxpool.Pool, error)
- type DBTX
- type ListRefsRow
- type Object
- type ObjectReadParams
- type ObjectReadRow
- type ObjectWriteParams
- type Queries
- func (q *Queries) GetOrCreateRepo(ctx context.Context, name string) (int32, error)
- func (q *Queries) GetRepo(ctx context.Context, name string) (int32, error)
- func (q *Queries) ListObjectOids(ctx context.Context, repoID int32) ([][]byte, error)
- func (q *Queries) ListObjectOidsCount(ctx context.Context, repoID int32) (int32, error)
- func (q *Queries) ListObjectOidsPrealloc(ctx context.Context, repoID int32) ([][]byte, error)
- func (q *Queries) ListRefs(ctx context.Context, repoID int32) ([]ListRefsRow, error)
- func (q *Queries) ListRefsCount(ctx context.Context, repoID int32) (int32, error)
- func (q *Queries) ListRefsPrealloc(ctx context.Context, repoID int32) ([]ListRefsRow, error)
- func (q *Queries) ObjectRead(ctx context.Context, arg ObjectReadParams) (ObjectReadRow, error)
- func (q *Queries) ObjectWrite(ctx context.Context, arg ObjectWriteParams) (interface{}, error)
- func (q *Queries) RefDelete(ctx context.Context, arg RefDeleteParams) error
- func (q *Queries) RefInsert(ctx context.Context, arg RefInsertParams) error
- func (q *Queries) RefInsertSymbolic(ctx context.Context, arg RefInsertSymbolicParams) error
- func (q *Queries) RefSetSymbolic(ctx context.Context, arg RefSetSymbolicParams) error
- func (q *Queries) RefUpdate(ctx context.Context, arg RefUpdateParams) (interface{}, error)
- func (q *Queries) RefsHasHEAD(ctx context.Context, repoID int32) (int32, error)
- func (q *Queries) WithTx(tx pgx.Tx) *Queries
- type Ref
- type RefDeleteParams
- type RefInsertParams
- type RefInsertSymbolicParams
- type RefSetSymbolicParams
- type RefUpdateParams
- type Repository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ListRefsRow ¶
type ObjectReadParams ¶
type ObjectReadRow ¶
type ObjectWriteParams ¶
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) GetOrCreateRepo ¶
func (*Queries) ListObjectOids ¶
func (*Queries) ListObjectOidsCount ¶
func (*Queries) ListObjectOidsPrealloc ¶
ListObjectOidsPrealloc returns object OIDs for the repo. Semantically equivalent to ListObjectOids.
func (*Queries) ListRefsCount ¶
func (*Queries) ListRefsPrealloc ¶
ListRefsPrealloc returns refs for the repo. Semantically equivalent to ListRefs.
func (*Queries) ObjectRead ¶
func (q *Queries) ObjectRead(ctx context.Context, arg ObjectReadParams) (ObjectReadRow, error)
func (*Queries) ObjectWrite ¶
func (q *Queries) ObjectWrite(ctx context.Context, arg ObjectWriteParams) (interface{}, error)
func (*Queries) RefDelete ¶
func (q *Queries) RefDelete(ctx context.Context, arg RefDeleteParams) error
func (*Queries) RefInsert ¶
func (q *Queries) RefInsert(ctx context.Context, arg RefInsertParams) error
Remote-helper push: direct ref write/delete (no reflog, no CAS)
func (*Queries) RefInsertSymbolic ¶
func (q *Queries) RefInsertSymbolic(ctx context.Context, arg RefInsertSymbolicParams) error
func (*Queries) RefSetSymbolic ¶
func (q *Queries) RefSetSymbolic(ctx context.Context, arg RefSetSymbolicParams) error
func (*Queries) RefUpdate ¶
func (q *Queries) RefUpdate(ctx context.Context, arg RefUpdateParams) (interface{}, error)
func (*Queries) RefsHasHEAD ¶
type RefDeleteParams ¶
type RefInsertParams ¶
type RefInsertSymbolicParams ¶
type RefSetSymbolicParams ¶
type RefUpdateParams ¶
type Repository ¶
type Repository struct {
ID int32 `json:"id"`
Name string `json:"name"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}