Documentation
¶
Index ¶
- type Adapter
- type AddNarInfoReferenceParams
- type AddNarInfoReferencesParams
- type AddNarInfoSignatureParams
- type AddNarInfoSignaturesParams
- type Chunk
- type Config
- type CreateChunkParams
- type CreateConfigParams
- type CreateNarFileParams
- type CreateNarInfoParams
- type DBTX
- type DeleteNarFileByHashParams
- type GetAllNarFilesRow
- type GetChunkByNarFileIDAndIndexParams
- type GetChunkByNarFileIDAndIndexRow
- type GetNarFileByHashAndCompressionAndQueryParams
- type GetNarFilesToChunkRow
- type GetNarInfoURLByNarFileHashParams
- type GetOrphanedChunksRow
- type LinkNarFileToChunkParams
- type LinkNarFileToChunksParams
- type LinkNarInfoToNarFileParams
- type LinkNarInfosByURLToNarFileParams
- type NarFile
- type NarFileChunk
- type NarInfo
- type NarinfoNarFile
- type NarinfoReference
- type NarinfoSignature
- type Querier
- type Queries
- func (q *Queries) AddNarInfoReference(ctx context.Context, arg AddNarInfoReferenceParams) error
- func (q *Queries) AddNarInfoReferences(ctx context.Context, arg AddNarInfoReferencesParams) error
- func (q *Queries) AddNarInfoSignature(ctx context.Context, arg AddNarInfoSignatureParams) error
- func (q *Queries) AddNarInfoSignatures(ctx context.Context, arg AddNarInfoSignaturesParams) error
- func (q *Queries) CreateChunk(ctx context.Context, arg CreateChunkParams) (Chunk, error)
- func (q *Queries) CreateConfig(ctx context.Context, arg CreateConfigParams) (Config, error)
- func (q *Queries) CreateNarFile(ctx context.Context, arg CreateNarFileParams) (NarFile, error)
- func (q *Queries) CreateNarInfo(ctx context.Context, arg CreateNarInfoParams) (NarInfo, error)
- func (q *Queries) DeleteChunkByID(ctx context.Context, id int64) error
- func (q *Queries) DeleteNarFileByHash(ctx context.Context, arg DeleteNarFileByHashParams) (int64, error)
- func (q *Queries) DeleteNarFileChunksByNarFileID(ctx context.Context, narFileID 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) DeleteOrphanedChunks(ctx context.Context) (int64, error)
- func (q *Queries) DeleteOrphanedNarFiles(ctx context.Context) (int64, error)
- func (q *Queries) GetAllChunks(ctx context.Context) ([]Chunk, error)
- func (q *Queries) GetAllNarFiles(ctx context.Context) ([]GetAllNarFilesRow, error)
- func (q *Queries) GetChunkByHash(ctx context.Context, hash string) (Chunk, error)
- func (q *Queries) GetChunkByNarFileIDAndIndex(ctx context.Context, arg GetChunkByNarFileIDAndIndexParams) (GetChunkByNarFileIDAndIndexRow, error)
- func (q *Queries) GetChunkCount(ctx context.Context) (int64, error)
- func (q *Queries) GetChunksByNarFileID(ctx context.Context, narFileID int64) ([]Chunk, error)
- func (q *Queries) GetConfigByKey(ctx context.Context, key string) (Config, error)
- func (q *Queries) GetLeastUsedNarInfos(ctx context.Context, fileSize uint64) ([]NarInfo, error)
- func (q *Queries) GetMigratedNarInfoHashes(ctx context.Context) ([]string, error)
- func (q *Queries) GetNarFileByHashAndCompressionAndQuery(ctx context.Context, arg GetNarFileByHashAndCompressionAndQueryParams) (NarFile, error)
- func (q *Queries) GetNarFileByNarInfoID(ctx context.Context, narinfoID int64) (NarFile, error)
- func (q *Queries) GetNarFileCount(ctx context.Context) (int64, error)
- func (q *Queries) GetNarFilesToChunk(ctx context.Context) ([]GetNarFilesToChunkRow, error)
- func (q *Queries) GetNarFilesToChunkCount(ctx context.Context) (int64, error)
- func (q *Queries) GetNarInfoByHash(ctx context.Context, hash string) (NarInfo, error)
- func (q *Queries) GetNarInfoCount(ctx context.Context) (int64, error)
- func (q *Queries) GetNarInfoHashByNarURL(ctx context.Context, url sql.NullString) (string, error)
- func (q *Queries) GetNarInfoHashesByURL(ctx context.Context, url sql.NullString) ([]string, error)
- func (q *Queries) GetNarInfoReferences(ctx context.Context, narinfoID int64) ([]string, error)
- func (q *Queries) GetNarInfoSignatures(ctx context.Context, narinfoID int64) ([]string, error)
- func (q *Queries) GetNarInfoURLByNarFileHash(ctx context.Context, arg GetNarInfoURLByNarFileHashParams) (sql.NullString, error)
- func (q *Queries) GetNarInfosWithoutNarFiles(ctx context.Context) ([]NarInfo, error)
- func (q *Queries) GetNarTotalSize(ctx context.Context) (int64, error)
- func (q *Queries) GetOrphanedChunks(ctx context.Context) ([]GetOrphanedChunksRow, error)
- func (q *Queries) GetOrphanedNarFiles(ctx context.Context) ([]NarFile, error)
- func (q *Queries) GetUnmigratedNarInfoHashes(ctx context.Context) ([]string, error)
- func (q *Queries) LinkNarFileToChunk(ctx context.Context, arg LinkNarFileToChunkParams) error
- func (q *Queries) LinkNarFileToChunks(ctx context.Context, arg LinkNarFileToChunksParams) error
- func (q *Queries) LinkNarInfoToNarFile(ctx context.Context, arg LinkNarInfoToNarFileParams) error
- func (q *Queries) LinkNarInfosByURLToNarFile(ctx context.Context, arg LinkNarInfosByURLToNarFileParams) error
- func (q *Queries) SetConfig(ctx context.Context, arg SetConfigParams) error
- func (q *Queries) SetNarFileChunkingStarted(ctx context.Context, id int64) error
- func (q *Queries) TouchNarFile(ctx context.Context, arg TouchNarFileParams) (int64, error)
- func (q *Queries) TouchNarInfo(ctx context.Context, hash string) (int64, error)
- func (q *Queries) UpdateNarFileFileSize(ctx context.Context, arg UpdateNarFileFileSizeParams) error
- func (q *Queries) UpdateNarFileTotalChunks(ctx context.Context, arg UpdateNarFileTotalChunksParams) error
- func (q *Queries) UpdateNarInfo(ctx context.Context, arg UpdateNarInfoParams) (NarInfo, error)
- func (q *Queries) UpdateNarInfoCompressionAndURL(ctx context.Context, arg UpdateNarInfoCompressionAndURLParams) (int64, error)
- func (q *Queries) UpdateNarInfoCompressionFileSizeHashAndURL(ctx context.Context, arg UpdateNarInfoCompressionFileSizeHashAndURLParams) (int64, error)
- func (q *Queries) UpdateNarInfoFileHash(ctx context.Context, arg UpdateNarInfoFileHashParams) error
- func (q *Queries) UpdateNarInfoFileSize(ctx context.Context, arg UpdateNarInfoFileSizeParams) error
- func (q *Queries) WithTx(tx *sql.Tx) *Queries
- type SetConfigParams
- type TouchNarFileParams
- type UpdateNarFileFileSizeParams
- type UpdateNarFileTotalChunksParams
- type UpdateNarInfoCompressionAndURLParams
- type UpdateNarInfoCompressionFileSizeHashAndURLParams
- type UpdateNarInfoFileHashParams
- type UpdateNarInfoFileSizeParams
- type UpdateNarInfoParams
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 postgresdb.Queries and provides the DB() method.
type AddNarInfoReferenceParams ¶ added in v0.8.0
type AddNarInfoReferencesParams ¶ added in v0.8.0
type AddNarInfoSignatureParams ¶ added in v0.8.0
type AddNarInfoSignaturesParams ¶ added in v0.8.0
type CreateChunkParams ¶ added in v0.9.0
type CreateConfigParams ¶
type CreateNarFileParams ¶
type CreateNarInfoParams ¶ added in v0.8.0
type CreateNarInfoParams struct {
Hash string
StorePath sql.NullString
URL sql.NullString
Compression sql.NullString
FileHash sql.NullString
FileSize sql.NullInt64
NarHash sql.NullString
NarSize sql.NullInt64
Deriver sql.NullString
System sql.NullString
Ca sql.NullString
}
type DeleteNarFileByHashParams ¶ added in v0.8.0
type GetAllNarFilesRow ¶ added in v0.9.2
type GetChunkByNarFileIDAndIndexParams ¶ added in v0.9.0
type GetChunkByNarFileIDAndIndexRow ¶ added in v0.9.0
type GetNarFileByHashAndCompressionAndQueryParams ¶ added in v0.8.0
type GetNarFilesToChunkRow ¶ added in v0.9.0
type GetNarInfoURLByNarFileHashParams ¶ added in v0.8.5
type GetOrphanedChunksRow ¶ added in v0.9.0
type LinkNarFileToChunkParams ¶ added in v0.9.0
type LinkNarFileToChunksParams ¶ added in v0.9.0
type LinkNarInfosByURLToNarFileParams ¶ added in v0.9.0
type LinkNarInfosByURLToNarFileParams struct {
NarFileID int64
URL sql.NullString
}
type NarFileChunk ¶ added in v0.9.0
type NarInfo ¶
type NarInfo struct {
ID int64
Hash string
CreatedAt time.Time
UpdatedAt sql.NullTime
LastAccessedAt sql.NullTime
StorePath sql.NullString
URL sql.NullString
Compression sql.NullString
FileHash sql.NullString
FileSize sql.NullInt64
NarHash sql.NullString
NarSize sql.NullInt64
Deriver sql.NullString
System sql.NullString
Ca sql.NullString
}
type NarinfoNarFile ¶
type NarinfoReference ¶ added in v0.8.0
type NarinfoSignature ¶ added in v0.8.0
type Querier ¶
type Querier interface {
//AddNarInfoReference
//
// INSERT INTO narinfo_references (
// narinfo_id, reference
// ) VALUES (
// $1, $2
// )
// ON CONFLICT (narinfo_id, reference) DO NOTHING
AddNarInfoReference(ctx context.Context, arg AddNarInfoReferenceParams) error
// @bulk-for AddNarInfoReference
//
// INSERT INTO narinfo_references (
// narinfo_id, reference
// )
// SELECT $1, unnest($2::text[]) ON CONFLICT (narinfo_id, reference) DO NOTHING
AddNarInfoReferences(ctx context.Context, arg AddNarInfoReferencesParams) error
//AddNarInfoSignature
//
// INSERT INTO narinfo_signatures (
// narinfo_id, signature
// ) VALUES (
// $1, $2
// )
// ON CONFLICT (narinfo_id, signature) DO NOTHING
AddNarInfoSignature(ctx context.Context, arg AddNarInfoSignatureParams) error
// @bulk-for AddNarInfoSignature
//
// INSERT INTO narinfo_signatures (
// narinfo_id, signature
// )
// SELECT $1, unnest($2::text[]) ON CONFLICT (narinfo_id, signature) DO NOTHING
AddNarInfoSignatures(ctx context.Context, arg AddNarInfoSignaturesParams) error
//CreateChunk
//
// INSERT INTO chunks (
// hash, size, compressed_size
// ) VALUES (
// $1, $2, $3
// )
// ON CONFLICT(hash) DO UPDATE SET
// updated_at = CURRENT_TIMESTAMP
// RETURNING id, hash, size, compressed_size, created_at, updated_at
CreateChunk(ctx context.Context, arg CreateChunkParams) (Chunk, error)
//CreateConfig
//
// INSERT INTO config (
// key, value
// ) VALUES (
// $1, $2
// )
// RETURNING id, key, value, created_at, updated_at
CreateConfig(ctx context.Context, arg CreateConfigParams) (Config, error)
//CreateNarFile
//
// INSERT INTO nar_files (
// hash, compression, query, file_size, total_chunks
// ) VALUES (
// $1, $2, $3, $4, $5
// )
// ON CONFLICT (hash, compression, query) DO UPDATE SET
// updated_at = EXCLUDED.updated_at
// RETURNING
// id,
// hash,
// compression,
// file_size,
// query,
// created_at,
// updated_at,
// last_accessed_at,
// total_chunks,
// chunking_started_at
CreateNarFile(ctx context.Context, arg CreateNarFileParams) (NarFile, error)
//CreateNarInfo
//
// INSERT INTO narinfos (
// hash, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca
// ) VALUES (
// $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11
// )
// ON CONFLICT (hash) DO UPDATE SET
// store_path = EXCLUDED.store_path,
// url = EXCLUDED.url,
// compression = EXCLUDED.compression,
// file_hash = EXCLUDED.file_hash,
// file_size = EXCLUDED.file_size,
// nar_hash = EXCLUDED.nar_hash,
// nar_size = EXCLUDED.nar_size,
// deriver = EXCLUDED.deriver,
// system = EXCLUDED.system,
// ca = EXCLUDED.ca,
// updated_at = CURRENT_TIMESTAMP
// WHERE narinfos.url IS NULL
// RETURNING id, hash, created_at, updated_at, last_accessed_at, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca
CreateNarInfo(ctx context.Context, arg CreateNarInfoParams) (NarInfo, error)
//DeleteChunkByID
//
// DELETE FROM chunks
// WHERE id = $1
DeleteChunkByID(ctx context.Context, id int64) error
//DeleteNarFileByHash
//
// DELETE FROM nar_files
// WHERE hash = $1 AND compression = $2 AND query = $3
DeleteNarFileByHash(ctx context.Context, arg DeleteNarFileByHashParams) (int64, error)
//DeleteNarFileChunksByNarFileID
//
// DELETE FROM nar_file_chunks
// WHERE nar_file_id = $1
DeleteNarFileChunksByNarFileID(ctx context.Context, narFileID int64) error
//DeleteNarInfoByHash
//
// DELETE FROM narinfos
// WHERE hash = $1
DeleteNarInfoByHash(ctx context.Context, hash string) (int64, error)
//DeleteNarInfoByID
//
// DELETE FROM narinfos
// WHERE id = $1
DeleteNarInfoByID(ctx context.Context, id int64) (int64, error)
//DeleteOrphanedChunks
//
// DELETE FROM chunks
// WHERE NOT EXISTS (
// SELECT 1
// FROM nar_file_chunks
// WHERE chunk_id = chunks.id
// )
DeleteOrphanedChunks(ctx context.Context) (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)
// Returns all chunks for storage existence verification (CDC mode).
//
// SELECT id, hash, size, compressed_size, created_at, updated_at
// FROM chunks
GetAllChunks(ctx context.Context) ([]Chunk, error)
// Returns all nar_files for storage existence verification.
//
// SELECT id, hash, compression, query, file_size, total_chunks, chunking_started_at, created_at, updated_at, last_accessed_at
// FROM nar_files
GetAllNarFiles(ctx context.Context) ([]GetAllNarFilesRow, error)
//GetChunkByHash
//
// SELECT id, hash, size, compressed_size, created_at, updated_at
// FROM chunks
// WHERE hash = $1
GetChunkByHash(ctx context.Context, hash string) (Chunk, error)
//GetChunkByNarFileIDAndIndex
//
// SELECT c.id, c.hash, c.size, c.created_at, c.updated_at
// FROM chunks c
// INNER JOIN nar_file_chunks nfc ON c.id = nfc.chunk_id
// WHERE nfc.nar_file_id = $1 AND nfc.chunk_index = $2
GetChunkByNarFileIDAndIndex(ctx context.Context, arg GetChunkByNarFileIDAndIndexParams) (GetChunkByNarFileIDAndIndexRow, error)
//GetChunkCount
//
// SELECT CAST(COUNT(*) AS BIGINT) AS count
// FROM chunks
GetChunkCount(ctx context.Context) (int64, error)
//GetChunksByNarFileID
//
// SELECT c.id, c.hash, c.size, c.compressed_size, c.created_at, c.updated_at
// FROM chunks c
// INNER JOIN nar_file_chunks nfc ON c.id = nfc.chunk_id
// WHERE nfc.nar_file_id = $1
// ORDER BY nfc.chunk_index
GetChunksByNarFileID(ctx context.Context, narFileID int64) ([]Chunk, error)
//GetConfigByKey
//
// SELECT id, key, value, created_at, updated_at
// FROM config
// WHERE key = $1
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.
// 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, ni1.store_path, ni1.url, ni1.compression, ni1.file_hash, ni1.file_size, ni1.nar_hash, ni1.nar_size, ni1.deriver, ni1.system, ni1.ca
// FROM narinfos ni1
// WHERE (
// SELECT COALESCE(SUM(nf.file_size), 0)
// FROM nar_files nf
// WHERE nf.id IN (
// SELECT DISTINCT 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)
// )
// ) <= $1
GetLeastUsedNarInfos(ctx context.Context, fileSize uint64) ([]NarInfo, error)
// Get all narinfo hashes that have a URL (migrated).
//
// SELECT hash
// FROM narinfos
// WHERE url IS NOT NULL
GetMigratedNarInfoHashes(ctx context.Context) ([]string, error)
//GetNarFileByHashAndCompressionAndQuery
//
// SELECT id, hash, compression, file_size, query, created_at, updated_at, last_accessed_at, total_chunks, chunking_started_at
// FROM nar_files
// WHERE hash = $1 AND compression = $2 AND query = $3
GetNarFileByHashAndCompressionAndQuery(ctx context.Context, arg GetNarFileByHashAndCompressionAndQueryParams) (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, nf.total_chunks, nf.chunking_started_at
// FROM nar_files nf
// INNER JOIN narinfo_nar_files nnf ON nf.id = nnf.nar_file_id
// WHERE nnf.narinfo_id = $1
GetNarFileByNarInfoID(ctx context.Context, narinfoID int64) (NarFile, error)
//GetNarFileCount
//
// SELECT CAST(COUNT(*) AS BIGINT) AS count
// FROM nar_files
GetNarFileCount(ctx context.Context) (int64, error)
// Get all NAR files that are not yet chunked.
//
// SELECT id, hash, compression, query, file_size
// FROM nar_files
// WHERE total_chunks = 0
// ORDER BY id
GetNarFilesToChunk(ctx context.Context) ([]GetNarFilesToChunkRow, error)
// Get the count of NAR files that are not yet chunked.
//
// SELECT COUNT(*)
// FROM nar_files
// WHERE total_chunks = 0
GetNarFilesToChunkCount(ctx context.Context) (int64, error)
//GetNarInfoByHash
//
// SELECT id, hash, created_at, updated_at, last_accessed_at, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca
// FROM narinfos
// WHERE hash = $1
GetNarInfoByHash(ctx context.Context, hash string) (NarInfo, error)
//GetNarInfoCount
//
// SELECT CAST(COUNT(*) AS BIGINT) AS count
// FROM narinfos
GetNarInfoCount(ctx context.Context) (int64, error)
//GetNarInfoHashByNarURL
//
// SELECT hash
// FROM narinfos
// WHERE url = $1
// LIMIT 1
GetNarInfoHashByNarURL(ctx context.Context, url sql.NullString) (string, error)
//GetNarInfoHashesByURL
//
// SELECT hash
// FROM narinfos
// WHERE url = $1
GetNarInfoHashesByURL(ctx context.Context, url sql.NullString) ([]string, error)
//GetNarInfoReferences
//
// SELECT reference
// FROM narinfo_references
// WHERE narinfo_id = $1
GetNarInfoReferences(ctx context.Context, narinfoID int64) ([]string, error)
//GetNarInfoSignatures
//
// SELECT signature
// FROM narinfo_signatures
// WHERE narinfo_id = $1
GetNarInfoSignatures(ctx context.Context, narinfoID int64) ([]string, error)
//GetNarInfoURLByNarFileHash
//
// SELECT ni.url
// FROM narinfos ni
// INNER JOIN narinfo_nar_files nnf ON ni.id = nnf.narinfo_id
// INNER JOIN nar_files nf ON nf.id = nnf.nar_file_id
// WHERE nf.hash = $1 AND nf.compression = $2 AND nf.query = $3
// LIMIT 1
GetNarInfoURLByNarFileHash(ctx context.Context, arg GetNarInfoURLByNarFileHashParams) (sql.NullString, error)
// Returns narinfos that have no linked nar_file entries.
//
// SELECT ni.id, ni.hash, ni.created_at, ni.updated_at, ni.last_accessed_at, ni.store_path, ni.url, ni.compression, ni.file_hash, ni.file_size, ni.nar_hash, ni.nar_size, ni.deriver, ni.system, ni.ca
// FROM narinfos ni
// WHERE NOT EXISTS (
// SELECT 1 FROM narinfo_nar_files nnf WHERE nnf.narinfo_id = ni.id
// )
GetNarInfosWithoutNarFiles(ctx context.Context) ([]NarInfo, error)
//GetNarTotalSize
//
// SELECT CAST(COALESCE(SUM(file_size), 0) AS BIGINT) AS total_size
// FROM nar_files
GetNarTotalSize(ctx context.Context) (int64, error)
//GetOrphanedChunks
//
// SELECT c.id, c.hash, c.size, c.created_at, c.updated_at
// FROM chunks c
// LEFT JOIN nar_file_chunks nfc ON c.id = nfc.chunk_id
// WHERE nfc.chunk_id IS NULL
GetOrphanedChunks(ctx context.Context) ([]GetOrphanedChunksRow, 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, nf.total_chunks, nf.chunking_started_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)
// Get all narinfo hashes that have no URL (unmigrated).
//
// SELECT hash
// FROM narinfos
// WHERE url IS NULL
GetUnmigratedNarInfoHashes(ctx context.Context) ([]string, error)
//LinkNarFileToChunk
//
// INSERT INTO nar_file_chunks (
// nar_file_id, chunk_id, chunk_index
// ) VALUES (
// $1, $2, $3
// )
// ON CONFLICT (nar_file_id, chunk_index) DO NOTHING
LinkNarFileToChunk(ctx context.Context, arg LinkNarFileToChunkParams) error
// @bulk-for LinkNarFileToChunk
//
// INSERT INTO nar_file_chunks (
// nar_file_id, chunk_id, chunk_index
// )
// SELECT $1, unnest($2::bigint[]), unnest($3::bigint[])
// ON CONFLICT (nar_file_id, chunk_index) DO NOTHING
LinkNarFileToChunks(ctx context.Context, arg LinkNarFileToChunksParams) error
//LinkNarInfoToNarFile
//
// INSERT INTO narinfo_nar_files (
// narinfo_id, nar_file_id
// ) VALUES (
// $1, $2
// )
// ON CONFLICT (narinfo_id, nar_file_id) DO NOTHING
LinkNarInfoToNarFile(ctx context.Context, arg LinkNarInfoToNarFileParams) error
//LinkNarInfosByURLToNarFile
//
// INSERT INTO narinfo_nar_files (narinfo_id, nar_file_id)
// SELECT id, $1
// FROM narinfos
// WHERE url = $2
// ON CONFLICT (narinfo_id, nar_file_id) DO NOTHING
LinkNarInfosByURLToNarFile(ctx context.Context, arg LinkNarInfosByURLToNarFileParams) error
//SetConfig
//
// INSERT INTO config (
// key, value
// ) VALUES (
// $1, $2
// )
// ON CONFLICT(key)
// DO UPDATE SET
// value = EXCLUDED.value,
// updated_at = CURRENT_TIMESTAMP
SetConfig(ctx context.Context, arg SetConfigParams) error
//SetNarFileChunkingStarted
//
// UPDATE nar_files
// SET chunking_started_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP
// WHERE id = $1
SetNarFileChunkingStarted(ctx context.Context, id int64) error
//TouchNarFile
//
// UPDATE nar_files
// SET
// last_accessed_at = CURRENT_TIMESTAMP,
// updated_at = CURRENT_TIMESTAMP
// WHERE hash = $1 AND compression = $2 AND query = $3
TouchNarFile(ctx context.Context, arg TouchNarFileParams) (int64, error)
//TouchNarInfo
//
// UPDATE narinfos
// SET
// last_accessed_at = CURRENT_TIMESTAMP,
// updated_at = CURRENT_TIMESTAMP
// WHERE hash = $1
TouchNarInfo(ctx context.Context, hash string) (int64, error)
//UpdateNarFileFileSize
//
// UPDATE nar_files
// SET file_size = $1, updated_at = CURRENT_TIMESTAMP
// WHERE id = $2
UpdateNarFileFileSize(ctx context.Context, arg UpdateNarFileFileSizeParams) error
//UpdateNarFileTotalChunks
//
// UPDATE nar_files
// SET total_chunks = $1, file_size = $2, updated_at = CURRENT_TIMESTAMP, chunking_started_at = NULL
// WHERE id = $3
UpdateNarFileTotalChunks(ctx context.Context, arg UpdateNarFileTotalChunksParams) error
//UpdateNarInfo
//
// UPDATE narinfos
// SET
// store_path = $2,
// url = $3,
// compression = $4,
// file_hash = $5,
// file_size = $6,
// nar_hash = $7,
// nar_size = $8,
// deriver = $9,
// system = $10,
// ca = $11,
// updated_at = CURRENT_TIMESTAMP
// WHERE hash = $1
// RETURNING id, hash, created_at, updated_at, last_accessed_at, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca
UpdateNarInfo(ctx context.Context, arg UpdateNarInfoParams) (NarInfo, error)
// Update narinfo compression and URL after CDC migration.
//
// UPDATE narinfos
// SET compression = $1, url = $2, updated_at = CURRENT_TIMESTAMP
// WHERE url = $3
UpdateNarInfoCompressionAndURL(ctx context.Context, arg UpdateNarInfoCompressionAndURLParams) (int64, error)
// Update narinfo compression, file_size, file_hash and URL after CDC migration.
//
// UPDATE narinfos
// SET
// compression = $1,
// url = $2,
// file_size = $3,
// file_hash = $4,
// updated_at = CURRENT_TIMESTAMP
// WHERE url = $5
UpdateNarInfoCompressionFileSizeHashAndURL(ctx context.Context, arg UpdateNarInfoCompressionFileSizeHashAndURLParams) (int64, error)
//UpdateNarInfoFileHash
//
// UPDATE narinfos
// SET file_hash = $2, updated_at = CURRENT_TIMESTAMP
// WHERE hash = $1
UpdateNarInfoFileHash(ctx context.Context, arg UpdateNarInfoFileHashParams) error
//UpdateNarInfoFileSize
//
// UPDATE narinfos
// SET file_size = $2, updated_at = CURRENT_TIMESTAMP
// WHERE hash = $1
UpdateNarInfoFileSize(ctx context.Context, arg UpdateNarInfoFileSizeParams) error
}
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) AddNarInfoReference ¶ added in v0.8.0
func (q *Queries) AddNarInfoReference(ctx context.Context, arg AddNarInfoReferenceParams) error
AddNarInfoReference
INSERT INTO narinfo_references (
narinfo_id, reference
) VALUES (
$1, $2
)
ON CONFLICT (narinfo_id, reference) DO NOTHING
func (*Queries) AddNarInfoReferences ¶ added in v0.8.0
func (q *Queries) AddNarInfoReferences(ctx context.Context, arg AddNarInfoReferencesParams) error
@bulk-for AddNarInfoReference
INSERT INTO narinfo_references (
narinfo_id, reference
)
SELECT $1, unnest($2::text[]) ON CONFLICT (narinfo_id, reference) DO NOTHING
func (*Queries) AddNarInfoSignature ¶ added in v0.8.0
func (q *Queries) AddNarInfoSignature(ctx context.Context, arg AddNarInfoSignatureParams) error
AddNarInfoSignature
INSERT INTO narinfo_signatures (
narinfo_id, signature
) VALUES (
$1, $2
)
ON CONFLICT (narinfo_id, signature) DO NOTHING
func (*Queries) AddNarInfoSignatures ¶ added in v0.8.0
func (q *Queries) AddNarInfoSignatures(ctx context.Context, arg AddNarInfoSignaturesParams) error
@bulk-for AddNarInfoSignature
INSERT INTO narinfo_signatures (
narinfo_id, signature
)
SELECT $1, unnest($2::text[]) ON CONFLICT (narinfo_id, signature) DO NOTHING
func (*Queries) CreateChunk ¶ added in v0.9.0
CreateChunk
INSERT INTO chunks (
hash, size, compressed_size
) VALUES (
$1, $2, $3
)
ON CONFLICT(hash) DO UPDATE SET
updated_at = CURRENT_TIMESTAMP
RETURNING id, hash, size, compressed_size, created_at, updated_at
func (*Queries) CreateConfig ¶
CreateConfig
INSERT INTO config (
key, value
) VALUES (
$1, $2
)
RETURNING id, key, value, created_at, updated_at
func (*Queries) CreateNarFile ¶
CreateNarFile
INSERT INTO nar_files (
hash, compression, query, file_size, total_chunks
) VALUES (
$1, $2, $3, $4, $5
)
ON CONFLICT (hash, compression, query) DO UPDATE SET
updated_at = EXCLUDED.updated_at
RETURNING
id,
hash,
compression,
file_size,
query,
created_at,
updated_at,
last_accessed_at,
total_chunks,
chunking_started_at
func (*Queries) CreateNarInfo ¶
CreateNarInfo
INSERT INTO narinfos (
hash, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca
) VALUES (
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11
)
ON CONFLICT (hash) DO UPDATE SET
store_path = EXCLUDED.store_path,
url = EXCLUDED.url,
compression = EXCLUDED.compression,
file_hash = EXCLUDED.file_hash,
file_size = EXCLUDED.file_size,
nar_hash = EXCLUDED.nar_hash,
nar_size = EXCLUDED.nar_size,
deriver = EXCLUDED.deriver,
system = EXCLUDED.system,
ca = EXCLUDED.ca,
updated_at = CURRENT_TIMESTAMP
WHERE narinfos.url IS NULL
RETURNING id, hash, created_at, updated_at, last_accessed_at, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca
func (*Queries) DeleteNarFileByHash ¶
func (q *Queries) DeleteNarFileByHash(ctx context.Context, arg DeleteNarFileByHashParams) (int64, error)
DeleteNarFileByHash
DELETE FROM nar_files WHERE hash = $1 AND compression = $2 AND query = $3
func (*Queries) DeleteNarFileChunksByNarFileID ¶ added in v0.9.0
DeleteNarFileChunksByNarFileID
DELETE FROM nar_file_chunks WHERE nar_file_id = $1
func (*Queries) DeleteOrphanedChunks ¶ added in v0.9.0
DeleteOrphanedChunks
DELETE FROM chunks
WHERE NOT EXISTS (
SELECT 1
FROM nar_file_chunks
WHERE chunk_id = chunks.id
)
func (*Queries) DeleteOrphanedNarFiles ¶
DeleteOrphanedNarFiles
DELETE FROM nar_files
WHERE id NOT IN (
SELECT DISTINCT nar_file_id
FROM narinfo_nar_files
)
func (*Queries) GetAllChunks ¶ added in v0.9.2
Returns all chunks for storage existence verification (CDC mode).
SELECT id, hash, size, compressed_size, created_at, updated_at FROM chunks
func (*Queries) GetAllNarFiles ¶ added in v0.9.2
func (q *Queries) GetAllNarFiles(ctx context.Context) ([]GetAllNarFilesRow, error)
Returns all nar_files for storage existence verification.
SELECT id, hash, compression, query, file_size, total_chunks, chunking_started_at, created_at, updated_at, last_accessed_at FROM nar_files
func (*Queries) GetChunkByHash ¶ added in v0.9.0
GetChunkByHash
SELECT id, hash, size, compressed_size, created_at, updated_at FROM chunks WHERE hash = $1
func (*Queries) GetChunkByNarFileIDAndIndex ¶ added in v0.9.0
func (q *Queries) GetChunkByNarFileIDAndIndex(ctx context.Context, arg GetChunkByNarFileIDAndIndexParams) (GetChunkByNarFileIDAndIndexRow, error)
GetChunkByNarFileIDAndIndex
SELECT c.id, c.hash, c.size, c.created_at, c.updated_at FROM chunks c INNER JOIN nar_file_chunks nfc ON c.id = nfc.chunk_id WHERE nfc.nar_file_id = $1 AND nfc.chunk_index = $2
func (*Queries) GetChunkCount ¶ added in v0.9.0
GetChunkCount
SELECT CAST(COUNT(*) AS BIGINT) AS count FROM chunks
func (*Queries) GetChunksByNarFileID ¶ added in v0.9.0
GetChunksByNarFileID
SELECT c.id, c.hash, c.size, c.compressed_size, c.created_at, c.updated_at FROM chunks c INNER JOIN nar_file_chunks nfc ON c.id = nfc.chunk_id WHERE nfc.nar_file_id = $1 ORDER BY nfc.chunk_index
func (*Queries) GetConfigByKey ¶
GetConfigByKey
SELECT id, key, value, created_at, updated_at FROM config WHERE key = $1
func (*Queries) GetLeastUsedNarInfos ¶
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, ni1.store_path, ni1.url, ni1.compression, ni1.file_hash, ni1.file_size, ni1.nar_hash, ni1.nar_size, ni1.deriver, ni1.system, ni1.ca
FROM narinfos ni1
WHERE (
SELECT COALESCE(SUM(nf.file_size), 0)
FROM nar_files nf
WHERE nf.id IN (
SELECT DISTINCT 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)
)
) <= $1
func (*Queries) GetMigratedNarInfoHashes ¶ added in v0.8.0
Get all narinfo hashes that have a URL (migrated).
SELECT hash FROM narinfos WHERE url IS NOT NULL
func (*Queries) GetNarFileByHashAndCompressionAndQuery ¶ added in v0.8.0
func (q *Queries) GetNarFileByHashAndCompressionAndQuery(ctx context.Context, arg GetNarFileByHashAndCompressionAndQueryParams) (NarFile, error)
GetNarFileByHashAndCompressionAndQuery
SELECT id, hash, compression, file_size, query, created_at, updated_at, last_accessed_at, total_chunks, chunking_started_at FROM nar_files WHERE hash = $1 AND compression = $2 AND query = $3
func (*Queries) GetNarFileByNarInfoID ¶
GetNarFileByNarInfoID
SELECT nf.id, nf.hash, nf.compression, nf.file_size, nf.query, nf.created_at, nf.updated_at, nf.last_accessed_at, nf.total_chunks, nf.chunking_started_at FROM nar_files nf INNER JOIN narinfo_nar_files nnf ON nf.id = nnf.nar_file_id WHERE nnf.narinfo_id = $1
func (*Queries) GetNarFileCount ¶ added in v0.7.1
GetNarFileCount
SELECT CAST(COUNT(*) AS BIGINT) AS count FROM nar_files
func (*Queries) GetNarFilesToChunk ¶ added in v0.9.0
func (q *Queries) GetNarFilesToChunk(ctx context.Context) ([]GetNarFilesToChunkRow, error)
Get all NAR files that are not yet chunked.
SELECT id, hash, compression, query, file_size FROM nar_files WHERE total_chunks = 0 ORDER BY id
func (*Queries) GetNarFilesToChunkCount ¶ added in v0.9.0
Get the count of NAR files that are not yet chunked.
SELECT COUNT(*) FROM nar_files WHERE total_chunks = 0
func (*Queries) GetNarInfoByHash ¶
GetNarInfoByHash
SELECT id, hash, created_at, updated_at, last_accessed_at, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca FROM narinfos WHERE hash = $1
func (*Queries) GetNarInfoCount ¶ added in v0.7.1
GetNarInfoCount
SELECT CAST(COUNT(*) AS BIGINT) AS count FROM narinfos
func (*Queries) GetNarInfoHashByNarURL ¶ added in v0.9.0
GetNarInfoHashByNarURL
SELECT hash FROM narinfos WHERE url = $1 LIMIT 1
func (*Queries) GetNarInfoHashesByURL ¶ added in v0.9.0
GetNarInfoHashesByURL
SELECT hash FROM narinfos WHERE url = $1
func (*Queries) GetNarInfoReferences ¶ added in v0.8.0
GetNarInfoReferences
SELECT reference FROM narinfo_references WHERE narinfo_id = $1
func (*Queries) GetNarInfoSignatures ¶ added in v0.8.0
GetNarInfoSignatures
SELECT signature FROM narinfo_signatures WHERE narinfo_id = $1
func (*Queries) GetNarInfoURLByNarFileHash ¶ added in v0.8.5
func (q *Queries) GetNarInfoURLByNarFileHash(ctx context.Context, arg GetNarInfoURLByNarFileHashParams) (sql.NullString, error)
GetNarInfoURLByNarFileHash
SELECT ni.url FROM narinfos ni INNER JOIN narinfo_nar_files nnf ON ni.id = nnf.narinfo_id INNER JOIN nar_files nf ON nf.id = nnf.nar_file_id WHERE nf.hash = $1 AND nf.compression = $2 AND nf.query = $3 LIMIT 1
func (*Queries) GetNarInfosWithoutNarFiles ¶ added in v0.9.2
Returns narinfos that have no linked nar_file entries.
SELECT ni.id, ni.hash, ni.created_at, ni.updated_at, ni.last_accessed_at, ni.store_path, ni.url, ni.compression, ni.file_hash, ni.file_size, ni.nar_hash, ni.nar_size, ni.deriver, ni.system, ni.ca
FROM narinfos ni
WHERE NOT EXISTS (
SELECT 1 FROM narinfo_nar_files nnf WHERE nnf.narinfo_id = ni.id
)
func (*Queries) GetNarTotalSize ¶
GetNarTotalSize
SELECT CAST(COALESCE(SUM(file_size), 0) AS BIGINT) AS total_size FROM nar_files
func (*Queries) GetOrphanedChunks ¶ added in v0.9.0
func (q *Queries) GetOrphanedChunks(ctx context.Context) ([]GetOrphanedChunksRow, error)
GetOrphanedChunks
SELECT c.id, c.hash, c.size, c.created_at, c.updated_at FROM chunks c LEFT JOIN nar_file_chunks nfc ON c.id = nfc.chunk_id WHERE nfc.chunk_id IS NULL
func (*Queries) GetOrphanedNarFiles ¶
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, nf.total_chunks, nf.chunking_started_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) GetUnmigratedNarInfoHashes ¶ added in v0.8.0
Get all narinfo hashes that have no URL (unmigrated).
SELECT hash FROM narinfos WHERE url IS NULL
func (*Queries) LinkNarFileToChunk ¶ added in v0.9.0
func (q *Queries) LinkNarFileToChunk(ctx context.Context, arg LinkNarFileToChunkParams) error
LinkNarFileToChunk
INSERT INTO nar_file_chunks (
nar_file_id, chunk_id, chunk_index
) VALUES (
$1, $2, $3
)
ON CONFLICT (nar_file_id, chunk_index) DO NOTHING
func (*Queries) LinkNarFileToChunks ¶ added in v0.9.0
func (q *Queries) LinkNarFileToChunks(ctx context.Context, arg LinkNarFileToChunksParams) error
@bulk-for LinkNarFileToChunk
INSERT INTO nar_file_chunks (
nar_file_id, chunk_id, chunk_index
)
SELECT $1, unnest($2::bigint[]), unnest($3::bigint[])
ON CONFLICT (nar_file_id, chunk_index) DO NOTHING
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 (
$1, $2
)
ON CONFLICT (narinfo_id, nar_file_id) DO NOTHING
func (*Queries) LinkNarInfosByURLToNarFile ¶ added in v0.9.0
func (q *Queries) LinkNarInfosByURLToNarFile(ctx context.Context, arg LinkNarInfosByURLToNarFileParams) error
LinkNarInfosByURLToNarFile
INSERT INTO narinfo_nar_files (narinfo_id, nar_file_id) SELECT id, $1 FROM narinfos WHERE url = $2 ON CONFLICT (narinfo_id, nar_file_id) DO NOTHING
func (*Queries) SetConfig ¶
func (q *Queries) SetConfig(ctx context.Context, arg SetConfigParams) error
SetConfig
INSERT INTO config (
key, value
) VALUES (
$1, $2
)
ON CONFLICT(key)
DO UPDATE SET
value = EXCLUDED.value,
updated_at = CURRENT_TIMESTAMP
func (*Queries) SetNarFileChunkingStarted ¶ added in v0.9.0
SetNarFileChunkingStarted
UPDATE nar_files SET chunking_started_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE id = $1
func (*Queries) TouchNarFile ¶
TouchNarFile
UPDATE nar_files
SET
last_accessed_at = CURRENT_TIMESTAMP,
updated_at = CURRENT_TIMESTAMP
WHERE hash = $1 AND compression = $2 AND query = $3
func (*Queries) TouchNarInfo ¶
TouchNarInfo
UPDATE narinfos
SET
last_accessed_at = CURRENT_TIMESTAMP,
updated_at = CURRENT_TIMESTAMP
WHERE hash = $1
func (*Queries) UpdateNarFileFileSize ¶ added in v0.9.0
func (q *Queries) UpdateNarFileFileSize(ctx context.Context, arg UpdateNarFileFileSizeParams) error
UpdateNarFileFileSize
UPDATE nar_files SET file_size = $1, updated_at = CURRENT_TIMESTAMP WHERE id = $2
func (*Queries) UpdateNarFileTotalChunks ¶ added in v0.9.0
func (q *Queries) UpdateNarFileTotalChunks(ctx context.Context, arg UpdateNarFileTotalChunksParams) error
UpdateNarFileTotalChunks
UPDATE nar_files SET total_chunks = $1, file_size = $2, updated_at = CURRENT_TIMESTAMP, chunking_started_at = NULL WHERE id = $3
func (*Queries) UpdateNarInfo ¶ added in v0.9.0
UpdateNarInfo
UPDATE narinfos
SET
store_path = $2,
url = $3,
compression = $4,
file_hash = $5,
file_size = $6,
nar_hash = $7,
nar_size = $8,
deriver = $9,
system = $10,
ca = $11,
updated_at = CURRENT_TIMESTAMP
WHERE hash = $1
RETURNING id, hash, created_at, updated_at, last_accessed_at, store_path, url, compression, file_hash, file_size, nar_hash, nar_size, deriver, system, ca
func (*Queries) UpdateNarInfoCompressionAndURL ¶ added in v0.9.0
func (q *Queries) UpdateNarInfoCompressionAndURL(ctx context.Context, arg UpdateNarInfoCompressionAndURLParams) (int64, error)
Update narinfo compression and URL after CDC migration.
UPDATE narinfos SET compression = $1, url = $2, updated_at = CURRENT_TIMESTAMP WHERE url = $3
func (*Queries) UpdateNarInfoCompressionFileSizeHashAndURL ¶ added in v0.9.0
func (q *Queries) UpdateNarInfoCompressionFileSizeHashAndURL(ctx context.Context, arg UpdateNarInfoCompressionFileSizeHashAndURLParams) (int64, error)
Update narinfo compression, file_size, file_hash and URL after CDC migration.
UPDATE narinfos
SET
compression = $1,
url = $2,
file_size = $3,
file_hash = $4,
updated_at = CURRENT_TIMESTAMP
WHERE url = $5
func (*Queries) UpdateNarInfoFileHash ¶ added in v0.9.0
func (q *Queries) UpdateNarInfoFileHash(ctx context.Context, arg UpdateNarInfoFileHashParams) error
UpdateNarInfoFileHash
UPDATE narinfos SET file_hash = $2, updated_at = CURRENT_TIMESTAMP WHERE hash = $1
func (*Queries) UpdateNarInfoFileSize ¶ added in v0.9.0
func (q *Queries) UpdateNarInfoFileSize(ctx context.Context, arg UpdateNarInfoFileSizeParams) error
UpdateNarInfoFileSize
UPDATE narinfos SET file_size = $2, updated_at = CURRENT_TIMESTAMP WHERE hash = $1
type SetConfigParams ¶
type TouchNarFileParams ¶ added in v0.8.0
type UpdateNarFileFileSizeParams ¶ added in v0.9.0
type UpdateNarFileTotalChunksParams ¶ added in v0.9.0
type UpdateNarInfoCompressionAndURLParams ¶ added in v0.9.0
type UpdateNarInfoCompressionAndURLParams struct {
Compression sql.NullString
NewUrl sql.NullString
OldUrl sql.NullString
}
type UpdateNarInfoCompressionFileSizeHashAndURLParams ¶ added in v0.9.0
type UpdateNarInfoCompressionFileSizeHashAndURLParams struct {
Compression sql.NullString
NewUrl sql.NullString
FileSize sql.NullInt64
FileHash sql.NullString
OldUrl sql.NullString
}
type UpdateNarInfoFileHashParams ¶ added in v0.9.0
type UpdateNarInfoFileHashParams struct {
Hash string
FileHash sql.NullString
}
type UpdateNarInfoFileSizeParams ¶ added in v0.9.0
type UpdateNarInfoParams ¶ added in v0.9.0
type UpdateNarInfoParams struct {
Hash string
StorePath sql.NullString
URL sql.NullString
Compression sql.NullString
FileHash sql.NullString
FileSize sql.NullInt64
NarHash sql.NullString
NarSize sql.NullInt64
Deriver sql.NullString
System sql.NullString
Ca sql.NullString
}