当前位置: 首页>>代码示例>>Golang>>正文


Golang ReadTransaction.GetRange方法代码示例

本文整理汇总了Golang中github.com/FoundationDB/fdb-go/fdb.ReadTransaction.GetRange方法的典型用法代码示例。如果您正苦于以下问题:Golang ReadTransaction.GetRange方法的具体用法?Golang ReadTransaction.GetRange怎么用?Golang ReadTransaction.GetRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/FoundationDB/fdb-go/fdb.ReadTransaction的用法示例。


在下文中一共展示了ReadTransaction.GetRange方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: subdirNames

func (dl directoryLayer) subdirNames(rtr fdb.ReadTransaction, node subspace.Subspace) ([]string, error) {
	sd := node.Sub(_SUBDIRS)

	rr := rtr.GetRange(sd, fdb.RangeOptions{})
	ri := rr.Iterator()

	var ret []string

	for ri.Advance() {
		kv := ri.MustGet()

		p, e := sd.Unpack(kv.Key)
		if e != nil {
			return nil, e
		}

		ret = append(ret, p[0].(string))
	}

	return ret, nil
}
开发者ID:ptomasroos,项目名称:fdb-go,代码行数:21,代码来源:directoryLayer.go

示例2: nodeContainingKey

func (dl directoryLayer) nodeContainingKey(rtr fdb.ReadTransaction, key []byte) (subspace.Subspace, error) {
	if bytes.HasPrefix(key, dl.nodeSS.Bytes()) {
		return dl.rootNode, nil
	}

	bk, _ := dl.nodeSS.FDBRangeKeys()
	kr := fdb.KeyRange{bk, fdb.Key(append(dl.nodeSS.Pack(tuple.Tuple{key}), 0x00))}

	kvs := rtr.GetRange(kr, fdb.RangeOptions{Reverse: true, Limit: 1}).GetSliceOrPanic()
	if len(kvs) == 1 {
		pp, e := dl.nodeSS.Unpack(kvs[0].Key)
		if e != nil {
			return nil, e
		}
		prevPrefix := pp[0].([]byte)
		if bytes.HasPrefix(key, prevPrefix) {
			return dl.nodeWithPrefix(prevPrefix), nil
		}
	}

	return nil, nil
}
开发者ID:ptomasroos,项目名称:fdb-go,代码行数:22,代码来源:directoryLayer.go

示例3: isRangeEmpty

func isRangeEmpty(rtr fdb.ReadTransaction, r fdb.Range) bool {
	kvs := rtr.GetRange(r, fdb.RangeOptions{Limit: 1}).GetSliceOrPanic()

	return len(kvs) == 0
}
开发者ID:ptomasroos,项目名称:fdb-go,代码行数:5,代码来源:directoryLayer.go


注:本文中的github.com/FoundationDB/fdb-go/fdb.ReadTransaction.GetRange方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。