Documentation
¶
Overview ¶
Package sqlite provides a SQLite implementation of the Weave composite store using Grove ORM with Grove migrations. Suitable for single-node deployments, local development, and edge use-cases.
Index ¶
- Variables
- type Store
- func (s *Store) Close() error
- func (s *Store) CompleteDocument(ctx context.Context, docID id.DocumentID, chunkCount int) error
- func (s *Store) CountChunks(ctx context.Context, filter *chunk.CountFilter) (int64, error)
- func (s *Store) CountCollections(ctx context.Context, filter *collection.CountFilter) (int64, error)
- func (s *Store) CountDocuments(ctx context.Context, filter *document.CountFilter) (int64, error)
- func (s *Store) CountStalledUntenanted(ctx context.Context, before time.Time) (int64, error)
- func (s *Store) CreateChunkBatch(ctx context.Context, chunks []*chunk.Chunk) error
- func (s *Store) CreateCollection(ctx context.Context, col *collection.Collection) error
- func (s *Store) CreateDocument(ctx context.Context, doc *document.Document) error
- func (s *Store) DB() *grove.DB
- func (s *Store) DeleteChunksByCollection(ctx context.Context, colID id.CollectionID) error
- func (s *Store) DeleteChunksByDocument(ctx context.Context, docID id.DocumentID) error
- func (s *Store) DeleteCollection(ctx context.Context, colID id.CollectionID) error
- func (s *Store) DeleteDocument(ctx context.Context, docID id.DocumentID) error
- func (s *Store) DeleteDocumentsByCollection(ctx context.Context, colID id.CollectionID) error
- func (s *Store) FailDocument(ctx context.Context, docID id.DocumentID, errText string, ...) error
- func (s *Store) GetChunk(ctx context.Context, chunkID id.ChunkID) (*chunk.Chunk, error)
- func (s *Store) GetCollection(ctx context.Context, colID id.CollectionID) (*collection.Collection, error)
- func (s *Store) GetCollectionByName(ctx context.Context, tenantID, name string) (*collection.Collection, error)
- func (s *Store) GetDocument(ctx context.Context, docID id.DocumentID) (*document.Document, error)
- func (s *Store) ListChunks(ctx context.Context, filter *chunk.ListFilter) ([]*chunk.Chunk, error)
- func (s *Store) ListChunksByDocument(ctx context.Context, docID id.DocumentID) ([]*chunk.Chunk, error)
- func (s *Store) ListCollections(ctx context.Context, filter *collection.ListFilter) ([]*collection.Collection, error)
- func (s *Store) ListDocuments(ctx context.Context, filter *document.ListFilter) ([]*document.Document, error)
- func (s *Store) ListStalledDocuments(ctx context.Context, before time.Time, limit int) ([]*document.Document, error)
- func (s *Store) Migrate(ctx context.Context) error
- func (s *Store) Ping(ctx context.Context) error
- func (s *Store) ReplaceSourceDocument(ctx context.Context, doc *document.Document, chunks []*chunk.Chunk) ([]id.DocumentID, error)
- func (s *Store) TouchDocument(ctx context.Context, docID id.DocumentID, staleBefore time.Time) error
- func (s *Store) UpdateCollection(ctx context.Context, col *collection.Collection) error
- func (s *Store) UpdateDocument(ctx context.Context, doc *document.Document) error
Constants ¶
This section is empty.
Variables ¶
var Migrations = migrate.NewGroup("weave")
Migrations is the grove migration group for the Weave SQLite store.
Functions ¶
This section is empty.
Types ¶
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store is a SQLite implementation of the composite Weave store using Grove ORM with the sqlitedriver backend.
SQLite lets one writer in at a time. Every write the store makes runs in a transaction that takes the write lock with its first statement and waits up to five seconds for it (see beginWrite), so concurrent writers in one process, or in several processes sharing the file, queue instead of failing with SQLITE_BUSY.
func (*Store) CompleteDocument ¶
CompleteDocument moves a processing document to ready with one guarded UPDATE.
func (*Store) CountChunks ¶
func (*Store) CountCollections ¶
func (s *Store) CountCollections(ctx context.Context, filter *collection.CountFilter) (int64, error)
func (*Store) CountDocuments ¶
func (*Store) CountStalledUntenanted ¶
CountStalledUntenanted counts on the same index as ListStalledDocuments.
func (*Store) CreateChunkBatch ¶
func (*Store) CreateCollection ¶
func (s *Store) CreateCollection(ctx context.Context, col *collection.Collection) error
func (*Store) CreateDocument ¶
func (*Store) DeleteChunksByCollection ¶
func (*Store) DeleteChunksByDocument ¶
func (*Store) DeleteCollection ¶
func (*Store) DeleteDocument ¶
func (*Store) DeleteDocumentsByCollection ¶
func (*Store) FailDocument ¶
func (s *Store) FailDocument(ctx context.Context, docID id.DocumentID, errText string, staleBefore time.Time) error
FailDocument marks a pending or processing document failed with one guarded UPDATE.
func (*Store) GetCollection ¶
func (s *Store) GetCollection(ctx context.Context, colID id.CollectionID) (*collection.Collection, error)
func (*Store) GetCollectionByName ¶
func (s *Store) GetCollectionByName(ctx context.Context, tenantID, name string) (*collection.Collection, error)
func (*Store) GetDocument ¶
func (*Store) ListChunks ¶
func (*Store) ListChunksByDocument ¶
func (*Store) ListCollections ¶
func (s *Store) ListCollections(ctx context.Context, filter *collection.ListFilter) ([]*collection.Collection, error)
func (*Store) ListDocuments ¶
func (*Store) ListStalledDocuments ¶
func (s *Store) ListStalledDocuments(ctx context.Context, before time.Time, limit int) ([]*document.Document, error)
ListStalledDocuments reads across tenants on the (state, updated_at) index.
func (*Store) Migrate ¶
Migrate creates the required tables and indexes using the grove orchestrator.
func (*Store) ReplaceSourceDocument ¶
func (s *Store) ReplaceSourceDocument(ctx context.Context, doc *document.Document, chunks []*chunk.Chunk) ([]id.DocumentID, error)
ReplaceSourceDocument runs in one write transaction from beginWrite. SQLite lets one writer in at a time, so concurrent replaces of one source run one after another. Every refusal happens before the first write; any later failure rolls the whole replace back.
func (*Store) TouchDocument ¶
func (s *Store) TouchDocument(ctx context.Context, docID id.DocumentID, staleBefore time.Time) error
TouchDocument records an ingest's heartbeat with one guarded UPDATE, so of several claims of one stalled document only the first matches a row.
func (*Store) UpdateCollection ¶
func (s *Store) UpdateCollection(ctx context.Context, col *collection.Collection) error