133 lines
2.8 KiB
Go
133 lines
2.8 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.30.0
|
|
// source: queries.sql
|
|
|
|
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"strings"
|
|
)
|
|
|
|
const deleteStaleFiles = `-- name: DeleteStaleFiles :exec
|
|
DELETE FROM files WHERE path NOT IN (/*SLICE:paths*/?)
|
|
`
|
|
|
|
func (q *Queries) DeleteStaleFiles(ctx context.Context, paths []string) error {
|
|
query := deleteStaleFiles
|
|
var queryParams []interface{}
|
|
if len(paths) > 0 {
|
|
for _, v := range paths {
|
|
queryParams = append(queryParams, v)
|
|
}
|
|
query = strings.Replace(query, "/*SLICE:paths*/?", strings.Repeat(",?", len(paths))[1:], 1)
|
|
} else {
|
|
query = strings.Replace(query, "/*SLICE:paths*/?", "NULL", 1)
|
|
}
|
|
_, err := q.db.ExecContext(ctx, query, queryParams...)
|
|
return err
|
|
}
|
|
|
|
const deleteSymbolsByFileID = `-- name: DeleteSymbolsByFileID :exec
|
|
DELETE FROM symbols WHERE file_id = ?
|
|
`
|
|
|
|
func (q *Queries) DeleteSymbolsByFileID(ctx context.Context, fileID int64) error {
|
|
_, err := q.db.ExecContext(ctx, deleteSymbolsByFileID, fileID)
|
|
return err
|
|
}
|
|
|
|
const getFileByPath = `-- name: GetFileByPath :one
|
|
SELECT id, path, language, package, hash, indexed_at
|
|
FROM files
|
|
WHERE path = ?
|
|
`
|
|
|
|
func (q *Queries) GetFileByPath(ctx context.Context, path string) (File, error) {
|
|
row := q.db.QueryRowContext(ctx, getFileByPath, path)
|
|
var i File
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Path,
|
|
&i.Language,
|
|
&i.Package,
|
|
&i.Hash,
|
|
&i.IndexedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const insertSymbol = `-- name: InsertSymbol :one
|
|
INSERT INTO symbols (file_id, name, kind, line, line_end, col, col_end, exported, parent_id)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
RETURNING id
|
|
`
|
|
|
|
type InsertSymbolParams struct {
|
|
FileID int64
|
|
Name string
|
|
Kind string
|
|
Line int64
|
|
LineEnd sql.NullInt64
|
|
Col sql.NullInt64
|
|
ColEnd sql.NullInt64
|
|
Exported sql.NullBool
|
|
ParentID sql.NullInt64
|
|
}
|
|
|
|
func (q *Queries) InsertSymbol(ctx context.Context, arg InsertSymbolParams) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, insertSymbol,
|
|
arg.FileID,
|
|
arg.Name,
|
|
arg.Kind,
|
|
arg.Line,
|
|
arg.LineEnd,
|
|
arg.Col,
|
|
arg.ColEnd,
|
|
arg.Exported,
|
|
arg.ParentID,
|
|
)
|
|
var id int64
|
|
err := row.Scan(&id)
|
|
return id, err
|
|
}
|
|
|
|
const upsertFile = `-- name: UpsertFile :one
|
|
INSERT INTO files (path, language, package, hash)
|
|
VALUES (?, ?, ?, ?)
|
|
ON CONFLICT(path) DO UPDATE SET
|
|
language = excluded.language,
|
|
package = excluded.package,
|
|
hash = excluded.hash,
|
|
indexed_at = CURRENT_TIMESTAMP
|
|
RETURNING id, path, language, package, hash, indexed_at
|
|
`
|
|
|
|
type UpsertFileParams struct {
|
|
Path string
|
|
Language string
|
|
Package sql.NullString
|
|
Hash string
|
|
}
|
|
|
|
func (q *Queries) UpsertFile(ctx context.Context, arg UpsertFileParams) (File, error) {
|
|
row := q.db.QueryRowContext(ctx, upsertFile,
|
|
arg.Path,
|
|
arg.Language,
|
|
arg.Package,
|
|
arg.Hash,
|
|
)
|
|
var i File
|
|
err := row.Scan(
|
|
&i.ID,
|
|
&i.Path,
|
|
&i.Language,
|
|
&i.Package,
|
|
&i.Hash,
|
|
&i.IndexedAt,
|
|
)
|
|
return i, err
|
|
}
|