Documentation
¶
Index ¶
- type Adapter
- type CreateNarParams
- type DBTX
- type Nar
- type NarInfo
- type Querier
- type Queries
- func (q *Queries) CreateNar(ctx context.Context, arg CreateNarParams) (sql.Result, error)
- func (q *Queries) CreateNarInfo(ctx context.Context, hash string) (sql.Result, error)
- func (q *Queries) DeleteNarByHash(ctx context.Context, hash string) (int64, error)
- func (q *Queries) DeleteNarByID(ctx context.Context, id int64) (int64, error)
- func (q *Queries) DeleteNarInfoByHash(ctx context.Context, hash string) (int64, error)
- func (q *Queries) DeleteNarInfoByID(ctx context.Context, id int64) (int64, error)
- func (q *Queries) GetLeastUsedNars(ctx context.Context, fileSize uint64) ([]Nar, error)
- func (q *Queries) GetNarByHash(ctx context.Context, hash string) (Nar, error)
- func (q *Queries) GetNarByID(ctx context.Context, id int64) (Nar, error)
- func (q *Queries) GetNarInfoByHash(ctx context.Context, hash string) (NarInfo, error)
- func (q *Queries) GetNarInfoByID(ctx context.Context, id int64) (NarInfo, error)
- func (q *Queries) GetNarTotalSize(ctx context.Context) (int64, error)
- func (q *Queries) TouchNar(ctx context.Context, hash string) (int64, error)
- func (q *Queries) TouchNarInfo(ctx context.Context, hash string) (int64, error)
- func (q *Queries) WithTx(tx *sql.Tx) *Queries
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adapter ¶
type Adapter struct {
*Queries
// contains filtered or unexported fields
}
Adapter wraps mysqldb.Queries and provides the DB() method.
type CreateNarParams ¶
type Querier ¶
type Querier interface {
//CreateNar
//
// INSERT INTO nars (
// narinfo_id, hash, compression, `query`, file_size
// ) VALUES (
// ?, ?, ?, ?, ?
// )
CreateNar(ctx context.Context, arg CreateNarParams) (sql.Result, error)
//CreateNarInfo
//
// INSERT INTO narinfos (
// hash
// ) VALUES (
// ?
// )
CreateNarInfo(ctx context.Context, hash string) (sql.Result, error)
//DeleteNarByHash
//
// DELETE FROM nars
// WHERE hash = ?
DeleteNarByHash(ctx context.Context, hash string) (int64, error)
//DeleteNarByID
//
// DELETE FROM nars
// WHERE id = ?
DeleteNarByID(ctx context.Context, id int64) (int64, error)
//DeleteNarInfoByHash
//
// DELETE FROM narinfos
// WHERE hash = ?
DeleteNarInfoByHash(ctx context.Context, hash string) (int64, error)
//DeleteNarInfoByID
//
// DELETE FROM narinfos
// WHERE id = ?
DeleteNarInfoByID(ctx context.Context, id int64) (int64, error)
// NOTE: This query uses a correlated subquery which is not optimal for performance.
// The ideal implementation would use a window function (SUM OVER), but sqlc v1.30.0
// does not properly support filtering on window function results in subqueries.
//
// SELECT n1.id, n1.narinfo_id, n1.hash, n1.compression, n1.file_size, n1.created_at, n1.updated_at, n1.last_accessed_at, n1.query
// FROM nars n1
// WHERE (
// SELECT SUM(n2.file_size)
// FROM nars n2
// WHERE
// n2.last_accessed_at < n1.last_accessed_at
// OR (n2.last_accessed_at = n1.last_accessed_at AND n2.id <= n1.id)
// ) <= ?
GetLeastUsedNars(ctx context.Context, fileSize uint64) ([]Nar, error)
//GetNarByHash
//
// SELECT id, narinfo_id, hash, compression, file_size, created_at, updated_at, last_accessed_at, query
// FROM nars
// WHERE hash = ?
GetNarByHash(ctx context.Context, hash string) (Nar, error)
//GetNarByID
//
// SELECT id, narinfo_id, hash, compression, file_size, created_at, updated_at, last_accessed_at, query
// FROM nars
// WHERE id = ?
GetNarByID(ctx context.Context, id int64) (Nar, error)
//GetNarInfoByHash
//
// SELECT id, hash, created_at, updated_at, last_accessed_at
// FROM narinfos
// WHERE hash = ?
GetNarInfoByHash(ctx context.Context, hash string) (NarInfo, error)
//GetNarInfoByID
//
// SELECT id, hash, created_at, updated_at, last_accessed_at
// FROM narinfos
// WHERE id = ?
GetNarInfoByID(ctx context.Context, id int64) (NarInfo, error)
//GetNarTotalSize
//
// SELECT CAST(COALESCE(SUM(file_size), 0) AS SIGNED) AS total_size
// FROM nars
GetNarTotalSize(ctx context.Context) (int64, error)
//TouchNar
//
// UPDATE nars
// SET
// last_accessed_at = CURRENT_TIMESTAMP,
// updated_at = CURRENT_TIMESTAMP
// WHERE hash = ?
TouchNar(ctx context.Context, hash string) (int64, error)
//TouchNarInfo
//
// UPDATE narinfos
// SET
// last_accessed_at = CURRENT_TIMESTAMP,
// updated_at = CURRENT_TIMESTAMP
// WHERE hash = ?
TouchNarInfo(ctx context.Context, hash string) (int64, error)
}
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) CreateNar ¶
CreateNar
INSERT INTO nars (
narinfo_id, hash, compression, `query`, file_size
) VALUES (
?, ?, ?, ?, ?
)
func (*Queries) GetLeastUsedNars ¶
NOTE: This query uses a correlated subquery which is not optimal for performance. The ideal implementation would use a window function (SUM OVER), but sqlc v1.30.0 does not properly support filtering on window function results in subqueries.
SELECT n1.id, n1.narinfo_id, n1.hash, n1.compression, n1.file_size, n1.created_at, n1.updated_at, n1.last_accessed_at, n1.query
FROM nars n1
WHERE (
SELECT SUM(n2.file_size)
FROM nars n2
WHERE
n2.last_accessed_at < n1.last_accessed_at
OR (n2.last_accessed_at = n1.last_accessed_at AND n2.id <= n1.id)
) <= ?
func (*Queries) GetNarByHash ¶
GetNarByHash
SELECT id, narinfo_id, hash, compression, file_size, created_at, updated_at, last_accessed_at, query FROM nars WHERE hash = ?
func (*Queries) GetNarByID ¶
GetNarByID
SELECT id, narinfo_id, hash, compression, file_size, created_at, updated_at, last_accessed_at, query FROM nars WHERE id = ?
func (*Queries) GetNarInfoByHash ¶
GetNarInfoByHash
SELECT id, hash, created_at, updated_at, last_accessed_at FROM narinfos WHERE hash = ?
func (*Queries) GetNarInfoByID ¶
GetNarInfoByID
SELECT id, hash, created_at, updated_at, last_accessed_at FROM narinfos WHERE id = ?
func (*Queries) GetNarTotalSize ¶
GetNarTotalSize
SELECT CAST(COALESCE(SUM(file_size), 0) AS SIGNED) AS total_size FROM nars
func (*Queries) TouchNar ¶
TouchNar
UPDATE nars
SET
last_accessed_at = CURRENT_TIMESTAMP,
updated_at = CURRENT_TIMESTAMP
WHERE hash = ?
func (*Queries) TouchNarInfo ¶
TouchNarInfo
UPDATE narinfos
SET
last_accessed_at = CURRENT_TIMESTAMP,
updated_at = CURRENT_TIMESTAMP
WHERE hash = ?
Click to show internal directories.
Click to hide internal directories.