Files
sqlite3/vtab.go

69 lines
1.1 KiB
Go
Raw Normal View History

2023-11-10 13:23:14 +00:00
package sqlite3
type Module interface {
Connect(db *Conn, arg ...string) (Vtab, error)
}
type ModuleCreator interface {
Module
Create(db *Conn, arg ...string) (Vtab, error)
}
type ModuleShadowNamer interface {
Module
ShadowName(suffix string) bool
}
type Vtab interface {
BestIndex(*IndexInfo) error
Disconnect() error
Destroy() error
Open() (VtabCursor, error)
}
type VtabUpdater interface {
Vtab
Update(arg ...Value) (rowid int64, err error)
}
type VtabRenamer interface {
Vtab
Rename(new string) error
}
type VtabOverloader interface {
Vtab
FindFunction(arg int, name string) (func(ctx Context, arg ...Value), error)
}
type VtabChecker interface {
Vtab
Integrity(schema, table string, flags int) error
}
type VtabTx interface {
Vtab
Begin() error
Sync() error
Commit() error
Rollback() error
}
type VtabSavepointer interface {
VtabTx
Savepoint(n int) error
Release(n int) error
RollbackTo(n int) error
}
type VtabCursor interface {
Close() error
Filter(idxNum int, idxStr string, arg ...Value)
Next() error
Eof() bool
Column(ctx *Context, n int) error
Rowid() (int64, error)
}
type IndexInfo struct{}