-- name: GetFileByPath :one SELECT id, path, language, package, hash, indexed_at FROM files WHERE path = ?; -- 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; -- name: DeleteSymbolsByFileID :exec DELETE FROM symbols WHERE file_id = ?; -- name: InsertSymbol :one INSERT INTO symbols (file_id, name, kind, line, line_end, col, col_end, exported, parent_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id; -- name: DeleteStaleFiles :exec DELETE FROM files WHERE path NOT IN (sqlc.slice('paths'));