Documentation ¶
Index ¶
- Constants
- Variables
- func UnwrapBlobKey(key fdb.Key) fdb.Key
- func UnwrapIndexKey(key fdb.Key) fdb.Key
- func UnwrapQueryKey(key fdb.Key) fdb.Key
- func UnwrapQueueKey(pref []byte, key fdb.Key) fdb.Key
- func UnwrapTableKey(key fdb.Key) fdb.Key
- func WrapBlobKey(tbid uint16, key fdb.Key) fdb.Key
- func WrapIndexKey(tbid, idxid uint16, key fdb.Key) fdb.Key
- func WrapQueryKey(tbid uint16, key fdb.Key) fdb.Key
- func WrapQueueKey(tbid, qid uint16, pref []byte, flag byte, key fdb.Key) fdb.Key
- func WrapTableKey(tbid uint16, key fdb.Key) fdb.Key
- type Aggregator
- type Filter
- type IndexBatchKey
- type IndexKey
- type IndexMultiKey
- type Option
- func BatchIndex(f IndexBatchKey) Option
- func Creator(s string) Option
- func Delay(d time.Duration) Option
- func Header(k, v string) Option
- func Headers(h map[string]string) Option
- func Index(id uint16, f IndexKey) Option
- func LastKey(k fdb.Key) Option
- func MultiIndex(id uint16, f IndexMultiKey) Option
- func Prefix(p []byte) Option
- func Refresh(d time.Duration) Option
- func Reverse(r bool) Option
- func VacuumWait(d time.Duration) Option
- func Waiter(w *sync.WaitGroup) Option
- type Query
- type Queue
- type Selected
- type Selector
- type Table
- type Task
Constants ¶
const ( StatusPublished byte = 1 StatusUnconfirmed byte = 2 StatusConfirmed byte = 3 )
Task status
Variables ¶
var ( ErrSub = errx.New("Ошибка получения задач из очереди") ErrPub = errx.New("Ошибка публикации задачи в очередь") ErrAck = errx.New("Ошибка подтверждения задач в очереди") ErrUndo = errx.New("Ошибка отмены опубликованной задачи") ErrLost = errx.New("Ошибка получения неподтвержденных задач") ErrStat = errx.New("Ошибка получения статистики задач") ErrTask = errx.New("Ошибка получения метаданных задачи") ErrAgg = errx.New("Ошибка агрегации объектов коллекции") ErrSelect = errx.New("Ошибка загрузки объектов коллекции") ErrDelete = errx.New("Ошибка удаления объектов коллекции") ErrUpsert = errx.New("Ошибка обновления объектов коллекции") ErrFilter = errx.New("Ошибка фильтрации объектов коллекции") ErrNotFound = errx.New("Ошибка загрузки объекта") ErrIdxDelete = errx.New("Ошибка очистки индекса") ErrIdxUpsert = errx.New("Ошибка обновления индекса") ErrValPack = errx.New("Ошибка упаковки значения") ErrValUnpack = errx.New("Ошибка распаковки значения") ErrVacuum = errx.New("Ошибка автоочистки значений") ErrAll = errx.New("Ошибка загрузки всех значений") ErrNext = errx.New("Ошибка загрузки страницы значений") ErrFirst = errx.New("Ошибка загрузки первого значения") ErrSequence = errx.New("Ошибка загрузки коллекции") ErrLoadQuery = errx.New("Ошибка загрузки курсора запроса") ErrDropQuery = errx.New("Ошибка удаления курсора запроса") ErrSaveQuery = errx.New("Ошибка сохранения курсора запроса") ErrDuplicate = errx.New("Нарушение уникальности коллекции") )
Ошибки модуля
Functions ¶
func UnwrapBlobKey ¶
UnwrapBlobKey - обертка ключа для получения пользовательского ключа из системного, при загрузке
func UnwrapIndexKey ¶
UnwrapIndexKey - обертка ключа для получения пользовательского ключа из системного, при загрузке
func UnwrapQueryKey ¶
UnwrapQueryKey - обертка ключа для получения пользовательского ключа из системного, при загрузке
func UnwrapQueueKey ¶
UnwrapQueueKey - обертка ключа для получения пользовательского ключа из системного, при загрузке
func UnwrapTableKey ¶
UnwrapTableKey - обертка ключа для получения пользовательского ключа из системного, при загрузке
func WrapBlobKey ¶
WrapBlobKey - обертка для получения системного ключа из пользовательского, при сохранении
func WrapIndexKey ¶
WrapIndexKey - обертка для получения системного ключа из пользовательского, при сохранении
func WrapQueryKey ¶
WrapQueryKey - обертка для получения системного ключа из пользовательского, при сохранении
func WrapQueueKey ¶
WrapQueueKey - обертка для получения системного ключа из пользовательского, при сохранении
Types ¶
type Aggregator ¶
Aggregator - описание функции-агрегатора для запросов
func Count ¶
func Count(counter *uint64) Aggregator
type Filter ¶
Filter - управляющий метод для фильтрации выборок Должен возвращать true, если объект нужно оставить и false в другом случае
type IndexBatchKey ¶
IndexBatchKey - для получения ключей при индексации коллекций
type IndexMultiKey ¶
IndexMultiKey - для получения ключей при индексации коллекций
type Option ¶
type Option func(*options)
Option - доп.аргумент для инициализации коллекций
func BatchIndex ¶
func BatchIndex(f IndexBatchKey) Option
func MultiIndex ¶
func MultiIndex(id uint16, f IndexMultiKey) Option
func VacuumWait ¶
type Query ¶
type Query interface { // Критерии выбора (селекторы) ByID(ids ...fdb.Key) Query PossibleByID(ids ...fdb.Key) Query ByIndex(idx uint16, query fdb.Key) Query ByIndexRange(idx uint16, from, last fdb.Key) Query BySelector(Selector) Query // Модификаторы селекторов Forward() Query Reverse() Query Page(int) Query Limit(int) Query Where(Filter) Query // Обработка результатов Agg(...Aggregator) error All() ([]fdb.KeyValue, error) Next() ([]fdb.KeyValue, error) First() (fdb.KeyValue, error) Sequence(context.Context, ...Option) (<-chan fdb.KeyValue, <-chan error) Delete() error Empty() bool // Сохранение запроса (курсор) Save() (string, error) Drop() error }
Query - универсальный интерфейс объекта запроса данных, основная логика
type Queue ¶
type Queue interface { ID() uint16 Ack(mvcc.Tx, ...fdb.Key) (err error) Pub(mvcc.Tx, fdb.Key, ...Option) error PubList(mvcc.Tx, []fdb.Key, ...Option) error Sub(context.Context, db.Connection, int) (<-chan Task, <-chan error) SubList(context.Context, db.Connection, int) ([]Task, error) Undo(mvcc.Tx, fdb.Key) error Stat(mvcc.Tx) (int64, int64, error) Lost(mvcc.Tx, int) ([]Task, error) Task(mvcc.Tx, fdb.Key) (Task, error) }
Queue - универсальный интерфейс очередей, для работы с задачами
type Selected ¶ added in v2.0.2
Selected - структура с доп.параметром последнего выбранного ключа селектора
type Selector ¶
type Selector interface {
Select(context.Context, Table, ...Option) (<-chan Selected, <-chan error)
}
Selector - поставщик сырых данных для запроса
func NewFullSelector ¶
func NewIndexRangeSelector ¶
type Table ¶
type Table interface { ID() uint16 Select(mvcc.Tx) Query Cursor(mvcc.Tx, string) (Query, error) Delete(mvcc.Tx, ...fdb.Key) error Upsert(mvcc.Tx, ...fdb.KeyValue) error Insert(mvcc.Tx, ...fdb.KeyValue) error Vacuum(db.Connection) error Autovacuum(context.Context, db.Connection, ...Option) }
Table - универсальный интерфейс коллекции, чтобы работать с запросами