Documentation ¶
Index ¶
- Variables
- func UnwrapKey(key fdb.Key) fdb.Key
- func WithTx(dbc db.Connection, hdl TxHandler) (err error)
- func WrapKey(key fdb.Key) fdb.Key
- func WrapLockKey(key fdb.Key) fdb.Key
- func WrapTxKey(key fdb.Key) fdb.Key
- func WrapWatchKey(key fdb.Key) fdb.Key
- type CommitHandler
- type Option
- func Exclusive(hdl RowHandler) Option
- func From(k fdb.Key) Option
- func Last(k fdb.Key) Option
- func Limit(l int) Option
- func Lock() Option
- func MaxRowMem(size int) Option
- func MaxRowSize(size int) Option
- func OnDelete(hdl RowHandler) Option
- func OnInsert(hdl RowHandler) Option
- func OnUpdate(hdl RowHandler) Option
- func OnVacuum(hdl RowHandler) Option
- func Physical() Option
- func Reverse() Option
- func SelectPack(size int) Option
- func Writer(w db.Writer) Option
- type RowHandler
- type Tx
- type TxHandler
Constants ¶
This section is empty.
Variables ¶
var ( ErrClose = errx.New("Ошибка завершения транзакции") ErrSelect = errx.New("Ошибка получения данных") ErrUpsert = errx.New("Ошибка обновления данных") ErrDelete = errx.New("Ошибка удаления данных") ErrSeqScan = errx.New("Ошибка полной выборки данных") ErrNotFound = errx.New("Отсутствует значение") ErrDuplicate = errx.New("Дублирующее значение") ErrBLOBLoad = errx.New("Ошибка загрузки BLOB") ErrBLOBDrop = errx.New("Ошибка удаления BLOB") ErrBLOBSave = errx.New("Ошибка сохранения BLOB") ErrReleaseLock = errx.New("Ошибка освобождения блокировки") ErrVacuum = errx.New("Ошибка автоочистки значений") ErrAlreadyLocked = errx.New("Уже получена другая блокировка, нужно сначала освободить ее") )
Ошибки модуля
var TxCacheSize = 8000000
TxCacheSize - размер глобального кеша статусов завершенных транзакций
Functions ¶
func UnwrapKey ¶
UnwrapKey - обертка ключа для получения пользовательского ключа из системного, при загрузке
func WithTx ¶
func WithTx(dbc db.Connection, hdl TxHandler) (err error)
WithTx - выполнение метода в рамках транзакции
func WrapKey ¶
WrapKey - обертка для получения системного ключа из пользовательского, при сохранении
func WrapLockKey ¶
WrapLockKey - обертка для получения системного ключа из пользовательского, при сохранении
Types ¶
type CommitHandler ¶
CommitHandler - обработчик события завершения логической транзакции
type Option ¶
type Option func(*options)
Option - дополнительный аргумент при выполнении команды
func Exclusive ¶
func Exclusive(hdl RowHandler) Option
func MaxRowSize ¶
func OnDelete ¶
func OnDelete(hdl RowHandler) Option
func OnInsert ¶
func OnInsert(hdl RowHandler) Option
func OnUpdate ¶
func OnUpdate(hdl RowHandler) Option
func OnVacuum ¶
func OnVacuum(hdl RowHandler) Option
func SelectPack ¶ added in v2.0.1
type RowHandler ¶
RowHandler - обработчик события операции с записью в рамках физической транзакции
type Tx ¶
type Tx interface { // Ссылка на подключение к БД, на всякий случай Conn() db.Connection // Неудачное завершение (отклонение) транзакции // Поддерживает опции Writer Cancel(args ...Option) // Успешное завершение (принятие) транзакции // Перед завершением выполняет хуки OnCommit // Поддерживает опции Writer Commit(args ...Option) error // Выборка актуального значения для ключа Select(fdb.Key, ...Option) (fdb.KeyValue, error) // Выборка нескольких объектов, в результате использовано печатное представление ключа SelectMany(keys []fdb.Key, args ...Option) (res map[string]fdb.KeyValue, err error) // Удаление значения для ключа // Поддерживает опции Writer Delete([]fdb.Key, ...Option) error // Вставка или обновление значения для ключа // Поддерживает опции Writer Upsert([]fdb.KeyValue, ...Option) error // Последовательная выборка всех активных ключей в диапазоне // Поддерживает опции From, To, Reverse, Limit, PackSize, Exclusive, Writer ListAll(context.Context, ...Option) ([]fdb.KeyValue, error) // Последовательная выборка всех активных ключей в диапазоне // Поддерживает опции From, To, Reverse, Limit, PackSize, Exclusive, Writer SeqScan(context.Context, ...Option) (<-chan fdb.KeyValue, <-chan error) // Загрузка бинарных данных по ключу, указывается ожидаемый размер LoadBLOB(fdb.Key, ...Option) ([]byte, error) // Удаление бинарных данных по ключу // Поддерживает опции Writer DropBLOB(fdb.Key, ...Option) error // Сохранение бинарных данных по ключу SaveBLOB(fdb.Key, []byte, ...Option) error SharedLock(...fdb.Key) error // Немедленно освобождает блокировку всех ключей, указанных в SharedLock ReleaseLocks() // Регистрация хука для выполнения при удачном завершении транзакции OnCommit(CommitHandler) // Запуск очистки устаревших записей ключей по указанному префиксу Vacuum(fdb.Key, ...Option) error // Изменение сигнального ключа, чтобы сработали Watch // По сути, выставляет хук OnCommit с правильным содержимым Touch(fdb.Key) // Ожидание изменения сигнального ключа в Touch Watch(fdb.Key) (db.Waiter, error) }
Tx - объект "логической" транзакции MVCC поверх "физической" транзакции FDB