Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrIteratorEnd = moerr.NewInternalErrorNoCtx("end of interator")
)
Functions ¶
This section is empty.
Types ¶
type Block ¶
type Block interface {
BlockReader
BlockWriter
}
type BlockReader ¶
type BlockReader interface {
io.Closer
ID() uint64
String() string
IsUncommitted() bool
GetByFilter(filter *Filter) (uint32, error)
GetColumnDataByNames(attrs []string, buffers []*bytes.Buffer) (*model.BlockView, error)
GetColumnDataByIds(colIdxes []int, buffers []*bytes.Buffer) (*model.BlockView, error)
GetColumnDataByName(string, *bytes.Buffer) (*model.ColumnView, error)
GetColumnDataById(int, *bytes.Buffer) (*model.ColumnView, error)
GetMeta() any
GetMetaLoc() string
GetDeltaLoc() string
Fingerprint() *common.ID
Rows() int
// Why need rowmask?
// We don't update the index until committing the transaction. Before that, even if we deleted a row
// from a block, the index would not change. If then we insert a row with the same primary key as the
// previously deleted row, there will be an deduplication error (unexpected!).
// Here we use the rowmask to ingore any deduplication error on those deleted rows.
BatchDedup(col containers.Vector, invisibility *roaring.Bitmap) error
IsAppendableBlock() bool
GetSegment() Segment
GetTotalChanges() int
}
type BlockWriter ¶
type BlockWriter interface {
io.Closer
Append(data *containers.Batch, offset uint32) (uint32, error)
Update(row uint32, col uint16, v any) error
RangeDelete(start, end uint32, dt DeleteType) error
UpdateMetaLoc(metaLoc string) error
UpdateDeltaLoc(deltaLoc string) error
PushDeleteOp(filter Filter) error
PushUpdateOp(filter Filter, attr string, val any) error
}
type Database ¶
type Database interface {
io.Closer
GetID() uint64
GetName() string
CreateRelation(def any) (Relation, error)
CreateRelationWithID(def any, id uint64) (Relation, error)
DropRelationByName(name string) (Relation, error)
DropRelationByID(id uint64) (Relation, error)
TruncateByName(name string) (Relation, error)
TruncateWithID(name string, newTableId uint64) (Relation, error)
TruncateByID(id uint64, newTableId uint64) (Relation, error)
UnsafeGetRelation(id uint64) (Relation, error)
GetRelationByName(name string) (Relation, error)
GetRelationByID(id uint64) (Relation, error)
RelationCnt() int64
Relations() []Relation
MakeRelationIt() RelationIt
String() string
GetMeta() any
}
type Filter ¶
func NewEQFilter ¶
type Iterator ¶
type Iterator interface {
sync.Locker
RLock()
RUnlock()
io.Closer
Valid() bool
Next()
GetError() error
}
Iterator TODO: this is not thread-safe
type MetaUpdateNode ¶ added in v0.6.0
type MetaUpdateNode interface{}
type Relation ¶
type Relation interface {
io.Closer
ID() uint64
Rows() int64
String() string
SimplePPString(common.PPLevel) string
GetCardinality(attr string) int64
Schema() any
UpdateConstraint([]byte) error
MakeSegmentIt() SegmentIt
MakeBlockIt() BlockIt
DeleteByPhyAddrKey(key any) error
GetValueByPhyAddrKey(key any, col int) (any, error)
DeleteByPhyAddrKeys(keys containers.Vector) error
RangeDelete(id *common.ID, start, end uint32, dt DeleteType) error
Update(id *common.ID, row uint32, col uint16, v any) error
GetByFilter(filter *Filter) (id *common.ID, offset uint32, err error)
GetValue(id *common.ID, row uint32, col uint16) (any, error)
GetValueByFilter(filter *Filter, col int) (any, error)
UpdateByFilter(filter *Filter, col uint16, v any) error
DeleteByFilter(filter *Filter) error
BatchDedup(col containers.Vector) error
Append(data *containers.Batch) error
AddBlksWithMetaLoc(pkVecs []containers.Vector, file string, metaLcos []string, flag int32) error
GetMeta() any
CreateSegment(bool) (Segment, error)
CreateNonAppendableSegment(is1PC bool) (Segment, error)
GetSegment(id uint64) (Segment, error)
SoftDeleteSegment(id uint64) (err error)
GetDB() (Database, error)
}
type RelationIt ¶
type Segment ¶
type Segment interface {
SegmentReader
SegmentWriter
}
type SegmentReader ¶
type SegmentReader interface {
io.Closer
GetID() uint64
IsUncommitted() bool
IsAppendable() bool
MakeBlockIt() BlockIt
// GetByFilter(filter Filter, offsetOnly bool) (map[uint64]*batch.Batch, error)
String() string
GetMeta() any
GetBlock(id uint64) (Block, error)
GetRelation() Relation
BatchDedup(pks containers.Vector) error
}
type SegmentWriter ¶
type SegmentWriter interface {
io.Closer
String() string
Update(blk uint64, row uint32, col uint16, v any) error
RangeDelete(blk uint64, start, end uint32, dt DeleteType) error
PushDeleteOp(filter Filter) error
PushUpdateOp(filter Filter, attr string, val any) error
CreateBlock(bool) (Block, error)
CreateNonAppendableBlock() (Block, error)
CreateNonAppendableBlockWithMeta(string, string) (Block, error)
SoftDeleteBlock(id uint64) (err error)
}
Click to show internal directories.
Click to hide internal directories.