pkg nosql, const DeleteChange ChangeType
pkg nosql, const PutChange ChangeType
pkg nosql, func NewDatabase(string, string, *Schema) *database
pkg nosql, func NewSchema(wire.SchemaMetadata, SchemaUpgrader) *Schema
pkg nosql, func NewValue(*context.T, interface{}) (*Value, error)
pkg nosql, func Prefix(string) PrefixRange
pkg nosql, func Range(string, string) RowRange
pkg nosql, func RunInBatch(*context.T, Database, wire.BatchOptions, func(BatchDatabase) error) error
pkg nosql, func SingleRow(string) RowRange
pkg nosql, func ToWatchChange(watch.Change) WatchChange
pkg nosql, func UUID() string
pkg nosql, method (*InvalidScanStream) Advance() bool
pkg nosql, method (*InvalidScanStream) Cancel()
pkg nosql, method (*InvalidScanStream) Err() error
pkg nosql, method (*InvalidScanStream) Key() string
pkg nosql, method (*InvalidScanStream) Value(interface{}) error
pkg nosql, method (*Value) Get(interface{}) error
pkg nosql, method (*WatchChange) Value(interface{}) error
pkg nosql, type BatchDatabase interface { Abort, Close, Commit, Exec, FullName, GetResumeMarker, ListTables, Name, Table }
pkg nosql, type BatchDatabase interface, Abort(*context.T) error
pkg nosql, type BatchDatabase interface, Close()
pkg nosql, type BatchDatabase interface, Commit(*context.T) error
pkg nosql, type BatchDatabase interface, Exec(*context.T, string) ([]string, ResultStream, error)
pkg nosql, type BatchDatabase interface, FullName() string
pkg nosql, type BatchDatabase interface, GetResumeMarker(*context.T) (watch.ResumeMarker, error)
pkg nosql, type BatchDatabase interface, ListTables(*context.T) ([]string, error)
pkg nosql, type BatchDatabase interface, Name() string
pkg nosql, type BatchDatabase interface, Table(string) Table
pkg nosql, type Blob interface { Commit, Delete, Fetch, Get, Keep, Pin, Put, Ref, Size, Unpin }
pkg nosql, type Blob interface, Commit(*context.T) error
pkg nosql, type Blob interface, Delete(*context.T) error
pkg nosql, type Blob interface, Fetch(*context.T, uint64) (BlobStatus, error)
pkg nosql, type Blob interface, Get(*context.T, int64) (BlobReader, error)
pkg nosql, type Blob interface, Keep(*context.T, uint64) error
pkg nosql, type Blob interface, Pin(*context.T) error
pkg nosql, type Blob interface, Put(*context.T) (BlobWriter, error)
pkg nosql, type Blob interface, Ref() wire.BlobRef
pkg nosql, type Blob interface, Size(*context.T) (int64, error)
pkg nosql, type Blob interface, Unpin(*context.T) error
pkg nosql, type BlobReader interface { Advance, Cancel, Err, Value }
pkg nosql, type BlobReader interface, Advance() bool
pkg nosql, type BlobReader interface, Cancel()
pkg nosql, type BlobReader interface, Err() error
pkg nosql, type BlobReader interface, Value() []byte
pkg nosql, type BlobStatus interface { Advance, Cancel, Err, Value }
pkg nosql, type BlobStatus interface, Advance() bool
pkg nosql, type BlobStatus interface, Cancel()
pkg nosql, type BlobStatus interface, Err() error
pkg nosql, type BlobStatus interface, Value() wire.BlobFetchStatus
pkg nosql, type BlobWriter interface { Close, Send }
pkg nosql, type BlobWriter interface, Close() error
pkg nosql, type BlobWriter interface, Send([]byte) error
pkg nosql, type ChangeType uint32
pkg nosql, type Conflict struct
pkg nosql, type Conflict struct, Batches map[uint64]nosql.BatchInfo
pkg nosql, type Conflict struct, ReadSet *ConflictRowSet
pkg nosql, type Conflict struct, ScanSet *ConflictScanSet
pkg nosql, type Conflict struct, WriteSet *ConflictRowSet
pkg nosql, type ConflictResolver interface { OnConflict }
pkg nosql, type ConflictResolver interface, OnConflict(*context.T, *Conflict) Resolution
pkg nosql, type ConflictRow struct
pkg nosql, type ConflictRow struct, AncestorValue Value
pkg nosql, type ConflictRow struct, BatchIds []uint64
pkg nosql, type ConflictRow struct, Key string
pkg nosql, type ConflictRow struct, LocalValue Value
pkg nosql, type ConflictRow struct, RemoteValue Value
pkg nosql, type ConflictRowSet struct
pkg nosql, type ConflictRowSet struct, ByBatch map[uint64][]ConflictRow
pkg nosql, type ConflictRowSet struct, ByKey map[string]ConflictRow
pkg nosql, type ConflictScanSet struct
pkg nosql, type ConflictScanSet struct, ByBatch map[uint64][]nosql.ScanOp
pkg nosql, type Database interface { BeginBatch, Blob, Close, Create, CreateBlob, Destroy, EnforceSchema, Exec, Exists, FullName, GetPermissions, GetResumeMarker, GetSyncgroupNames, ListTables, Name, SetPermissions, Syncgroup, Table, Watch }
pkg nosql, type Database interface, BeginBatch(*context.T, wire.BatchOptions) (BatchDatabase, error)
pkg nosql, type Database interface, Blob(wire.BlobRef) Blob
pkg nosql, type Database interface, Close()
pkg nosql, type Database interface, Create(*context.T, access.Permissions) error
pkg nosql, type Database interface, CreateBlob(*context.T) (Blob, error)
pkg nosql, type Database interface, Destroy(*context.T) error
pkg nosql, type Database interface, EnforceSchema(*context.T) error
pkg nosql, type Database interface, Exec(*context.T, string) ([]string, ResultStream, error)
pkg nosql, type Database interface, Exists(*context.T) (bool, error)
pkg nosql, type Database interface, FullName() string
pkg nosql, type Database interface, GetPermissions(*context.T) (access.Permissions, string, error)
pkg nosql, type Database interface, GetResumeMarker(*context.T) (watch.ResumeMarker, error)
pkg nosql, type Database interface, GetSyncgroupNames(*context.T) ([]string, error)
pkg nosql, type Database interface, ListTables(*context.T) ([]string, error)
pkg nosql, type Database interface, Name() string
pkg nosql, type Database interface, SetPermissions(*context.T, access.Permissions, string) error
pkg nosql, type Database interface, Syncgroup(string) Syncgroup
pkg nosql, type Database interface, Table(string) Table
pkg nosql, type Database interface, Watch(*context.T, string, string, watch.ResumeMarker) (WatchStream, error)
pkg nosql, type DatabaseHandle interface { Close, Exec, FullName, GetResumeMarker, ListTables, Name, Table }
pkg nosql, type DatabaseHandle interface, Close()
pkg nosql, type DatabaseHandle interface, Exec(*context.T, string) ([]string, ResultStream, error)
pkg nosql, type DatabaseHandle interface, FullName() string
pkg nosql, type DatabaseHandle interface, GetResumeMarker(*context.T) (watch.ResumeMarker, error)
pkg nosql, type DatabaseHandle interface, ListTables(*context.T) ([]string, error)
pkg nosql, type DatabaseHandle interface, Name() string
pkg nosql, type DatabaseHandle interface, Table(string) Table
pkg nosql, type InvalidScanStream struct
pkg nosql, type InvalidScanStream struct, Error error
pkg nosql, type PrefixPermissions struct
pkg nosql, type PrefixPermissions struct, Perms access.Permissions
pkg nosql, type PrefixPermissions struct, Prefix PrefixRange
pkg nosql, type PrefixRange interface { Limit, Prefix, Start }
pkg nosql, type PrefixRange interface, Limit() string
pkg nosql, type PrefixRange interface, Prefix() string
pkg nosql, type PrefixRange interface, Start() string
pkg nosql, type Resolution struct
pkg nosql, type Resolution struct, ResultSet map[string]ResolvedRow
pkg nosql, type ResolvedRow struct
pkg nosql, type ResolvedRow struct, Key string
pkg nosql, type ResolvedRow struct, Result *Value
pkg nosql, type ResultStream interface { Advance, Cancel, Err, Result }
pkg nosql, type ResultStream interface, Advance() bool
pkg nosql, type ResultStream interface, Cancel()
pkg nosql, type ResultStream interface, Err() error
pkg nosql, type ResultStream interface, Result() []*vdl.Value
pkg nosql, type Row interface { Delete, Exists, FullName, Get, Key, Put }
pkg nosql, type Row interface, Delete(*context.T) error
pkg nosql, type Row interface, Exists(*context.T) (bool, error)
pkg nosql, type Row interface, FullName() string
pkg nosql, type Row interface, Get(*context.T, interface{}) error
pkg nosql, type Row interface, Key() string
pkg nosql, type Row interface, Put(*context.T, interface{}) error
pkg nosql, type RowRange interface { Limit, Start }
pkg nosql, type RowRange interface, Limit() string
pkg nosql, type RowRange interface, Start() string
pkg nosql, type ScanStream interface { Advance, Cancel, Err, Key, Value }
pkg nosql, type ScanStream interface, Advance() bool
pkg nosql, type ScanStream interface, Cancel()
pkg nosql, type ScanStream interface, Err() error
pkg nosql, type ScanStream interface, Key() string
pkg nosql, type ScanStream interface, Value(interface{}) error
pkg nosql, type Schema struct
pkg nosql, type Schema struct, Metadata wire.SchemaMetadata
pkg nosql, type Schema struct, Resolver ConflictResolver
pkg nosql, type Schema struct, Upgrader SchemaUpgrader
pkg nosql, type SchemaUpgrader interface { Run }
pkg nosql, type SchemaUpgrader interface, Run(Database, int32, int32) error
pkg nosql, type Stream interface { Advance, Cancel, Err }
pkg nosql, type Stream interface, Advance() bool
pkg nosql, type Stream interface, Cancel()
pkg nosql, type Stream interface, Err() error
pkg nosql, type Syncgroup interface { Create, Destroy, Eject, GetMembers, GetSpec, Join, Leave, SetSpec }
pkg nosql, type Syncgroup interface, Create(*context.T, wire.SyncgroupSpec, wire.SyncgroupMemberInfo) error
pkg nosql, type Syncgroup interface, Destroy(*context.T) error
pkg nosql, type Syncgroup interface, Eject(*context.T, string) error
pkg nosql, type Syncgroup interface, GetMembers(*context.T) (map[string]wire.SyncgroupMemberInfo, error)
pkg nosql, type Syncgroup interface, GetSpec(*context.T) (wire.SyncgroupSpec, string, error)
pkg nosql, type Syncgroup interface, Join(*context.T, wire.SyncgroupMemberInfo) (wire.SyncgroupSpec, error)
pkg nosql, type Syncgroup interface, Leave(*context.T) error
pkg nosql, type Syncgroup interface, SetSpec(*context.T, wire.SyncgroupSpec, string) error
pkg nosql, type Table interface { Create, Delete, DeletePrefixPermissions, DeleteRange, Destroy, Exists, FullName, Get, GetPermissions, GetPrefixPermissions, Name, Put, Row, Scan, SetPermissions, SetPrefixPermissions }
pkg nosql, type Table interface, Create(*context.T, access.Permissions) error
pkg nosql, type Table interface, Delete(*context.T, string) error
pkg nosql, type Table interface, DeletePrefixPermissions(*context.T, PrefixRange) error
pkg nosql, type Table interface, DeleteRange(*context.T, RowRange) error
pkg nosql, type Table interface, Destroy(*context.T) error
pkg nosql, type Table interface, Exists(*context.T) (bool, error)
pkg nosql, type Table interface, FullName() string
pkg nosql, type Table interface, Get(*context.T, string, interface{}) error
pkg nosql, type Table interface, GetPermissions(*context.T) (access.Permissions, error)
pkg nosql, type Table interface, GetPrefixPermissions(*context.T, string) ([]PrefixPermissions, error)
pkg nosql, type Table interface, Name() string
pkg nosql, type Table interface, Put(*context.T, string, interface{}) error
pkg nosql, type Table interface, Row(string) Row
pkg nosql, type Table interface, Scan(*context.T, RowRange) ScanStream
pkg nosql, type Table interface, SetPermissions(*context.T, access.Permissions) error
pkg nosql, type Table interface, SetPrefixPermissions(*context.T, PrefixRange, access.Permissions) error
pkg nosql, type Value struct
pkg nosql, type Value struct, Selection nosql.ValueSelection
pkg nosql, type Value struct, State nosql.ValueState
pkg nosql, type Value struct, Val []byte
pkg nosql, type Value struct, WriteTs time.Time
pkg nosql, type WatchChange struct
pkg nosql, type WatchChange struct, ChangeType ChangeType
pkg nosql, type WatchChange struct, Continued bool
pkg nosql, type WatchChange struct, FromSync bool
pkg nosql, type WatchChange struct, ResumeMarker watch.ResumeMarker
pkg nosql, type WatchChange struct, Row string
pkg nosql, type WatchChange struct, Table string
pkg nosql, type WatchChange struct, ValueBytes []byte
pkg nosql, type WatchStream interface { Advance, Cancel, Change, Err }
pkg nosql, type WatchStream interface, Advance() bool
pkg nosql, type WatchStream interface, Cancel()
pkg nosql, type WatchStream interface, Change() WatchChange
pkg nosql, type WatchStream interface, Err() error
