mirror of https://github.com/tidwall/buntdb.git
removed iterator type
This commit is contained in:
parent
066fbb7901
commit
4b91c891c4
46
buntdb.go
46
buntdb.go
|
@ -52,12 +52,6 @@ var (
|
||||||
ErrShrinkInProcess = errors.New("shrink is in-process")
|
ErrShrinkInProcess = errors.New("shrink is in-process")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Iterator allows callers of Ascend* or Descend* to iterate in-order
|
|
||||||
// over portions of an index. When this function returns false, iteration
|
|
||||||
// will stop and the associated Ascend* or Descend* function will immediately
|
|
||||||
// return.
|
|
||||||
type Iterator func(key, val string) bool
|
|
||||||
|
|
||||||
// DB represents a collection of key-value pairs that persist on disk.
|
// DB represents a collection of key-value pairs that persist on disk.
|
||||||
// Transactions are used for all forms of data access to the DB.
|
// Transactions are used for all forms of data access to the DB.
|
||||||
type DB struct {
|
type DB struct {
|
||||||
|
@ -476,8 +470,8 @@ func (db *DB) backgroundManager() {
|
||||||
}
|
}
|
||||||
aofsz := int(pos)
|
aofsz := int(pos)
|
||||||
if aofsz > db.config.AutoShrinkMinSize {
|
if aofsz > db.config.AutoShrinkMinSize {
|
||||||
perc := float64(db.config.AutoShrinkPercentage) / 100.0
|
prc := float64(db.config.AutoShrinkPercentage) / 100.0
|
||||||
shrink = aofsz > db.lastaofsz+int(float64(db.lastaofsz)*perc)
|
shrink = aofsz > db.lastaofsz+int(float64(db.lastaofsz)*prc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// produce a list of expired items that need removing
|
// produce a list of expired items that need removing
|
||||||
|
@ -1240,9 +1234,8 @@ func (tx *Tx) TTL(key string) (time.Duration, error) {
|
||||||
// The start and stop params are the greaterThan, lessThan limits. For
|
// The start and stop params are the greaterThan, lessThan limits. For
|
||||||
// descending order, these will be lessThan, greaterThan.
|
// descending order, these will be lessThan, greaterThan.
|
||||||
// An error will be returned if the tx is closed or the index is not found.
|
// An error will be returned if the tx is closed or the index is not found.
|
||||||
func (tx *Tx) scan(
|
func (tx *Tx) scan(desc, gt, lt bool, index, start, stop string,
|
||||||
desc, gt, lt bool, index, start, stop string, iterator Iterator,
|
iterator func(key, value string) bool) error {
|
||||||
) error {
|
|
||||||
if tx.db == nil {
|
if tx.db == nil {
|
||||||
return ErrTxClosed
|
return ErrTxClosed
|
||||||
}
|
}
|
||||||
|
@ -1312,7 +1305,8 @@ func (tx *Tx) scan(
|
||||||
// as specified by the less() function of the defined index.
|
// as specified by the less() function of the defined index.
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) Ascend(index string, iterator Iterator) error {
|
func (tx *Tx) Ascend(index string,
|
||||||
|
iterator func(key, value string) bool) error {
|
||||||
return tx.scan(false, false, false, index, "", "", iterator)
|
return tx.scan(false, false, false, index, "", "", iterator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1322,9 +1316,8 @@ func (tx *Tx) Ascend(index string, iterator Iterator) error {
|
||||||
// as specified by the less() function of the defined index.
|
// as specified by the less() function of the defined index.
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) AscendGreaterOrEqual(
|
func (tx *Tx) AscendGreaterOrEqual(index, pivot string,
|
||||||
index, pivot string, iterator Iterator,
|
iterator func(key, value string) bool) error {
|
||||||
) error {
|
|
||||||
return tx.scan(false, true, false, index, pivot, "", iterator)
|
return tx.scan(false, true, false, index, pivot, "", iterator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1334,7 +1327,8 @@ func (tx *Tx) AscendGreaterOrEqual(
|
||||||
// as specified by the less() function of the defined index.
|
// as specified by the less() function of the defined index.
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) AscendLessThan(index, pivot string, iterator Iterator) error {
|
func (tx *Tx) AscendLessThan(index, pivot string,
|
||||||
|
iterator func(key, value string) bool) error {
|
||||||
return tx.scan(false, false, true, index, pivot, "", iterator)
|
return tx.scan(false, false, true, index, pivot, "", iterator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1345,7 +1339,7 @@ func (tx *Tx) AscendLessThan(index, pivot string, iterator Iterator) error {
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) AscendRange(index, greaterOrEqual, lessThan string,
|
func (tx *Tx) AscendRange(index, greaterOrEqual, lessThan string,
|
||||||
iterator Iterator) error {
|
iterator func(key, value string) bool) error {
|
||||||
return tx.scan(
|
return tx.scan(
|
||||||
false, true, true, index, greaterOrEqual, lessThan, iterator,
|
false, true, true, index, greaterOrEqual, lessThan, iterator,
|
||||||
)
|
)
|
||||||
|
@ -1357,7 +1351,8 @@ func (tx *Tx) AscendRange(index, greaterOrEqual, lessThan string,
|
||||||
// as specified by the less() function of the defined index.
|
// as specified by the less() function of the defined index.
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) Descend(index string, iterator Iterator) error {
|
func (tx *Tx) Descend(index string,
|
||||||
|
iterator func(key, value string) bool) error {
|
||||||
return tx.scan(true, false, false, index, "", "", iterator)
|
return tx.scan(true, false, false, index, "", "", iterator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1367,7 +1362,8 @@ func (tx *Tx) Descend(index string, iterator Iterator) error {
|
||||||
// as specified by the less() function of the defined index.
|
// as specified by the less() function of the defined index.
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) DescendGreaterThan(index, pivot string, iterator Iterator) error {
|
func (tx *Tx) DescendGreaterThan(index, pivot string,
|
||||||
|
iterator func(key, value string) bool) error {
|
||||||
return tx.scan(true, true, false, index, pivot, "", iterator)
|
return tx.scan(true, true, false, index, pivot, "", iterator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1377,7 +1373,8 @@ func (tx *Tx) DescendGreaterThan(index, pivot string, iterator Iterator) error {
|
||||||
// as specified by the less() function of the defined index.
|
// as specified by the less() function of the defined index.
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) DescendLessOrEqual(index, pivot string, iterator Iterator) error {
|
func (tx *Tx) DescendLessOrEqual(index, pivot string,
|
||||||
|
iterator func(key, value string) bool) error {
|
||||||
return tx.scan(true, false, true, index, pivot, "", iterator)
|
return tx.scan(true, false, true, index, pivot, "", iterator)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1388,7 +1385,7 @@ func (tx *Tx) DescendLessOrEqual(index, pivot string, iterator Iterator) error {
|
||||||
// When an index is not provided, the results will be ordered by the item key.
|
// When an index is not provided, the results will be ordered by the item key.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) DescendRange(index, lessOrEqual, greaterThan string,
|
func (tx *Tx) DescendRange(index, lessOrEqual, greaterThan string,
|
||||||
iterator Iterator) error {
|
iterator func(key, value string) bool) error {
|
||||||
return tx.scan(
|
return tx.scan(
|
||||||
true, true, true, index, lessOrEqual, greaterThan, iterator,
|
true, true, true, index, lessOrEqual, greaterThan, iterator,
|
||||||
)
|
)
|
||||||
|
@ -1408,7 +1405,8 @@ func (r *rect) Rect(ctx interface{}) (min, max []float64) {
|
||||||
// is represented by the rect string. This string will be processed by the
|
// is represented by the rect string. This string will be processed by the
|
||||||
// same bounds function that was passed to the CreateSpatialIndex() function.
|
// same bounds function that was passed to the CreateSpatialIndex() function.
|
||||||
// An invalid index will return an error.
|
// An invalid index will return an error.
|
||||||
func (tx *Tx) Intersects(index, bounds string, iterator Iterator) error {
|
func (tx *Tx) Intersects(index, bounds string,
|
||||||
|
iterator func(key, value string) bool) error {
|
||||||
if tx.db == nil {
|
if tx.db == nil {
|
||||||
return ErrTxClosed
|
return ErrTxClosed
|
||||||
}
|
}
|
||||||
|
@ -1615,7 +1613,5 @@ func IndexJSONCaseSensitive(path string) func(a, b string) bool {
|
||||||
|
|
||||||
// Desc is a helper function that changes the order of an index.
|
// Desc is a helper function that changes the order of an index.
|
||||||
func Desc(less func(a, b string) bool) func(a, b string) bool {
|
func Desc(less func(a, b string) bool) func(a, b string) bool {
|
||||||
return func(a, b string) bool {
|
return func(a, b string) bool { return less(b, a) }
|
||||||
return less(b, a)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue