storage

package
v0.0.0-...-14d575d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2021 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const AttachmentDir = "attachments"
View Source
const (
	SearchDir = "search_indices"
)

Variables

View Source
var ErrConflict = errors.New("rev doesn't match for update")
View Source
var ErrNotFound = errors.New("resource not found")
View Source
var ErrUnknownDatabase = errors.New("unknown database")

Functions

This section is empty.

Types

type Database

type Database struct {
	// contains filtered or unexported fields
}

func (*Database) AddListener

func (d *Database) AddListener(ctx context.Context, cl port.ChangeListener) error

AddListener add a change listener to the database changes (document updates) the listener will stay registered as long as the context is valid

func (*Database) AddTasks

func (d *Database) AddTasks(ctx context.Context, tasks []*model.Task) error

func (*Database) AddTasksTx

func (d *Database) AddTasksTx(ctx context.Context, tx port.EngineWriteTransaction, tasks []*model.Task) error

func (*Database) AllDesignDocs

func (d *Database) AllDesignDocs(ctx context.Context) ([]*model.Document, int, error)

func (*Database) AllDocs

func (d *Database) AllDocs(ctx context.Context, query port.AllDocsQuery) ([]*model.Document, int, error)

func (*Database) AttachmentReader

func (d *Database) AttachmentReader(docID, attachment string) (io.ReadCloser, error)

func (*Database) BuildDesignDocIndices

func (d *Database) BuildDesignDocIndices(ctx context.Context, tx *Transaction, doc *model.Document, update bool) error

func (*Database) BuildFnIndices

func (d *Database) BuildFnIndices(ctx context.Context, tx port.EngineWriteTransaction, doc *model.Document, vf *model.Function, update bool) error

func (*Database) BuildIndices

func (d *Database) BuildIndices(ctx context.Context, tx *Transaction, update bool) error

BuildIndices loads all design documents and builds their indices

func (*Database) Changes

func (d *Database) Changes(ctx context.Context, options *model.ChangesOptions) ([]*model.Document, int, error)

func (*Database) ChangesIndex

func (d *Database) ChangesIndex() port.DocumentIndex

func (*Database) CompleteTasks

func (d *Database) CompleteTasks(ctx context.Context, tasks []*model.Task) error

func (*Database) DeleteAttachment

func (d *Database) DeleteAttachment(ctx context.Context, docID, name string) (string, error)

func (*Database) DeleteDocument

func (d *Database) DeleteDocument(ctx context.Context, docID, rev string) (*model.Document, error)

func (*Database) DocAttachment

func (d *Database) DocAttachment(docID, attachment string) string

func (*Database) DocDir

func (d *Database) DocDir(docID string) string

func (*Database) EnrichDocuments

func (d *Database) EnrichDocuments(ctx context.Context, docs []*model.Document) error

func (*Database) FindDocs

func (d *Database) FindDocs(ctx context.Context, query model.FindQuery) ([]*model.Document, *model.ExecutionStats, error)

func (*Database) GetAttachment

func (d *Database) GetAttachment(ctx context.Context, docID, name string) (*model.Attachment, error)

func (*Database) GetDocument

func (d *Database) GetDocument(ctx context.Context, docID string) (*model.Document, error)

func (*Database) GetSecurity

func (d *Database) GetSecurity(ctx context.Context) (*model.Security, error)

func (*Database) GetTasks

func (d *Database) GetTasks(ctx context.Context, count int) ([]*model.Task, error)

func (*Database) IndexIterator

func (d *Database) IndexIterator(ctx context.Context, tx *Transaction, idx port.DocumentIndex) (*Iterator, error)

func (*Database) Indices

func (d *Database) Indices() map[string]port.DocumentIndex

func (*Database) Iterator

func (d *Database) Iterator(ctx context.Context, ddfn *model.DesignDocFn, fn func(i port.Iterator) error) error

func (*Database) Name

func (d *Database) Name() string

func (*Database) NotifyDocumentUpdate

func (d *Database) NotifyDocumentUpdate(doc *model.Document)

NotifyDocumentUpdate notifies about the change of the passed document using a separate goroutine

func (*Database) PeekTasks

func (d *Database) PeekTasks(ctx context.Context, count int) ([]*model.Task, error)

func (*Database) PutAttachment

func (d *Database) PutAttachment(ctx context.Context, docID string, att *model.Attachment) (string, error)

func (*Database) PutDocument

func (d *Database) PutDocument(ctx context.Context, doc *model.Document) (string, error)

func (*Database) PutSecurity

func (d *Database) PutSecurity(ctx context.Context, sec *model.Security) error

func (*Database) ReducerEngine

func (d *Database) ReducerEngine(name string) port.ReducerServerBuilder

func (*Database) SearchDocuments

func (d *Database) SearchDocuments(ctx context.Context, ddfn *model.DesignDocFn, sq *port.SearchQuery) (*port.SearchResult, error)

func (*Database) Sequence

func (d *Database) Sequence(ctx context.Context) (string, error)

func (*Database) Stats

func (d *Database) Stats(ctx context.Context) (stats model.DatabaseStats, err error)

func (*Database) String

func (d *Database) String() string

func (*Database) TaskCount

func (d *Database) TaskCount(ctx context.Context) (int, error)

func (*Database) Transaction

func (d *Database) Transaction(ctx context.Context, fn func(tx *Transaction) error) error

func (*Database) UpdateAllDocuments

func (d *Database) UpdateAllDocuments(ctx context.Context, tx port.EngineWriteTransaction, ddfn *model.DesignDocFn) error

UpdateAllDocuments triggers rebuild with all documents

func (*Database) UpdateTask

func (d *Database) UpdateTask(ctx context.Context, task *model.Task) error

func (*Database) ViewEngine

func (d *Database) ViewEngine(name string) port.ViewServerBuilder

type Iterator

type Iterator struct {
	Skip     int
	Limit    int
	StartKey []byte
	EndKey   []byte

	SkipDeleted   bool
	SkipDesignDoc bool
	SkipLocalDoc  bool

	CleanKey func([]byte) string
	KeyFn    func([]byte) []byte
	// contains filtered or unexported fields
}

func NewIterator

func NewIterator(tx *Transaction, opts ...IteratorOption) *Iterator

func (*Iterator) Continue

func (i *Iterator) Continue() bool

func (*Iterator) First

func (i *Iterator) First() *model.Document

func (*Iterator) IncLimit

func (i *Iterator) IncLimit()

func (*Iterator) Next

func (i *Iterator) Next() *model.Document

func (*Iterator) Remaining

func (i *Iterator) Remaining() int

Remaining returns the remaining documents starting at the current position till the end of the range

func (*Iterator) SetEndKey

func (i *Iterator) SetEndKey(v []byte)

func (*Iterator) SetLimit

func (i *Iterator) SetLimit(v int)

func (*Iterator) SetSkip

func (i *Iterator) SetSkip(v int)

func (*Iterator) SetSkipDesignDoc

func (i *Iterator) SetSkipDesignDoc(v bool)

func (*Iterator) SetSkipLocalDoc

func (i *Iterator) SetSkipLocalDoc(v bool)

func (*Iterator) SetStartKey

func (i *Iterator) SetStartKey(v []byte)

func (*Iterator) Total

func (i *Iterator) Total() int

type IteratorOption

type IteratorOption func(*Iterator)

func ForDesignDocFn

func ForDesignDocFn(ddfn *model.DesignDocFn) IteratorOption

func ForDocuments

func ForDocuments() IteratorOption

func WithOptions

func WithOptions(opts *model.IteratorOptions) IteratorOption

type Storage

type Storage struct {
	// contains filtered or unexported fields
}

func Open

func Open(path string, options ...StorageOption) (*Storage, error)

func (*Storage) Close

func (s *Storage) Close() error

func (*Storage) CreateDatabase

func (s *Storage) CreateDatabase(ctx context.Context, name string) (*Database, error)

func (*Storage) Database

func (s *Storage) Database(ctx context.Context, name string) (*Database, error)

func (*Storage) Databases

func (s *Storage) Databases(ctx context.Context) ([]string, error)

func (*Storage) DeleteDatabase

func (s *Storage) DeleteDatabase(ctx context.Context, name string) error

func (*Storage) RegisterReducerEngine

func (s *Storage) RegisterReducerEngine(name string, builder port.ReducerServerBuilder) error

func (*Storage) RegisterViewEngine

func (s *Storage) RegisterViewEngine(name string, builder port.ViewServerBuilder) error

func (*Storage) ReloadDatabases

func (s *Storage) ReloadDatabases(ctx context.Context) error

func (*Storage) String

func (s *Storage) String() string

type StorageOption

type StorageOption func(s *Storage) error

func WithReducerEngine

func WithReducerEngine(name string, builder port.ReducerServerBuilder) StorageOption

func WithViewEngine

func WithViewEngine(name string, builder port.ViewServerBuilder) StorageOption

type Transaction

type Transaction struct {
	Database   *Database
	BucketName []byte
	port.EngineWriteTransaction
}

func (*Transaction) DeleteDocument

func (tx *Transaction) DeleteDocument(ctx context.Context, docID, rev string) (*model.Document, error)

func (*Transaction) GetDocument

func (tx *Transaction) GetDocument(ctx context.Context, docID string) (*model.Document, error)

func (*Transaction) GetRaw

func (tx *Transaction) GetRaw(ctx context.Context, key []byte, value interface{}) error

func (*Transaction) PutDocument

func (tx *Transaction) PutDocument(ctx context.Context, doc *model.Document) (rev string, err error)

func (*Transaction) PutRaw

func (tx *Transaction) PutRaw(ctx context.Context, key []byte, raw interface{}) error

func (*Transaction) SetBucketName

func (tx *Transaction) SetBucketName(bucketName []byte)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL