Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Connection ¶
type Connection interface {
metrics.Metricsable
log.Logable
io.Closer
// DriverName returns the name of the associated driver.
DriverName() string
// ListDatabases returns the names of the available databases. The names
// are sorted in increasing order. This is not supported by every driver,
// in which case errors.OperationNotSupported will be returned.
ListDatabases(ctx context.Context) ([]string, error)
// CreateDatabase creates a database with the given name on the
// connection.
CreateDatabase(ctx context.Context, name string) error
// DeleteDatabase deletes the indicated database on the connection. Does
// not return an error if the table does not exist.
DeleteDatabase(ctx context.Context, name string) error
// ConnectToDatabase connects to the indicated database.
ConnectToDatabase(ctx context.Context, name string) (Database, error)
}
Connection provides a connection.
func NewConnection ¶ added in v0.1.37
func NewConnection(c driver.Connection) Connection
NewConnection returns a new connection wrapping the given driver connection.
type Database ¶ added in v0.1.37
type Database interface {
metrics.Metricser
log.Logger
io.Closer
// Name return the database name.
Name() string
// ListTables returns the names of the tables in the database. The names
// are sorted in increasing order.
ListTables(ctx context.Context) ([]string, error)
// CreateTable creates a table with the given name in the database.
//
// The provided template will be used by the underlying storage-engine
// to create the new table if appropriate; the storage-engine is free to
// ignore the template if it is not required (for example, in a
// schema-less database).
CreateTable(ctx context.Context, name string, template record.Record) error
// DeleteTable deletes the indicated table from the database. Does not
// return an error if the table does not exist.
DeleteTable(ctx context.Context, name string) error
// RenameTable changes the name of a table in the database.
RenameTable(ctx context.Context, oldname string, newname string) error
// ConnectToTable connects to the indicated table in the database.
ConnectToTable(ctx context.Context, name string) (Table, error)
}
Database provides a connection to a database.
type ReaderError ¶
type ReaderError interface {
Error() string // Error returns a string representation of the error.
Line() uint64 // Line returns the line number on which the error occurred.
Index() uint64 // Index returns the record index for which the error occurred (indexed from 1).
Key() string // Key returns the key associated with this error, if known.
}
ReaderError is the interface satisfied by some errors returned by a "key: value" parser.
type ReaderOptions ¶
type ReaderOptions struct {
Template record.Record // Specifies the value types.
AllowDuplicateKeys bool // If true, duplicate keys are allowed, with only the most recently read value appearing in the read record.
AllowEmptyKeys bool // If true, allow the read record to have empty keys.
AllowMissingKeys bool // If true, allow read records not to have all the keys in Template; that is, there may be keys in Template that are missing from the read record.
AllowUnknownKeys bool // If true, allow read records to have keys not in Template; that is, there may be keys in the read record that are missing from Template. The type of the associated value will be a string. Note that if IgnoreUnknownKeys is true then AllowUnknownKeys is ignored.
IgnoreUnknownKeys bool // If true, ignore any keys not in Template; that is, any keys not in Template will be skipped and will be omitted from the read record. Note that IgnoreUnknownKeys takes priority over AllowUnknownKeys.
}
ReaderOptions specified options for a reader.
type Table ¶
type Table interface {
metrics.Metricser
log.Logger
io.Closer
// Name return the table name.
Name() string
// Describe returns a best-guess template for the data in this table.
//
// Note that the accuracy of this template depends on the underlying
// storage engine. It might not be possible to return an exact
// description (for example, in a schema-less database), and in this
// case we return a good guess based on a sample of the data available.
Describe(ctx context.Context) (record.Record, error)
// Count returns the number of records in the table that match
// "selector".
Count(ctx context.Context, selector record.Record) (int64, error)
// CountWhere returns the number of records in the table that satisfy
// condition "cond" (which may be nil if there are no conditions).
CountWhere(ctx context.Context, cond condition.Condition) (int64, error)
// InsertRecords inserts the given records into the table.
InsertRecords(ctx context.Context, records ...record.Record) error
// Insert inserts the records in the given iterator into the table.
Insert(ctx context.Context, itr record.Iterator) error
// Update updates all records in the table that match "selector" by
// setting all keys present in "replacement" to the given values.
// Returns the number of records updated.
Update(ctx context.Context, replacement record.Record, selector record.Record) (int64, error)
// UpdateWhere updates all records in the table that satisfy condition
// "cond" (which may be nil if there are no conditions) by setting all
// keys present in "replacement" to the given values. Returns the number
// of records updated.
UpdateWhere(ctx context.Context, replacement record.Record, cond condition.Condition) (int64, error)
// Select returns the records matching "selector", sorted as specified
// by "order" (which may be nil if there is no sort order required).
// The returned records will be in the form specified by "template".
Select(ctx context.Context, template record.Record, selector record.Record, order sort.OrderBy) (record.Iterator, error)
// SelectWhere returns the results satisfying condition "cond" (which
// may be nil if there are no conditions), sorted as specified by
// "order" (which may be nil if there is no sort order required). The
// returned records will be in the form specified by "template".
SelectWhere(ctx context.Context, template record.Record, cond condition.Condition, order sort.OrderBy) (record.Iterator, error)
// SelectLimit returns at most n records matching "selector", sorted as
// specified by "order" (which may be nil if there is no sort order
// required). The returned records will be in the form specified by
// "template".
SelectLimit(ctx context.Context, template record.Record, selector record.Record, order sort.OrderBy, n int64) (record.Iterator, error)
// SelectWhereLimit returns at most n results satisfying condition
// "cond" (which may be nil if there are no conditions), sorted as
// specified by "order" (which may be nil if there is no sort order
// required). The returned records will be in the form specified by
// "template".
SelectWhereLimit(ctx context.Context, template record.Record, cond condition.Condition, order sort.OrderBy, n int64) (record.Iterator, error)
// SelectOne returns the first record matching "selector", sorted as
// specified by "order" (which may be nil if there is no sort order
// required). The returned record will be in the form specified by
// "template". If no records match, then a nil record will be returned.
SelectOne(ctx context.Context, template record.Record, selector record.Record, order sort.OrderBy) (record.Record, error)
// SelectOneWhere returns the first record satisfying condition "cond"
// (which may be nil if there are no conditions), sorted as specified by
// "order" (which may be nil if there is no sort order required). The
// returned record will be in the form specified by "template". If no
// records match, then a nil record will be returned.
SelectOneWhere(ctx context.Context, template record.Record, cond condition.Condition, order sort.OrderBy) (record.Record, error)
// Delete deletes those records in the table that match "selector".
// Returns the number of records deleted.
Delete(ctx context.Context, selector record.Record) (int64, error)
// DeleteWhere deletes those records in the table that satisfy condition
// "cond" (which may be nil if there are no conditions). Returns the
// number of records deleted.
DeleteWhere(ctx context.Context, cond condition.Condition) (int64, error)
// AddIndex adds an index on the given key. If an index already exists,
// this index is unmodified and nil is returned.
AddIndex(ctx context.Context, key string) error
// DeleteIndex deletes the index on the given key. If no index is
// present, nil is returned.
DeleteIndex(ctx context.Context, key string) error
// ListIndices lists the keys for which indices are present. The keys
// are sorted in increasing order.
ListIndices(ctx context.Context) ([]string, error)
// AddKeys updates each record r the table, adding any keys in rec that
// are not already present along with the corresponding values. Any keys
// that are already present in r will be left unmodified.
AddKeys(ctx context.Context, rec record.Record) error
// AddKey updates each record r in the table, adding the given
// key-value pair if key is not already present in r.
AddKey(ctx context.Context, key string, value interface{}) error
// DeleteKeys updates each record in the table, deleting all the
// specified keys if present.
DeleteKeys(ctx context.Context, keys []string) error
// DeleteKey updates each record in the table, deleting the specified
// key if present.
DeleteKey(ctx context.Context, key string) error
}
Table provides a database connection to a table.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
pcas-add-sequential-id
command
|
|
|
pcas-keyvalue-dump
command
|
|
|
pcas-keyvalue-restore
command
|
|
|
pcas-kvdbd
command
|
|
|
internal
|
|
|
Package parse defines a parser for parsing SQL-formatted queries.
|
Package parse defines a parser for parsing SQL-formatted queries. |
Click to show internal directories.
Click to hide internal directories.