sqlitedb

package
v0.6.0-rc3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

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 sqlitedb.Queries and provides the DB() method.

func NewAdapter

func NewAdapter(db *sql.DB) *Adapter

NewAdapter creates a new SQLite adapter.

func (*Adapter) DB

func (a *Adapter) DB() *sql.DB

DB returns the underlying database connection.

func (*Adapter) WithTx

func (a *Adapter) WithTx(tx *sql.Tx) *Adapter

WithTx returns a new Adapter with the queries scoped to the given transaction.

type CreateNarParams

type CreateNarParams struct {
	NarInfoID   int64
	Hash        string
	Compression string
	Query       string
	FileSize    uint64
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type Nar

type Nar struct {
	ID             int64
	NarInfoID      int64
	Hash           string
	Compression    string
	FileSize       uint64
	Query          string
	CreatedAt      time.Time
	UpdatedAt      sql.NullTime
	LastAccessedAt sql.NullTime
}

type NarInfo

type NarInfo struct {
	ID             int64
	Hash           string
	CreatedAt      time.Time
	UpdatedAt      sql.NullTime
	LastAccessedAt sql.NullTime
}

type Querier

type Querier interface {
	//CreateNar
	//
	//  INSERT INTO nars (
	//      narinfo_id, hash, compression, "query", file_size
	//  ) VALUES (
	//      ?, ?, ?, ?, ?
	//  )
	//  RETURNING id, narinfo_id, hash, compression, file_size, "query", created_at, updated_at, last_accessed_at
	CreateNar(ctx context.Context, arg CreateNarParams) (Nar, error)
	//CreateNarInfo
	//
	//  INSERT INTO narinfos (
	//      hash
	//  ) VALUES (
	//      ?
	//  )
	//  RETURNING id, hash, created_at, updated_at, last_accessed_at
	CreateNarInfo(ctx context.Context, hash string) (NarInfo, 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."query", n1.created_at, n1.updated_at, n1.last_accessed_at
	//  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, "query", created_at, updated_at, last_accessed_at
	//  FROM nars
	//  WHERE hash = ?
	GetNarByHash(ctx context.Context, hash string) (Nar, error)
	//GetNarByID
	//
	//  SELECT id, narinfo_id, hash, compression, file_size, "query", created_at, updated_at, last_accessed_at
	//  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 INTEGER) 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 New

func New(db DBTX) *Queries

func (*Queries) CreateNar

func (q *Queries) CreateNar(ctx context.Context, arg CreateNarParams) (Nar, error)

CreateNar

INSERT INTO nars (
    narinfo_id, hash, compression, "query", file_size
) VALUES (
    ?, ?, ?, ?, ?
)
RETURNING id, narinfo_id, hash, compression, file_size, "query", created_at, updated_at, last_accessed_at

func (*Queries) CreateNarInfo

func (q *Queries) CreateNarInfo(ctx context.Context, hash string) (NarInfo, error)

CreateNarInfo

INSERT INTO narinfos (
    hash
) VALUES (
    ?
)
RETURNING id, hash, created_at, updated_at, last_accessed_at

func (*Queries) DeleteNarByHash

func (q *Queries) DeleteNarByHash(ctx context.Context, hash string) (int64, error)

DeleteNarByHash

DELETE FROM nars
WHERE hash = ?

func (*Queries) DeleteNarByID

func (q *Queries) DeleteNarByID(ctx context.Context, id int64) (int64, error)

DeleteNarByID

DELETE FROM nars
WHERE id = ?

func (*Queries) DeleteNarInfoByHash

func (q *Queries) DeleteNarInfoByHash(ctx context.Context, hash string) (int64, error)

DeleteNarInfoByHash

DELETE FROM narinfos
WHERE hash = ?

func (*Queries) DeleteNarInfoByID

func (q *Queries) DeleteNarInfoByID(ctx context.Context, id int64) (int64, error)

DeleteNarInfoByID

DELETE FROM narinfos
WHERE id = ?

func (*Queries) GetLeastUsedNars

func (q *Queries) GetLeastUsedNars(ctx context.Context, fileSize uint64) ([]Nar, 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."query", n1.created_at, n1.updated_at, n1.last_accessed_at
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

func (q *Queries) GetNarByHash(ctx context.Context, hash string) (Nar, error)

GetNarByHash

SELECT id, narinfo_id, hash, compression, file_size, "query", created_at, updated_at, last_accessed_at
FROM nars
WHERE hash = ?

func (*Queries) GetNarByID

func (q *Queries) GetNarByID(ctx context.Context, id int64) (Nar, error)

GetNarByID

SELECT id, narinfo_id, hash, compression, file_size, "query", created_at, updated_at, last_accessed_at
FROM nars
WHERE id = ?

func (*Queries) GetNarInfoByHash

func (q *Queries) GetNarInfoByHash(ctx context.Context, hash string) (NarInfo, error)

GetNarInfoByHash

SELECT id, hash, created_at, updated_at, last_accessed_at
FROM narinfos
WHERE hash = ?

func (*Queries) GetNarInfoByID

func (q *Queries) GetNarInfoByID(ctx context.Context, id int64) (NarInfo, error)

GetNarInfoByID

SELECT id, hash, created_at, updated_at, last_accessed_at
FROM narinfos
WHERE id = ?

func (*Queries) GetNarTotalSize

func (q *Queries) GetNarTotalSize(ctx context.Context) (int64, error)

GetNarTotalSize

SELECT CAST(COALESCE(SUM(file_size), 0) AS INTEGER) AS total_size
FROM nars

func (*Queries) TouchNar

func (q *Queries) TouchNar(ctx context.Context, hash string) (int64, error)

TouchNar

UPDATE nars
SET
    last_accessed_at = CURRENT_TIMESTAMP,
    updated_at = CURRENT_TIMESTAMP
WHERE hash = ?

func (*Queries) TouchNarInfo

func (q *Queries) TouchNarInfo(ctx context.Context, hash string) (int64, error)

TouchNarInfo

UPDATE narinfos
SET
    last_accessed_at = CURRENT_TIMESTAMP,
    updated_at = CURRENT_TIMESTAMP
WHERE hash = ?

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL