Documentation
¶
Index ¶
- type FileResult
- type QueryEngine
- func (q *QueryEngine) FindDuplicateFiles(snapshotIDs []string, options QueryOptions) (map[string][]FileResult, error)
- func (q *QueryEngine) FindFilesChangedBetweenSnapshots(oldID, newID string, options QueryOptions) ([]FileResult, error)
- func (q *QueryEngine) FindLargestFiles(snapshotID string, n int, options QueryOptions) ([]FileResult, error)
- func (q *QueryEngine) FindNewestFiles(snapshotID string, n int, options QueryOptions) ([]FileResult, error)
- func (q *QueryEngine) FindOldestFiles(snapshotID string, n int, options QueryOptions) ([]FileResult, error)
- func (q *QueryEngine) QueryAllSnapshots(options QueryOptions) ([]FileResult, error)
- func (q *QueryEngine) QueryMultipleSnapshots(snapshotIDs []string, options QueryOptions) ([]FileResult, error)
- func (q *QueryEngine) QuerySnapshot(snapshotID string, options QueryOptions) ([]FileResult, error)
- type QueryOptions
- type Store
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FileResult ¶
type FileResult struct { Path string Size int64 ModTime time.Time IsDir bool Permissions uint32 Hash string SnapshotID string FromHotLayer bool DataRef string // For hot layer data location SymlinkTarget string }
FileResult represents a file found in a query.
type QueryEngine ¶
type QueryEngine struct {
// contains filtered or unexported fields
}
QueryEngine provides a unified interface for querying both hot and cold layers.
func NewQueryEngine ¶
func NewQueryEngine(store Store) *QueryEngine
NewQueryEngine creates a new query engine.
func (*QueryEngine) FindDuplicateFiles ¶
func (q *QueryEngine) FindDuplicateFiles(snapshotIDs []string, options QueryOptions) (map[string][]FileResult, error)
FindDuplicateFiles finds files with the same hash across snapshots.
func (*QueryEngine) FindFilesChangedBetweenSnapshots ¶
func (q *QueryEngine) FindFilesChangedBetweenSnapshots(oldID, newID string, options QueryOptions) ([]FileResult, error)
FindFilesChangedBetweenSnapshots finds files that changed between two snapshots.
func (*QueryEngine) FindLargestFiles ¶
func (q *QueryEngine) FindLargestFiles(snapshotID string, n int, options QueryOptions) ([]FileResult, error)
FindLargestFiles finds the N largest files in a snapshot.
func (*QueryEngine) FindNewestFiles ¶
func (q *QueryEngine) FindNewestFiles(snapshotID string, n int, options QueryOptions) ([]FileResult, error)
FindNewestFiles finds the N newest files in a snapshot.
func (*QueryEngine) FindOldestFiles ¶
func (q *QueryEngine) FindOldestFiles(snapshotID string, n int, options QueryOptions) ([]FileResult, error)
FindOldestFiles finds the N oldest files in a snapshot.
func (*QueryEngine) QueryAllSnapshots ¶
func (q *QueryEngine) QueryAllSnapshots(options QueryOptions) ([]FileResult, error)
QueryAllSnapshots queries all snapshots using the specified options.
func (*QueryEngine) QueryMultipleSnapshots ¶
func (q *QueryEngine) QueryMultipleSnapshots(snapshotIDs []string, options QueryOptions) ([]FileResult, error)
QueryMultipleSnapshots queries multiple snapshots. It parallelizes the queries for each snapshot.
func (*QueryEngine) QuerySnapshot ¶
func (q *QueryEngine) QuerySnapshot(snapshotID string, options QueryOptions) ([]FileResult, error)
QuerySnapshot queries a snapshot using the specified options. It parallelizes queries to the hot and cold layers.
type QueryOptions ¶
type QueryOptions struct { // Pattern is a filepath.Match pattern to filter files by path. Pattern string // MinSize is the minimum file size in bytes. MinSize int64 // MaxSize is the maximum file size in bytes (0 means no maximum). MaxSize int64 // StartTime is the start of the modification time range. StartTime time.Time // EndTime is the end of the modification time range. EndTime time.Time // Hash is a specific hash to match. Hash string // IsDir filters for directories (true) or files (false), nil means both. IsDir *bool // IncludeHot determines whether to include results from the hot layer. IncludeHot bool // IncludeCold determines whether to include results from the cold layer. IncludeCold bool }
QueryOptions represents options for querying snapshots.
func DefaultQueryOptions ¶
func DefaultQueryOptions() QueryOptions
DefaultQueryOptions returns the default query options.
type Store ¶
type Store interface { // Core methods needed by the query engine GetSnapshot(id string) ([]walker.SnapshotEntry, error) ListSnapshots() ([]metadata.SnapshotMetadata, error) ComputeDiff(oldID, newID string) ([]serializer.DiffEntry, error) FindFilesByPattern(snapshotID, pattern string) (map[string]metadata.FileMetadata, error) FindFilesBySize(snapshotID string, minSize, maxSize int64) (map[string]metadata.FileMetadata, error) FindFilesByModTime(snapshotID string, startTime, endTime time.Time) (map[string]metadata.FileMetadata, error) FindFilesByHash(snapshotID, hash string) (map[string]metadata.FileMetadata, error) Close() error }
Store represents the interface required by the query engine.