QECombiner combines the query results from one or more underlying 'queryExecuters' In case, the same key is returned by multiple 'queryExecuters', the first 'queryExecuter' in the input is considered having the latest state of the key
type QECombiner struct { QueryExecuters []QueryExecuter // actual executers in decending order of priority }
func (c *QECombiner) GetState(namespace string, key string) ([]byte, error)
GetState implements function in the interface ledger.SimpleQueryExecutor
func (c *QECombiner) GetStateRangeScanIterator(namespace string, startKey string, endKey string) (commonledger.ResultsIterator, error)
GetStateRangeScanIterator implements function in the interface ledger.SimpleQueryExecutor
QueryExecuter encapsulates query functions
type QueryExecuter interface { GetState(namespace, key string) (*statedb.VersionedValue, error) GetStateRangeScanIterator(namespace, startKey, endKey string) (statedb.ResultsIterator, error) }
UpdateBatchBackedQueryExecuter wraps an update batch for providing functions in the interface 'queryExecuter'
type UpdateBatchBackedQueryExecuter struct { UpdateBatch *statedb.UpdateBatch }
func (qe *UpdateBatchBackedQueryExecuter) GetState(ns, key string) (*statedb.VersionedValue, error)
GetState implements function in interface 'queryExecuter'
func (qe *UpdateBatchBackedQueryExecuter) GetStateRangeScanIterator(namespace, startKey, endKey string) (statedb.ResultsIterator, error)
GetStateRangeScanIterator implements function in interface 'queryExecuter'