mysqldb

package
v0.7.0-rc3 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 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 mysqldb.Queries and provides the DB() method.

func NewAdapter

func NewAdapter(db *sql.DB) *Adapter

NewAdapter creates a new MySQL 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 Config

type Config struct {
	ID        int64
	Key       string
	Value     string
	CreatedAt time.Time
	UpdatedAt sql.NullTime
}

type CreateConfigParams

type CreateConfigParams struct {
	Key   string
	Value string
}

type CreateNarFileParams

type CreateNarFileParams struct {
	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 LinkNarInfoToNarFileParams

type LinkNarInfoToNarFileParams struct {
	NarInfoID int64
	NarFileID int64
}

type NarFile

type NarFile struct {
	ID             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 NarinfoNarFile

type NarinfoNarFile struct {
	NarInfoID int64
	NarFileID int64
}

type Querier

type Querier interface {
	//CreateConfig
	//
	//  INSERT INTO config (
	//      `key`, value
	//  ) VALUES (
	//      ?, ?
	//  )
	CreateConfig(ctx context.Context, arg CreateConfigParams) (sql.Result, error)
	//CreateNarFile
	//
	//  INSERT INTO nar_files (
	//      hash, compression, `query`, file_size
	//  ) VALUES (
	//      ?, ?, ?, ?
	//  )
	CreateNarFile(ctx context.Context, arg CreateNarFileParams) (sql.Result, error)
	//CreateNarInfo
	//
	//  INSERT INTO narinfos (
	//      hash
	//  ) VALUES (
	//      ?
	//  )
	CreateNarInfo(ctx context.Context, hash string) (sql.Result, error)
	//DeleteNarFileByHash
	//
	//  DELETE FROM nar_files
	//  WHERE hash = ?
	DeleteNarFileByHash(ctx context.Context, hash string) (int64, error)
	//DeleteNarFileByID
	//
	//  DELETE FROM nar_files
	//  WHERE id = ?
	DeleteNarFileByID(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)
	//DeleteOrphanedNarFiles
	//
	//  DELETE FROM nar_files
	//  WHERE id NOT IN (
	//      SELECT DISTINCT nar_file_id
	//      FROM narinfo_nar_files
	//  )
	DeleteOrphanedNarFiles(ctx context.Context) (int64, error)
	//DeleteOrphanedNarInfos
	//
	//  DELETE FROM narinfos
	//  WHERE id NOT IN (
	//      SELECT DISTINCT narinfo_id
	//      FROM narinfo_nar_files
	//  )
	DeleteOrphanedNarInfos(ctx context.Context) (int64, error)
	//GetConfigByID
	//
	//  SELECT id, `key`, value, created_at, updated_at
	//  FROM config
	//  WHERE id = ?
	GetConfigByID(ctx context.Context, id int64) (Config, error)
	//GetConfigByKey
	//
	//  SELECT id, `key`, value, created_at, updated_at
	//  FROM config
	//  WHERE `key` = ?
	GetConfigByKey(ctx context.Context, key string) (Config, 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.hash, n1.compression, n1.file_size, n1.query, n1.created_at, n1.updated_at, n1.last_accessed_at
	//  FROM nar_files n1
	//  WHERE (
	//      SELECT SUM(n2.file_size)
	//      FROM nar_files n2
	//      WHERE n2.last_accessed_at < n1.last_accessed_at
	//          OR (n2.last_accessed_at = n1.last_accessed_at AND n2.id <= n1.id)
	//  ) <= ?
	GetLeastUsedNarFiles(ctx context.Context, fileSize uint64) ([]NarFile, 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.
	// Gets the least-used narinfos up to a certain total file size (accounting for their nar_files).
	//
	//  SELECT ni1.id, ni1.hash, ni1.created_at, ni1.updated_at, ni1.last_accessed_at
	//  FROM narinfos ni1
	//  WHERE (
	//      SELECT COALESCE(SUM(nf.file_size), 0)
	//      FROM nar_files nf
	//      WHERE nf.id IN (
	//          SELECT nnf.nar_file_id
	//          FROM narinfo_nar_files nnf
	//          INNER JOIN narinfos ni2 ON nnf.narinfo_id = ni2.id
	//          WHERE ni2.last_accessed_at < ni1.last_accessed_at
	//              OR (ni2.last_accessed_at = ni1.last_accessed_at AND ni2.id <= ni1.id)
	//      )
	//  ) <= ?
	GetLeastUsedNarInfos(ctx context.Context, fileSize uint64) ([]NarInfo, error)
	//GetNarFileByHash
	//
	//  SELECT id, hash, compression, file_size, query, created_at, updated_at, last_accessed_at
	//  FROM nar_files
	//  WHERE hash = ?
	GetNarFileByHash(ctx context.Context, hash string) (NarFile, error)
	//GetNarFileByID
	//
	//  SELECT id, hash, compression, file_size, query, created_at, updated_at, last_accessed_at
	//  FROM nar_files
	//  WHERE id = ?
	GetNarFileByID(ctx context.Context, id int64) (NarFile, error)
	//GetNarFileByNarInfoID
	//
	//  SELECT nf.id, nf.hash, nf.compression, nf.file_size, nf.query, nf.created_at, nf.updated_at, nf.last_accessed_at
	//  FROM nar_files nf
	//  INNER JOIN narinfo_nar_files nnf ON nf.id = nnf.nar_file_id
	//  WHERE nnf.narinfo_id = ?
	GetNarFileByNarInfoID(ctx context.Context, narinfoID int64) (NarFile, 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)
	//GetNarInfoHashesByNarFileID
	//
	//  SELECT ni.hash
	//  FROM narinfos ni
	//  INNER JOIN narinfo_nar_files nnf ON ni.id = nnf.narinfo_id
	//  WHERE nnf.nar_file_id = ?
	GetNarInfoHashesByNarFileID(ctx context.Context, narFileID int64) ([]string, error)
	//GetNarTotalSize
	//
	//  SELECT CAST(COALESCE(SUM(file_size), 0) AS SIGNED) AS total_size
	//  FROM nar_files
	GetNarTotalSize(ctx context.Context) (int64, error)
	// Find files that have no relationship to any narinfo
	//
	//  SELECT nf.id, nf.hash, nf.compression, nf.file_size, nf.query, nf.created_at, nf.updated_at, nf.last_accessed_at
	//  FROM nar_files nf
	//  LEFT JOIN narinfo_nar_files ninf ON nf.id = ninf.nar_file_id
	//  WHERE ninf.narinfo_id IS NULL
	GetOrphanedNarFiles(ctx context.Context) ([]NarFile, error)
	//LinkNarInfoToNarFile
	//
	//  INSERT INTO narinfo_nar_files (
	//      narinfo_id, nar_file_id
	//  ) VALUES (
	//      ?, ?
	//  )
	LinkNarInfoToNarFile(ctx context.Context, arg LinkNarInfoToNarFileParams) error
	//SetConfig
	//
	//  INSERT INTO config (
	//      `key`, value
	//  ) VALUES (
	//      ?, ?
	//  )
	//  ON DUPLICATE KEY UPDATE
	//      value = VALUES(value),
	//      updated_at = CURRENT_TIMESTAMP
	SetConfig(ctx context.Context, arg SetConfigParams) error
	//TouchNarFile
	//
	//  UPDATE nar_files
	//  SET
	//      last_accessed_at = CURRENT_TIMESTAMP,
	//      updated_at = CURRENT_TIMESTAMP
	//  WHERE hash = ?
	TouchNarFile(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) CreateConfig

func (q *Queries) CreateConfig(ctx context.Context, arg CreateConfigParams) (sql.Result, error)

CreateConfig

INSERT INTO config (
    `key`, value
) VALUES (
    ?, ?
)

func (*Queries) CreateNarFile

func (q *Queries) CreateNarFile(ctx context.Context, arg CreateNarFileParams) (sql.Result, error)

CreateNarFile

INSERT INTO nar_files (
    hash, compression, `query`, file_size
) VALUES (
    ?, ?, ?, ?
)

func (*Queries) CreateNarInfo

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

CreateNarInfo

INSERT INTO narinfos (
    hash
) VALUES (
    ?
)

func (*Queries) DeleteNarFileByHash

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

DeleteNarFileByHash

DELETE FROM nar_files
WHERE hash = ?

func (*Queries) DeleteNarFileByID

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

DeleteNarFileByID

DELETE FROM nar_files
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) DeleteOrphanedNarFiles

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

DeleteOrphanedNarFiles

DELETE FROM nar_files
WHERE id NOT IN (
    SELECT DISTINCT nar_file_id
    FROM narinfo_nar_files
)

func (*Queries) DeleteOrphanedNarInfos

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

DeleteOrphanedNarInfos

DELETE FROM narinfos
WHERE id NOT IN (
    SELECT DISTINCT narinfo_id
    FROM narinfo_nar_files
)

func (*Queries) GetConfigByID

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

GetConfigByID

SELECT id, `key`, value, created_at, updated_at
FROM config
WHERE id = ?

func (*Queries) GetConfigByKey

func (q *Queries) GetConfigByKey(ctx context.Context, key string) (Config, error)

GetConfigByKey

SELECT id, `key`, value, created_at, updated_at
FROM config
WHERE `key` = ?

func (*Queries) GetLeastUsedNarFiles

func (q *Queries) GetLeastUsedNarFiles(ctx context.Context, fileSize uint64) ([]NarFile, 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.hash, n1.compression, n1.file_size, n1.query, n1.created_at, n1.updated_at, n1.last_accessed_at
FROM nar_files n1
WHERE (
    SELECT SUM(n2.file_size)
    FROM nar_files 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) GetLeastUsedNarInfos

func (q *Queries) GetLeastUsedNarInfos(ctx context.Context, fileSize uint64) ([]NarInfo, 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. Gets the least-used narinfos up to a certain total file size (accounting for their nar_files).

SELECT ni1.id, ni1.hash, ni1.created_at, ni1.updated_at, ni1.last_accessed_at
FROM narinfos ni1
WHERE (
    SELECT COALESCE(SUM(nf.file_size), 0)
    FROM nar_files nf
    WHERE nf.id IN (
        SELECT nnf.nar_file_id
        FROM narinfo_nar_files nnf
        INNER JOIN narinfos ni2 ON nnf.narinfo_id = ni2.id
        WHERE ni2.last_accessed_at < ni1.last_accessed_at
            OR (ni2.last_accessed_at = ni1.last_accessed_at AND ni2.id <= ni1.id)
    )
) <= ?

func (*Queries) GetNarFileByHash

func (q *Queries) GetNarFileByHash(ctx context.Context, hash string) (NarFile, error)

GetNarFileByHash

SELECT id, hash, compression, file_size, query, created_at, updated_at, last_accessed_at
FROM nar_files
WHERE hash = ?

func (*Queries) GetNarFileByID

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

GetNarFileByID

SELECT id, hash, compression, file_size, query, created_at, updated_at, last_accessed_at
FROM nar_files
WHERE id = ?

func (*Queries) GetNarFileByNarInfoID

func (q *Queries) GetNarFileByNarInfoID(ctx context.Context, narinfoID int64) (NarFile, error)

GetNarFileByNarInfoID

SELECT nf.id, nf.hash, nf.compression, nf.file_size, nf.query, nf.created_at, nf.updated_at, nf.last_accessed_at
FROM nar_files nf
INNER JOIN narinfo_nar_files nnf ON nf.id = nnf.nar_file_id
WHERE nnf.narinfo_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) GetNarInfoHashesByNarFileID

func (q *Queries) GetNarInfoHashesByNarFileID(ctx context.Context, narFileID int64) ([]string, error)

GetNarInfoHashesByNarFileID

SELECT ni.hash
FROM narinfos ni
INNER JOIN narinfo_nar_files nnf ON ni.id = nnf.narinfo_id
WHERE nnf.nar_file_id = ?

func (*Queries) GetNarTotalSize

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

GetNarTotalSize

SELECT CAST(COALESCE(SUM(file_size), 0) AS SIGNED) AS total_size
FROM nar_files

func (*Queries) GetOrphanedNarFiles

func (q *Queries) GetOrphanedNarFiles(ctx context.Context) ([]NarFile, error)

Find files that have no relationship to any narinfo

SELECT nf.id, nf.hash, nf.compression, nf.file_size, nf.query, nf.created_at, nf.updated_at, nf.last_accessed_at
FROM nar_files nf
LEFT JOIN narinfo_nar_files ninf ON nf.id = ninf.nar_file_id
WHERE ninf.narinfo_id IS NULL

func (*Queries) LinkNarInfoToNarFile

func (q *Queries) LinkNarInfoToNarFile(ctx context.Context, arg LinkNarInfoToNarFileParams) error

LinkNarInfoToNarFile

INSERT INTO narinfo_nar_files (
    narinfo_id, nar_file_id
) VALUES (
    ?, ?
)

func (*Queries) SetConfig

func (q *Queries) SetConfig(ctx context.Context, arg SetConfigParams) error

SetConfig

INSERT INTO config (
    `key`, value
) VALUES (
    ?, ?
)
ON DUPLICATE KEY UPDATE
    value = VALUES(value),
    updated_at = CURRENT_TIMESTAMP

func (*Queries) TouchNarFile

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

TouchNarFile

UPDATE nar_files
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

type SetConfigParams

type SetConfigParams struct {
	Key   string
	Value string
}

Jump to

Keyboard shortcuts

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