diff --git a/core/chaincode/handler.go b/core/chaincode/handler.go index e6c8e6e6c86..32ad34dc0be 100644 --- a/core/chaincode/handler.go +++ b/core/chaincode/handler.go @@ -710,14 +710,9 @@ func (h *Handler) HandleGetStateByRange(msg *pb.ChaincodeMessage, txContext *Tra } totalReturnLimit := h.calculateTotalReturnLimit(metadata) - iterID := h.UUIDGenerator.New() - var rangeIter commonledger.ResultsIterator - var paginationInfo map[string]interface{} - isPaginated := false - namespaceID := txContext.NamespaceID collection := getStateByRange.Collection if isCollectionSet(collection) { @@ -730,21 +725,15 @@ func (h *Handler) HandleGetStateByRange(msg *pb.ChaincodeMessage, txContext *Tra rangeIter, err = txContext.TXSimulator.GetPrivateDataRangeScanIterator(namespaceID, collection, getStateByRange.StartKey, getStateByRange.EndKey) } else if isMetadataSetForPagination(metadata) { - paginationInfo, err = createPaginationInfoFromMetadata(metadata, totalReturnLimit, pb.ChaincodeMessage_GET_STATE_BY_RANGE) - if err != nil { - return nil, err - } isPaginated = true - startKey := getStateByRange.StartKey - if isMetadataSetForPagination(metadata) { if metadata.Bookmark != "" { startKey = metadata.Bookmark } } - rangeIter, err = txContext.TXSimulator.GetStateRangeScanIteratorWithMetadata(namespaceID, - startKey, getStateByRange.EndKey, paginationInfo) + rangeIter, err = txContext.TXSimulator.GetStateRangeScanIteratorWithPagination(namespaceID, + startKey, getStateByRange.EndKey, metadata.PageSize) } else { rangeIter, err = txContext.TXSimulator.GetStateRangeScanIterator(namespaceID, getStateByRange.StartKey, getStateByRange.EndKey) } @@ -838,10 +827,7 @@ func (h *Handler) HandleGetQueryResult(msg *pb.ChaincodeMessage, txContext *Tran totalReturnLimit := h.calculateTotalReturnLimit(metadata) isPaginated := false - var executeIter commonledger.ResultsIterator - var paginationInfo map[string]interface{} - namespaceID := txContext.NamespaceID collection := getQueryResult.Collection if isCollectionSet(collection) { @@ -853,13 +839,9 @@ func (h *Handler) HandleGetQueryResult(msg *pb.ChaincodeMessage, txContext *Tran } executeIter, err = txContext.TXSimulator.ExecuteQueryOnPrivateData(namespaceID, collection, getQueryResult.Query) } else if isMetadataSetForPagination(metadata) { - paginationInfo, err = createPaginationInfoFromMetadata(metadata, totalReturnLimit, pb.ChaincodeMessage_GET_QUERY_RESULT) - if err != nil { - return nil, err - } isPaginated = true - executeIter, err = txContext.TXSimulator.ExecuteQueryWithMetadata(namespaceID, - getQueryResult.Query, paginationInfo) + executeIter, err = txContext.TXSimulator.ExecuteQueryWithPagination(namespaceID, + getQueryResult.Query, metadata.Bookmark, metadata.PageSize) } else { executeIter, err = txContext.TXSimulator.ExecuteQuery(namespaceID, getQueryResult.Query) @@ -952,22 +934,6 @@ func getQueryMetadataFromBytes(metadataBytes []byte) (*pb.QueryMetadata, error) return nil, nil } -func createPaginationInfoFromMetadata(metadata *pb.QueryMetadata, totalReturnLimit int32, queryType pb.ChaincodeMessage_Type) (map[string]interface{}, error) { - paginationInfoMap := make(map[string]interface{}) - - switch queryType { - case pb.ChaincodeMessage_GET_QUERY_RESULT: - paginationInfoMap["bookmark"] = metadata.Bookmark - case pb.ChaincodeMessage_GET_STATE_BY_RANGE: - // this is a no-op for range query - default: - return nil, errors.New("query type must be either GetQueryResult or GetStateByRange") - } - - paginationInfoMap["limit"] = totalReturnLimit - return paginationInfoMap, nil -} - func (h *Handler) calculateTotalReturnLimit(metadata *pb.QueryMetadata) int32 { totalReturnLimit := int32(h.TotalQueryLimit) if metadata != nil { diff --git a/core/chaincode/mock/tx_simulator.go b/core/chaincode/mock/tx_simulator.go index f7bd19ad87a..bd4f8f0aca3 100644 --- a/core/chaincode/mock/tx_simulator.go +++ b/core/chaincode/mock/tx_simulator.go @@ -92,18 +92,19 @@ type TxSimulator struct { result1 ledger.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -266,19 +267,19 @@ type TxSimulator struct { result1 ledger.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -775,66 +776,67 @@ func (fake *TxSimulator) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *TxSimulator) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *TxSimulator) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *TxSimulator) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *TxSimulator) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *TxSimulator) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *TxSimulator) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1563,67 +1565,67 @@ func (fake *TxSimulator) GetStateRangeScanIteratorReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -2084,8 +2086,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.executeUpdateMutex.RLock() defer fake.executeUpdateMutex.RUnlock() fake.getPrivateDataMutex.RLock() @@ -2108,8 +2110,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() fake.getTxSimulationResultsMutex.RLock() defer fake.getTxSimulationResultsMutex.RUnlock() fake.setPrivateDataMutex.RLock() diff --git a/core/committer/txvalidator/mocks/query_executor.go b/core/committer/txvalidator/mocks/query_executor.go index 7d6903f6a77..b0027c62405 100644 --- a/core/committer/txvalidator/mocks/query_executor.go +++ b/core/committer/txvalidator/mocks/query_executor.go @@ -2,12 +2,9 @@ package mocks -import ( - ledger "github.com/hyperledger/fabric/common/ledger" - coreledger "github.com/hyperledger/fabric/core/ledger" - - mock "github.com/stretchr/testify/mock" -) +import coreledger "github.com/hyperledger/fabric/core/ledger" +import ledger "github.com/hyperledger/fabric/common/ledger" +import mock "github.com/stretchr/testify/mock" // QueryExecutor is an autogenerated mock type for the QueryExecutor type type QueryExecutor struct { @@ -65,13 +62,13 @@ func (_m *QueryExecutor) ExecuteQueryOnPrivateData(namespace string, collection return r0, r1 } -// ExecuteQueryWithMetadata provides a mock function with given fields: namespace, query, metadata -func (_m *QueryExecutor) ExecuteQueryWithMetadata(namespace string, query string, metadata map[string]interface{}) (coreledger.QueryResultsIterator, error) { - ret := _m.Called(namespace, query, metadata) +// ExecuteQueryWithPagination provides a mock function with given fields: namespace, query, bookmark, pageSize +func (_m *QueryExecutor) ExecuteQueryWithPagination(namespace string, query string, bookmark string, pageSize int32) (coreledger.QueryResultsIterator, error) { + ret := _m.Called(namespace, query, bookmark, pageSize) var r0 coreledger.QueryResultsIterator - if rf, ok := ret.Get(0).(func(string, string, map[string]interface{}) coreledger.QueryResultsIterator); ok { - r0 = rf(namespace, query, metadata) + if rf, ok := ret.Get(0).(func(string, string, string, int32) coreledger.QueryResultsIterator); ok { + r0 = rf(namespace, query, bookmark, pageSize) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(coreledger.QueryResultsIterator) @@ -79,8 +76,8 @@ func (_m *QueryExecutor) ExecuteQueryWithMetadata(namespace string, query string } var r1 error - if rf, ok := ret.Get(1).(func(string, string, map[string]interface{}) error); ok { - r1 = rf(namespace, query, metadata) + if rf, ok := ret.Get(1).(func(string, string, string, int32) error); ok { + r1 = rf(namespace, query, bookmark, pageSize) } else { r1 = ret.Error(1) } @@ -318,13 +315,13 @@ func (_m *QueryExecutor) GetStateRangeScanIterator(namespace string, startKey st return r0, r1 } -// GetStateRangeScanIteratorWithMetadata provides a mock function with given fields: namespace, startKey, endKey, metadata -func (_m *QueryExecutor) GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (coreledger.QueryResultsIterator, error) { - ret := _m.Called(namespace, startKey, endKey, metadata) +// GetStateRangeScanIteratorWithPagination provides a mock function with given fields: namespace, startKey, endKey, pageSize +func (_m *QueryExecutor) GetStateRangeScanIteratorWithPagination(namespace string, startKey string, endKey string, pageSize int32) (coreledger.QueryResultsIterator, error) { + ret := _m.Called(namespace, startKey, endKey, pageSize) var r0 coreledger.QueryResultsIterator - if rf, ok := ret.Get(0).(func(string, string, string, map[string]interface{}) coreledger.QueryResultsIterator); ok { - r0 = rf(namespace, startKey, endKey, metadata) + if rf, ok := ret.Get(0).(func(string, string, string, int32) coreledger.QueryResultsIterator); ok { + r0 = rf(namespace, startKey, endKey, pageSize) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(coreledger.QueryResultsIterator) @@ -332,8 +329,8 @@ func (_m *QueryExecutor) GetStateRangeScanIteratorWithMetadata(namespace string, } var r1 error - if rf, ok := ret.Get(1).(func(string, string, string, map[string]interface{}) error); ok { - r1 = rf(namespace, startKey, endKey, metadata) + if rf, ok := ret.Get(1).(func(string, string, string, int32) error); ok { + r1 = rf(namespace, startKey, endKey, pageSize) } else { r1 = ret.Error(1) } diff --git a/core/committer/txvalidator/v14/validator_test.go b/core/committer/txvalidator/v14/validator_test.go index d2cc264f405..eab534d6b45 100644 --- a/core/committer/txvalidator/v14/validator_test.go +++ b/core/committer/txvalidator/v14/validator_test.go @@ -1552,8 +1552,8 @@ func (exec *mockQueryExecutor) GetStateRangeScanIterator(namespace string, start return args.Get(0).(ledger2.ResultsIterator), args.Error(1) } -func (exec *mockQueryExecutor) GetStateRangeScanIteratorWithMetadata(namespace, startKey, endKey string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { - args := exec.Called(namespace, startKey, endKey, metadata) +func (exec *mockQueryExecutor) GetStateRangeScanIteratorWithPagination(namespace, startKey, endKey string, pageSize int32) (ledger.QueryResultsIterator, error) { + args := exec.Called(namespace, startKey, endKey, pageSize) return args.Get(0).(ledger.QueryResultsIterator), args.Error(1) } @@ -1562,8 +1562,8 @@ func (exec *mockQueryExecutor) ExecuteQuery(namespace, query string) (ledger2.Re return args.Get(0).(ledger2.ResultsIterator), args.Error(1) } -func (exec *mockQueryExecutor) ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { - args := exec.Called(namespace, query, metadata) +func (exec *mockQueryExecutor) ExecuteQueryWithPagination(namespace, query, bookmark string, pageSize int32) (ledger.QueryResultsIterator, error) { + args := exec.Called(namespace, query, bookmark, pageSize) return args.Get(0).(ledger.QueryResultsIterator), args.Error(1) } diff --git a/core/committer/txvalidator/v20/mocks/query_executor.go b/core/committer/txvalidator/v20/mocks/query_executor.go index 7d6903f6a77..b0027c62405 100644 --- a/core/committer/txvalidator/v20/mocks/query_executor.go +++ b/core/committer/txvalidator/v20/mocks/query_executor.go @@ -2,12 +2,9 @@ package mocks -import ( - ledger "github.com/hyperledger/fabric/common/ledger" - coreledger "github.com/hyperledger/fabric/core/ledger" - - mock "github.com/stretchr/testify/mock" -) +import coreledger "github.com/hyperledger/fabric/core/ledger" +import ledger "github.com/hyperledger/fabric/common/ledger" +import mock "github.com/stretchr/testify/mock" // QueryExecutor is an autogenerated mock type for the QueryExecutor type type QueryExecutor struct { @@ -65,13 +62,13 @@ func (_m *QueryExecutor) ExecuteQueryOnPrivateData(namespace string, collection return r0, r1 } -// ExecuteQueryWithMetadata provides a mock function with given fields: namespace, query, metadata -func (_m *QueryExecutor) ExecuteQueryWithMetadata(namespace string, query string, metadata map[string]interface{}) (coreledger.QueryResultsIterator, error) { - ret := _m.Called(namespace, query, metadata) +// ExecuteQueryWithPagination provides a mock function with given fields: namespace, query, bookmark, pageSize +func (_m *QueryExecutor) ExecuteQueryWithPagination(namespace string, query string, bookmark string, pageSize int32) (coreledger.QueryResultsIterator, error) { + ret := _m.Called(namespace, query, bookmark, pageSize) var r0 coreledger.QueryResultsIterator - if rf, ok := ret.Get(0).(func(string, string, map[string]interface{}) coreledger.QueryResultsIterator); ok { - r0 = rf(namespace, query, metadata) + if rf, ok := ret.Get(0).(func(string, string, string, int32) coreledger.QueryResultsIterator); ok { + r0 = rf(namespace, query, bookmark, pageSize) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(coreledger.QueryResultsIterator) @@ -79,8 +76,8 @@ func (_m *QueryExecutor) ExecuteQueryWithMetadata(namespace string, query string } var r1 error - if rf, ok := ret.Get(1).(func(string, string, map[string]interface{}) error); ok { - r1 = rf(namespace, query, metadata) + if rf, ok := ret.Get(1).(func(string, string, string, int32) error); ok { + r1 = rf(namespace, query, bookmark, pageSize) } else { r1 = ret.Error(1) } @@ -318,13 +315,13 @@ func (_m *QueryExecutor) GetStateRangeScanIterator(namespace string, startKey st return r0, r1 } -// GetStateRangeScanIteratorWithMetadata provides a mock function with given fields: namespace, startKey, endKey, metadata -func (_m *QueryExecutor) GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (coreledger.QueryResultsIterator, error) { - ret := _m.Called(namespace, startKey, endKey, metadata) +// GetStateRangeScanIteratorWithPagination provides a mock function with given fields: namespace, startKey, endKey, pageSize +func (_m *QueryExecutor) GetStateRangeScanIteratorWithPagination(namespace string, startKey string, endKey string, pageSize int32) (coreledger.QueryResultsIterator, error) { + ret := _m.Called(namespace, startKey, endKey, pageSize) var r0 coreledger.QueryResultsIterator - if rf, ok := ret.Get(0).(func(string, string, string, map[string]interface{}) coreledger.QueryResultsIterator); ok { - r0 = rf(namespace, startKey, endKey, metadata) + if rf, ok := ret.Get(0).(func(string, string, string, int32) coreledger.QueryResultsIterator); ok { + r0 = rf(namespace, startKey, endKey, pageSize) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(coreledger.QueryResultsIterator) @@ -332,8 +329,8 @@ func (_m *QueryExecutor) GetStateRangeScanIteratorWithMetadata(namespace string, } var r1 error - if rf, ok := ret.Get(1).(func(string, string, string, map[string]interface{}) error); ok { - r1 = rf(namespace, startKey, endKey, metadata) + if rf, ok := ret.Get(1).(func(string, string, string, int32) error); ok { + r1 = rf(namespace, startKey, endKey, pageSize) } else { r1 = ret.Error(1) } diff --git a/core/common/privdata/mock/query_executor.go b/core/common/privdata/mock/query_executor.go index 5c225736250..11c95e10995 100644 --- a/core/common/privdata/mock/query_executor.go +++ b/core/common/privdata/mock/query_executor.go @@ -42,18 +42,19 @@ type QueryExecutor struct { result1 ledger.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -205,19 +206,19 @@ type QueryExecutor struct { result1 ledger.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -377,66 +378,67 @@ func (fake *QueryExecutor) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *QueryExecutor) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *QueryExecutor) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *QueryExecutor) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *QueryExecutor) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1105,67 +1107,67 @@ func (fake *QueryExecutor) GetStateRangeScanIteratorReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1180,8 +1182,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.getPrivateDataMutex.RLock() defer fake.getPrivateDataMutex.RUnlock() fake.getPrivateDataHashMutex.RLock() @@ -1202,8 +1204,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() copiedInvocations := map[string][][]interface{}{} for key, value := range fake.invocations { copiedInvocations[key] = value diff --git a/core/endorser/fake/query_executor.go b/core/endorser/fake/query_executor.go index ab779305591..09a92b4c932 100644 --- a/core/endorser/fake/query_executor.go +++ b/core/endorser/fake/query_executor.go @@ -42,18 +42,19 @@ type QueryExecutor struct { result1 ledger.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -205,19 +206,19 @@ type QueryExecutor struct { result1 ledger.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -377,66 +378,67 @@ func (fake *QueryExecutor) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *QueryExecutor) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *QueryExecutor) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *QueryExecutor) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *QueryExecutor) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1105,67 +1107,67 @@ func (fake *QueryExecutor) GetStateRangeScanIteratorReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1180,8 +1182,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.getPrivateDataMutex.RLock() defer fake.getPrivateDataMutex.RUnlock() fake.getPrivateDataHashMutex.RLock() @@ -1202,8 +1204,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() copiedInvocations := map[string][][]interface{}{} for key, value := range fake.invocations { copiedInvocations[key] = value diff --git a/core/endorser/fake/tx_simulator.go b/core/endorser/fake/tx_simulator.go index cec503866ef..de8306403b7 100644 --- a/core/endorser/fake/tx_simulator.go +++ b/core/endorser/fake/tx_simulator.go @@ -92,18 +92,19 @@ type TxSimulator struct { result1 ledger.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -266,19 +267,19 @@ type TxSimulator struct { result1 ledger.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -775,66 +776,67 @@ func (fake *TxSimulator) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *TxSimulator) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *TxSimulator) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *TxSimulator) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *TxSimulator) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *TxSimulator) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *TxSimulator) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1563,67 +1565,67 @@ func (fake *TxSimulator) GetStateRangeScanIteratorReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -2084,8 +2086,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.executeUpdateMutex.RLock() defer fake.executeUpdateMutex.RUnlock() fake.getPrivateDataMutex.RLock() @@ -2108,8 +2110,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() fake.getTxSimulationResultsMutex.RLock() defer fake.getTxSimulationResultsMutex.RUnlock() fake.setPrivateDataMutex.RLock() diff --git a/core/ledger/kvledger/txmgmt/statedb/commontests/test_common.go b/core/ledger/kvledger/txmgmt/statedb/commontests/test_common.go index 5c2f2c56a95..88dbed17199 100644 --- a/core/ledger/kvledger/txmgmt/statedb/commontests/test_common.go +++ b/core/ledger/kvledger/txmgmt/statedb/commontests/test_common.go @@ -918,43 +918,33 @@ func TestRangeQuerySpecialCharacters(t *testing.T, dbProvider statedb.VersionedD assert.NoError(t, err) } -func executeRangeQuery(t *testing.T, db statedb.VersionedDB, namespace, startKey, endKey string, limit int32, returnKeys []string) (string, error) { - +func executeRangeQuery(t *testing.T, db statedb.VersionedDB, namespace, startKey, endKey string, pageSize int32, returnKeys []string) (string, error) { var itr statedb.ResultsIterator var err error - if limit == 0 { - + if pageSize == 0 { itr, err = db.GetStateRangeScanIterator(namespace, startKey, endKey) if err != nil { return "", err } } else { - - queryOptions := make(map[string]interface{}) - if limit != 0 { - queryOptions["limit"] = limit - } - itr, err = db.GetStateRangeScanIteratorWithMetadata(namespace, startKey, endKey, queryOptions) + itr, err = db.GetStateRangeScanIteratorWithPagination(namespace, startKey, endKey, pageSize) if err != nil { return "", err } - // Verify the keys returned - if limit > 0 { + if pageSize > 0 { TestItrWithoutClose(t, itr, returnKeys) } - } returnBookmark := "" - if limit > 0 { + if pageSize > 0 { if queryResultItr, ok := itr.(statedb.QueryResultsIterator); ok { returnBookmark = queryResultItr.GetBookmarkAndClose() } } - return returnBookmark, nil } diff --git a/core/ledger/kvledger/txmgmt/statedb/mock/versioned_db.go b/core/ledger/kvledger/txmgmt/statedb/mock/versioned_db.go index bee67acc309..04cd8997d24 100644 --- a/core/ledger/kvledger/txmgmt/statedb/mock/versioned_db.go +++ b/core/ledger/kvledger/txmgmt/statedb/mock/versioned_db.go @@ -49,18 +49,19 @@ type VersionedDB struct { result1 statedb.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (statedb.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (statedb.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 statedb.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 statedb.QueryResultsIterator result2 error } @@ -119,19 +120,19 @@ type VersionedDB struct { result1 statedb.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (statedb.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (statedb.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 statedb.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 statedb.QueryResultsIterator result2 error } @@ -375,66 +376,67 @@ func (fake *VersionedDB) ExecuteQueryReturnsOnCall(i int, result1 statedb.Result }{result1, result2} } -func (fake *VersionedDB) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (statedb.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *VersionedDB) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (statedb.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *VersionedDB) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *VersionedDB) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *VersionedDB) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (statedb.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *VersionedDB) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (statedb.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *VersionedDB) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *VersionedDB) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *VersionedDB) ExecuteQueryWithMetadataReturns(result1 statedb.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *VersionedDB) ExecuteQueryWithPaginationReturns(result1 statedb.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 statedb.QueryResultsIterator result2 error }{result1, result2} } -func (fake *VersionedDB) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 statedb.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *VersionedDB) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 statedb.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 statedb.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 statedb.QueryResultsIterator result2 error }{result1, result2} @@ -693,67 +695,67 @@ func (fake *VersionedDB) GetStateRangeScanIteratorReturnsOnCall(i int, result1 s }{result1, result2} } -func (fake *VersionedDB) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (statedb.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *VersionedDB) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (statedb.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *VersionedDB) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *VersionedDB) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *VersionedDB) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (statedb.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *VersionedDB) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (statedb.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *VersionedDB) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *VersionedDB) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *VersionedDB) GetStateRangeScanIteratorWithMetadataReturns(result1 statedb.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *VersionedDB) GetStateRangeScanIteratorWithPaginationReturns(result1 statedb.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 statedb.QueryResultsIterator result2 error }{result1, result2} } -func (fake *VersionedDB) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 statedb.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *VersionedDB) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 statedb.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 statedb.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 statedb.QueryResultsIterator result2 error }{result1, result2} @@ -952,8 +954,8 @@ func (fake *VersionedDB) Invocations() map[string][][]interface{} { defer fake.closeMutex.RUnlock() fake.executeQueryMutex.RLock() defer fake.executeQueryMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.getLatestSavePointMutex.RLock() defer fake.getLatestSavePointMutex.RUnlock() fake.getStateMutex.RLock() @@ -962,8 +964,8 @@ func (fake *VersionedDB) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() fake.getVersionMutex.RLock() defer fake.getVersionMutex.RUnlock() fake.openMutex.RLock() diff --git a/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb.go b/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb.go index 022941fd871..4030a8551fb 100644 --- a/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb.go +++ b/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb.go @@ -10,7 +10,6 @@ import ( "bytes" "context" "encoding/json" - "fmt" "sync" "github.com/hyperledger/fabric/common/flogging" @@ -439,37 +438,21 @@ func (vdb *VersionedDB) GetStateMultipleKeys(namespace string, keys []string) ([ // startKey is inclusive // endKey is exclusive func (vdb *VersionedDB) GetStateRangeScanIterator(namespace string, startKey string, endKey string) (statedb.ResultsIterator, error) { - return vdb.GetStateRangeScanIteratorWithMetadata(namespace, startKey, endKey, nil) + return vdb.GetStateRangeScanIteratorWithPagination(namespace, startKey, endKey, 0) } -const optionBookmark = "bookmark" -const optionLimit = "limit" - -// GetStateRangeScanIteratorWithMetadata implements method in VersionedDB interface +// GetStateRangeScanIteratorWithPagination implements method in VersionedDB interface // startKey is inclusive // endKey is exclusive -// metadata contains a map of additional query options -func (vdb *VersionedDB) GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (statedb.QueryResultsIterator, error) { - logger.Debugf("Entering GetStateRangeScanIteratorWithMetadata namespace: %s startKey: %s endKey: %s metadata: %v", namespace, startKey, endKey, metadata) - // Get the internalQueryLimit from core.yaml +// pageSize limits the number of results returned +func (vdb *VersionedDB) GetStateRangeScanIteratorWithPagination(namespace string, startKey string, endKey string, pageSize int32) (statedb.QueryResultsIterator, error) { + logger.Debugf("Entering GetStateRangeScanIteratorWithPagination namespace: %s startKey: %s endKey: %s pageSize: %d", namespace, startKey, endKey, pageSize) internalQueryLimit := vdb.couchInstance.internalQueryLimit() - requestedLimit := int32(0) - // if metadata is provided, validate and apply options - if metadata != nil { - //validate the metadata - err := statedb.ValidateRangeMetadata(metadata) - if err != nil { - return nil, err - } - if limitOption, ok := metadata[optionLimit]; ok { - requestedLimit = limitOption.(int32) - } - } db, err := vdb.getNamespaceDBHandle(namespace) if err != nil { return nil, err } - return newQueryScanner(namespace, db, "", internalQueryLimit, requestedLimit, "", startKey, endKey) + return newQueryScanner(namespace, db, "", internalQueryLimit, pageSize, "", startKey, endKey) } func (scanner *queryScanner) getNextStateRangeScanResults() error { @@ -534,33 +517,17 @@ func isCouchInternalKey(key string) bool { // ExecuteQuery implements method in VersionedDB interface func (vdb *VersionedDB) ExecuteQuery(namespace, query string) (statedb.ResultsIterator, error) { - queryResult, err := vdb.ExecuteQueryWithMetadata(namespace, query, nil) + queryResult, err := vdb.ExecuteQueryWithPagination(namespace, query, "", 0) if err != nil { return nil, err } return queryResult, nil } -// ExecuteQueryWithMetadata implements method in VersionedDB interface -func (vdb *VersionedDB) ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (statedb.QueryResultsIterator, error) { - logger.Debugf("Entering ExecuteQueryWithMetadata namespace: %s, query: %s, metadata: %v", namespace, query, metadata) - // Get the querylimit from core.yaml +// ExecuteQueryWithPagination implements method in VersionedDB interface +func (vdb *VersionedDB) ExecuteQueryWithPagination(namespace, query, bookmark string, pageSize int32) (statedb.QueryResultsIterator, error) { + logger.Debugf("Entering ExecuteQueryWithPagination namespace: %s, query: %s, bookmark: %s, pageSize: %d", namespace, query, bookmark, pageSize) internalQueryLimit := vdb.couchInstance.internalQueryLimit() - bookmark := "" - requestedLimit := int32(0) - // if metadata is provided, then validate and set provided options - if metadata != nil { - err := validateQueryMetadata(metadata) - if err != nil { - return nil, err - } - if limitOption, ok := metadata[optionLimit]; ok { - requestedLimit = limitOption.(int32) - } - if bookmarkOption, ok := metadata[optionBookmark]; ok { - bookmark = bookmarkOption.(string) - } - } queryString, err := applyAdditionalQueryOptions(query, internalQueryLimit, bookmark) if err != nil { logger.Errorf("Error calling applyAdditionalQueryOptions(): %s", err.Error()) @@ -570,7 +537,7 @@ func (vdb *VersionedDB) ExecuteQueryWithMetadata(namespace, query string, metada if err != nil { return nil, err } - return newQueryScanner(namespace, db, queryString, internalQueryLimit, requestedLimit, bookmark, "", "") + return newQueryScanner(namespace, db, queryString, internalQueryLimit, pageSize, bookmark, "", "") } // executeQueryWithBookmark executes a "paging" query with a bookmark, this method allows a @@ -599,30 +566,6 @@ func (scanner *queryScanner) executeQueryWithBookmark() error { return nil } -func validateQueryMetadata(metadata map[string]interface{}) error { - for key, keyVal := range metadata { - switch key { - case optionBookmark: - //Verify the bookmark is a string - if _, ok := keyVal.(string); ok { - continue - } - return fmt.Errorf("Invalid entry, \"bookmark\" must be a string") - - case optionLimit: - //Verify the limit is an integer - if _, ok := keyVal.(int32); ok { - continue - } - return fmt.Errorf("Invalid entry, \"limit\" must be an int32") - - default: - return fmt.Errorf("Invalid entry, option %s not recognized", key) - } - } - return nil -} - // ApplyUpdates implements method in VersionedDB interface func (vdb *VersionedDB) ApplyUpdates(updates *statedb.UpdateBatch, height *version.Height) error { if height != nil && updates.ContainsPostOrderWrites { diff --git a/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb_test.go b/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb_test.go index 8c35486225b..c88257b4a2b 100644 --- a/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb_test.go +++ b/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb_test.go @@ -935,25 +935,17 @@ func TestPaginatedQuery(t *testing.T) { assert.NoError(t, err) } -func executeQuery(t *testing.T, db statedb.VersionedDB, namespace, query, bookmark string, limit int32, returnKeys []string) (string, error) { +func executeQuery(t *testing.T, db statedb.VersionedDB, namespace, query, bookmark string, pageSize int32, returnKeys []string) (string, error) { var itr statedb.ResultsIterator var err error - if limit == int32(0) && bookmark == "" { + if pageSize == int32(0) && bookmark == "" { itr, err = db.ExecuteQuery(namespace, query) if err != nil { return "", err } } else { - queryOptions := make(map[string]interface{}) - if bookmark != "" { - queryOptions["bookmark"] = bookmark - } - if limit != 0 { - queryOptions["limit"] = limit - } - - itr, err = db.ExecuteQueryWithMetadata(namespace, query, queryOptions) + itr, err = db.ExecuteQueryWithPagination(namespace, query, bookmark, pageSize) if err != nil { return "", err } @@ -970,50 +962,6 @@ func executeQuery(t *testing.T, db statedb.VersionedDB, namespace, query, bookma return returnBookmark, nil } -// TestPaginatedQueryValidation tests queries with pagination -func TestPaginatedQueryValidation(t *testing.T) { - queryOptions := make(map[string]interface{}) - queryOptions["bookmark"] = "Test1" - queryOptions["limit"] = int32(10) - - err := validateQueryMetadata(queryOptions) - assert.NoError(t, err, "An error was thrown for a valid options") - queryOptions = make(map[string]interface{}) - queryOptions["bookmark"] = "Test1" - queryOptions["limit"] = float64(10.2) - - err = validateQueryMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid options") - - queryOptions = make(map[string]interface{}) - queryOptions["bookmark"] = "Test1" - queryOptions["limit"] = "10" - - err = validateQueryMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid options") - - queryOptions = make(map[string]interface{}) - queryOptions["bookmark"] = int32(10) - queryOptions["limit"] = "10" - - err = validateQueryMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid options") - - queryOptions = make(map[string]interface{}) - queryOptions["bookmark"] = "Test1" - queryOptions["limit1"] = int32(10) - - err = validateQueryMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid options") - - queryOptions = make(map[string]interface{}) - queryOptions["bookmark1"] = "Test1" - queryOptions["limit1"] = int32(10) - - err = validateQueryMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid options") -} - func TestApplyUpdatesWithNilHeight(t *testing.T) { vdbEnv.init(t, nil) defer vdbEnv.cleanup() diff --git a/core/ledger/kvledger/txmgmt/statedb/statedb.go b/core/ledger/kvledger/txmgmt/statedb/statedb.go index e854150c0d6..4ebecce2061 100644 --- a/core/ledger/kvledger/txmgmt/statedb/statedb.go +++ b/core/ledger/kvledger/txmgmt/statedb/statedb.go @@ -7,7 +7,6 @@ SPDX-License-Identifier: Apache-2.0 package statedb import ( - "fmt" "sort" "github.com/hyperledger/fabric/core/ledger/internal/version" @@ -38,18 +37,18 @@ type VersionedDB interface { // endKey is exclusive // The returned ResultsIterator contains results of type *VersionedKV GetStateRangeScanIterator(namespace string, startKey string, endKey string) (ResultsIterator, error) - // GetStateRangeScanIteratorWithMetadata returns an iterator that contains all the key-values between given key ranges. + // GetStateRangeScanIteratorWithPagination returns an iterator that contains all the key-values between given key ranges. // startKey is inclusive // endKey is exclusive - // metadata is a map of additional query parameters + // pageSize parameter limits the number of returned results // The returned ResultsIterator contains results of type *VersionedKV - GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (QueryResultsIterator, error) + GetStateRangeScanIteratorWithPagination(namespace string, startKey string, endKey string, pageSize int32) (QueryResultsIterator, error) // ExecuteQuery executes the given query and returns an iterator that contains results of type *VersionedKV. ExecuteQuery(namespace, query string) (ResultsIterator, error) - // ExecuteQueryWithMetadata executes the given query with associated query options and + // ExecuteQueryWithPagination executes the given query and // returns an iterator that contains results of type *VersionedKV. - // metadata is a map of additional query parameters - ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (QueryResultsIterator, error) + // The bookmark and page size parameters are associated with the pagination query. + ExecuteQueryWithPagination(namespace, query, bookmark string, pageSize int32) (QueryResultsIterator, error) // ApplyUpdates applies the batch to the underlying db. // height is the height of the highest transaction in the Batch that // a state db implementation is expected to ues as a save point @@ -292,24 +291,3 @@ func (itr *nsIterator) GetBookmarkAndClose() string { // do nothing return "" } - -const optionLimit = "limit" - -// ValidateRangeMetadata validates the JSON containing attributes for the range query -func ValidateRangeMetadata(metadata map[string]interface{}) error { - for key, keyVal := range metadata { - switch key { - - case optionLimit: - //Verify the pageSize is an integer - if _, ok := keyVal.(int32); ok { - continue - } - return fmt.Errorf("Invalid entry, \"limit\" must be a int32") - - default: - return fmt.Errorf("Invalid entry, option %s not recognized", key) - } - } - return nil -} diff --git a/core/ledger/kvledger/txmgmt/statedb/statedb_test.go b/core/ledger/kvledger/txmgmt/statedb/statedb_test.go index 80f808483bd..fb5adb82d36 100644 --- a/core/ledger/kvledger/txmgmt/statedb/statedb_test.go +++ b/core/ledger/kvledger/txmgmt/statedb/statedb_test.go @@ -125,35 +125,6 @@ func checkItrResults(t *testing.T, itr QueryResultsIterator, expectedResults []* itr.Close() } -// TestPaginatedRangeValidation tests queries with pagination -func TestPaginatedRangeValidation(t *testing.T) { - - queryOptions := make(map[string]interface{}) - queryOptions["limit"] = int32(10) - - err := ValidateRangeMetadata(queryOptions) - assert.NoError(t, err, "An error was thrown for a valid option") - - queryOptions = make(map[string]interface{}) - queryOptions["limit"] = float32(10.2) - - err = ValidateRangeMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid option") - - queryOptions = make(map[string]interface{}) - queryOptions["limit"] = "10" - - err = ValidateRangeMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid option") - - queryOptions = make(map[string]interface{}) - queryOptions["limit1"] = int32(10) - - err = ValidateRangeMetadata(queryOptions) - assert.Error(t, err, "An should have been thrown for an invalid option") - -} - func TestMergeUpdateBatch(t *testing.T) { batch1 := NewUpdateBatch() batch1.Put("ns1", "key1", []byte("batch1_value1"), version.NewHeight(1, 1)) diff --git a/core/ledger/kvledger/txmgmt/statedb/stateleveldb/stateleveldb.go b/core/ledger/kvledger/txmgmt/statedb/stateleveldb/stateleveldb.go index 4dfc028cf55..1ac18184b97 100644 --- a/core/ledger/kvledger/txmgmt/statedb/stateleveldb/stateleveldb.go +++ b/core/ledger/kvledger/txmgmt/statedb/stateleveldb/stateleveldb.go @@ -130,35 +130,19 @@ func (vdb *versionedDB) GetStateMultipleKeys(namespace string, keys []string) ([ // startKey is inclusive // endKey is exclusive func (vdb *versionedDB) GetStateRangeScanIterator(namespace string, startKey string, endKey string) (statedb.ResultsIterator, error) { - return vdb.GetStateRangeScanIteratorWithMetadata(namespace, startKey, endKey, nil) + // pageSize = 0 denotes unlimited page size + return vdb.GetStateRangeScanIteratorWithPagination(namespace, startKey, endKey, 0) } -const optionLimit = "limit" - -// GetStateRangeScanIteratorWithMetadata implements method in VersionedDB interface -func (vdb *versionedDB) GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (statedb.QueryResultsIterator, error) { - - requestedLimit := int32(0) - // if metadata is provided, validate and apply options - if metadata != nil { - //validate the metadata - err := statedb.ValidateRangeMetadata(metadata) - if err != nil { - return nil, err - } - if limitOption, ok := metadata[optionLimit]; ok { - requestedLimit = limitOption.(int32) - } - } - - // Note: metadata is not used for the goleveldb implementation of the range query +// GetStateRangeScanIteratorWithPagination implements method in VersionedDB interface +func (vdb *versionedDB) GetStateRangeScanIteratorWithPagination(namespace string, startKey string, endKey string, pageSize int32) (statedb.QueryResultsIterator, error) { dataStartKey := encodeDataKey(namespace, startKey) dataEndKey := encodeDataKey(namespace, endKey) if endKey == "" { dataEndKey[len(dataEndKey)-1] = lastKeyIndicator } dbItr := vdb.db.GetIterator(dataStartKey, dataEndKey) - return newKVScanner(namespace, dbItr, requestedLimit), nil + return newKVScanner(namespace, dbItr, pageSize), nil } // ExecuteQuery implements method in VersionedDB interface @@ -166,8 +150,8 @@ func (vdb *versionedDB) ExecuteQuery(namespace, query string) (statedb.ResultsIt return nil, errors.New("ExecuteQuery not supported for leveldb") } -// ExecuteQueryWithMetadata implements method in VersionedDB interface -func (vdb *versionedDB) ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (statedb.QueryResultsIterator, error) { +// ExecuteQueryWithPagination implements method in VersionedDB interface +func (vdb *versionedDB) ExecuteQueryWithPagination(namespace, query, bookmark string, pageSize int32) (statedb.QueryResultsIterator, error) { return nil, errors.New("ExecuteQueryWithMetadata not supported for leveldb") } diff --git a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/helper.go b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/helper.go index 312d685331b..c3a60cb45d5 100644 --- a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/helper.go +++ b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/helper.go @@ -90,7 +90,7 @@ func (h *queryHelper) getStateRangeScanIterator(namespace string, startKey strin namespace, startKey, endKey, - nil, + 0, h.txmgr.db, h.rwsetBuilder, queryReadsHashingEnabled, @@ -104,7 +104,7 @@ func (h *queryHelper) getStateRangeScanIterator(namespace string, startKey strin return itr, nil } -func (h *queryHelper) getStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { +func (h *queryHelper) getStateRangeScanIteratorWithPagination(namespace string, startKey string, endKey string, pageSize int32) (ledger.QueryResultsIterator, error) { if err := h.checkDone(); err != nil { return nil, err } @@ -112,7 +112,7 @@ func (h *queryHelper) getStateRangeScanIteratorWithMetadata(namespace string, st namespace, startKey, endKey, - metadata, + pageSize, h.txmgr.db, h.rwsetBuilder, queryReadsHashingEnabled, @@ -137,11 +137,11 @@ func (h *queryHelper) executeQuery(namespace, query string) (commonledger.Result return &queryResultsItr{DBItr: dbItr, RWSetBuilder: h.rwsetBuilder}, nil } -func (h *queryHelper) executeQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { +func (h *queryHelper) executeQueryWithPagination(namespace, query, bookmark string, pageSize int32) (ledger.QueryResultsIterator, error) { if err := h.checkDone(); err != nil { return nil, err } - dbItr, err := h.txmgr.db.ExecuteQueryWithMetadata(namespace, query, metadata) + dbItr, err := h.txmgr.db.ExecuteQueryWithPagination(namespace, query, bookmark, pageSize) if err != nil { return nil, err } @@ -362,14 +362,14 @@ type resultsItr struct { rangeQueryResultsHelper *rwsetutil.RangeQueryResultsHelper } -func newResultsItr(ns string, startKey string, endKey string, metadata map[string]interface{}, +func newResultsItr(ns string, startKey string, endKey string, pageSize int32, db statedb.VersionedDB, rwsetBuilder *rwsetutil.RWSetBuilder, enableHashing bool, maxDegree uint32, hasher ledger.Hasher) (*resultsItr, error) { var err error var dbItr statedb.ResultsIterator - if metadata == nil { + if pageSize == 0 { dbItr, err = db.GetStateRangeScanIterator(ns, startKey, endKey) } else { - dbItr, err = db.GetStateRangeScanIteratorWithMetadata(ns, startKey, endKey, metadata) + dbItr, err = db.GetStateRangeScanIteratorWithPagination(ns, startKey, endKey, pageSize) } if err != nil { return nil, err diff --git a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_query_executer.go b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_query_executer.go index ffccda97d41..16cd9780675 100644 --- a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_query_executer.go +++ b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_query_executer.go @@ -47,13 +47,13 @@ func (q *lockBasedQueryExecutor) GetStateRangeScanIterator(namespace string, sta return q.helper.getStateRangeScanIterator(namespace, startKey, endKey) } -// GetStateRangeScanIteratorWithMetadata implements method in interface `ledger.QueryExecutor` +// GetStateRangeScanIteratorWithPagination implements method in interface `ledger.QueryExecutor` // startKey is included in the results and endKey is excluded. An empty startKey refers to the first available key // and an empty endKey refers to the last available key. For scanning all the keys, both the startKey and the endKey // can be supplied as empty strings. However, a full scan should be used judiciously for performance reasons. -// metadata is a map of additional query parameters -func (q *lockBasedQueryExecutor) GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { - return q.helper.getStateRangeScanIteratorWithMetadata(namespace, startKey, endKey, metadata) +// The page size parameters limits the number of returned results. +func (q *lockBasedQueryExecutor) GetStateRangeScanIteratorWithPagination(namespace string, startKey string, endKey string, pageSize int32) (ledger.QueryResultsIterator, error) { + return q.helper.getStateRangeScanIteratorWithPagination(namespace, startKey, endKey, pageSize) } // ExecuteQuery implements method in interface `ledger.QueryExecutor` @@ -61,9 +61,9 @@ func (q *lockBasedQueryExecutor) ExecuteQuery(namespace, query string) (commonle return q.helper.executeQuery(namespace, query) } -// ExecuteQueryWithMetadata implements method in interface `ledger.QueryExecutor` -func (q *lockBasedQueryExecutor) ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { - return q.helper.executeQueryWithMetadata(namespace, query, metadata) +// ExecuteQueryWithPagination implements method in interface `ledger.QueryExecutor` +func (q *lockBasedQueryExecutor) ExecuteQueryWithPagination(namespace, query, bookmark string, pageSize int32) (ledger.QueryResultsIterator, error) { + return q.helper.executeQueryWithPagination(namespace, query, bookmark, pageSize) } // GetPrivateData implements method in interface `ledger.QueryExecutor` diff --git a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_tx_simulator.go b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_tx_simulator.go index 83e556ceeb1..1ba5cdb63c1 100644 --- a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_tx_simulator.go +++ b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/lockbased_tx_simulator.go @@ -132,20 +132,21 @@ func (s *lockBasedTxSimulator) ExecuteQueryOnPrivateData(namespace, collection, return s.lockBasedQueryExecutor.ExecuteQueryOnPrivateData(namespace, collection, query) } -// GetStateRangeScanIteratorWithMetadata implements method in interface `ledger.QueryExecutor` -func (s *lockBasedTxSimulator) GetStateRangeScanIteratorWithMetadata(namespace string, startKey string, endKey string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { +// GetStateRangeScanIteratorWithPagination implements method in interface `ledger.QueryExecutor` +func (s *lockBasedTxSimulator) GetStateRangeScanIteratorWithPagination(namespace string, startKey string, + endKey string, pageSize int32) (ledger.QueryResultsIterator, error) { if err := s.checkBeforePaginatedQueries(); err != nil { return nil, err } - return s.lockBasedQueryExecutor.GetStateRangeScanIteratorWithMetadata(namespace, startKey, endKey, metadata) + return s.lockBasedQueryExecutor.GetStateRangeScanIteratorWithPagination(namespace, startKey, endKey, pageSize) } -// ExecuteQueryWithMetadata implements method in interface `ledger.QueryExecutor` -func (s *lockBasedTxSimulator) ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (ledger.QueryResultsIterator, error) { +// ExecuteQueryWithPagination implements method in interface `ledger.QueryExecutor` +func (s *lockBasedTxSimulator) ExecuteQueryWithPagination(namespace, query, bookmark string, pageSize int32) (ledger.QueryResultsIterator, error) { if err := s.checkBeforePaginatedQueries(); err != nil { return nil, err } - return s.lockBasedQueryExecutor.ExecuteQueryWithMetadata(namespace, query, metadata) + return s.lockBasedQueryExecutor.ExecuteQueryWithPagination(namespace, query, bookmark, pageSize) } // GetTxSimulationResults implements method in interface `ledger.TxSimulator` diff --git a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/txmgr_test.go b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/txmgr_test.go index 79bdbdf4fe8..1e4c8cc5882 100644 --- a/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/txmgr_test.go +++ b/core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/txmgr_test.go @@ -446,23 +446,18 @@ func testIteratorPagingInit(t *testing.T, env testEnv, numKeys int) { } func testIteratorPaging(t *testing.T, env testEnv, numKeys int, startKey, endKey string, - limit int32, expectedKeys []string) string { + pageSize int32, expectedKeys []string) string { cID := "cid" txMgr := env.getTxMgr() - queryOptions := make(map[string]interface{}) - if limit != 0 { - queryOptions["limit"] = limit - } - queryExecuter, _ := txMgr.NewQueryExecutor("test_tx2") - itr, _ := queryExecuter.GetStateRangeScanIteratorWithMetadata(cID, startKey, endKey, queryOptions) + itr, _ := queryExecuter.GetStateRangeScanIteratorWithPagination(cID, startKey, endKey, pageSize) // Verify the keys returned testItrWithoutClose(t, itr, expectedKeys) returnBookmark := "" - if limit > 0 { + if pageSize > 0 { returnBookmark = itr.GetBookmarkAndClose() } @@ -769,11 +764,7 @@ func testExecutePaginatedQuery(t *testing.T, env testEnv) { queryExecuter, _ := txMgr.NewQueryExecutor("test_tx2") queryString := `{"selector":{"owner":{"$eq":"bob"}}}` - queryOptions := map[string]interface{}{ - "limit": int32(2), - } - - itr, err := queryExecuter.ExecuteQueryWithMetadata("ns1", queryString, queryOptions) + itr, err := queryExecuter.ExecuteQueryWithPagination("ns1", queryString, "", 2) assert.NoError(t, err, "Error upon ExecuteQueryWithMetadata()") counter := 0 for { @@ -793,14 +784,7 @@ func testExecutePaginatedQuery(t *testing.T, env testEnv) { bookmark := itr.GetBookmarkAndClose() - queryOptions = map[string]interface{}{ - "limit": int32(2), - } - if bookmark != "" { - queryOptions["bookmark"] = bookmark - } - - itr, err = queryExecuter.ExecuteQueryWithMetadata("ns1", queryString, queryOptions) + itr, err = queryExecuter.ExecuteQueryWithPagination("ns1", queryString, bookmark, 2) assert.NoError(t, err, "Error upon ExecuteQuery()") counter = 0 for { @@ -867,19 +851,15 @@ func TestTxSimulatorUnsupportedTx(t *testing.T) { _, ok = err.(*txmgr.ErrUnsupportedTransaction) assert.True(t, ok) - queryOptions := map[string]interface{}{ - "limit": int32(2), - } - simulator, _ = txMgr.NewTxSimulator("txid3") err = simulator.SetState("ns", "key", []byte("value")) assert.NoError(t, err) - _, err = simulator.GetStateRangeScanIteratorWithMetadata("ns1", "startKey", "endKey", queryOptions) + _, err = simulator.GetStateRangeScanIteratorWithPagination("ns1", "startKey", "endKey", 2) _, ok = err.(*txmgr.ErrUnsupportedTransaction) assert.True(t, ok) simulator, _ = txMgr.NewTxSimulator("txid4") - _, err = simulator.GetStateRangeScanIteratorWithMetadata("ns1", "startKey", "endKey", queryOptions) + _, err = simulator.GetStateRangeScanIteratorWithPagination("ns1", "startKey", "endKey", 2) assert.NoError(t, err) err = simulator.SetState("ns", "key", []byte("value")) _, ok = err.(*txmgr.ErrUnsupportedTransaction) @@ -916,19 +896,16 @@ func testTxSimulatorQueryUnsupportedTx(t *testing.T, env testEnv) { txMgrHelper.validateAndCommitRWSet(txRWSet.PubSimulationResults) queryString := `{"selector":{"owner":{"$eq":"bob"}}}` - queryOptions := map[string]interface{}{ - "limit": int32(2), - } simulator, _ := txMgr.NewTxSimulator("txid1") err := simulator.SetState("ns1", "key1", []byte(`{"asset_name":"marble1","color":"red","size":"25","owner":"jerry"}`)) assert.NoError(t, err) - _, err = simulator.ExecuteQueryWithMetadata("ns1", queryString, queryOptions) + _, err = simulator.ExecuteQueryWithPagination("ns1", queryString, "", 2) _, ok := err.(*txmgr.ErrUnsupportedTransaction) assert.True(t, ok) simulator, _ = txMgr.NewTxSimulator("txid2") - _, err = simulator.ExecuteQueryWithMetadata("ns1", queryString, queryOptions) + _, err = simulator.ExecuteQueryWithPagination("ns1", queryString, "", 2) assert.NoError(t, err) err = simulator.SetState("ns1", "key1", []byte(`{"asset_name":"marble1","color":"red","size":"25","owner":"jerry"}`)) _, ok = err.(*txmgr.ErrUnsupportedTransaction) diff --git a/core/ledger/kvledger/txmgmt/validator/valimpl/mock/txsim.go b/core/ledger/kvledger/txmgmt/validator/valimpl/mock/txsim.go index f7bd19ad87a..bd4f8f0aca3 100644 --- a/core/ledger/kvledger/txmgmt/validator/valimpl/mock/txsim.go +++ b/core/ledger/kvledger/txmgmt/validator/valimpl/mock/txsim.go @@ -92,18 +92,19 @@ type TxSimulator struct { result1 ledger.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -266,19 +267,19 @@ type TxSimulator struct { result1 ledger.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -775,66 +776,67 @@ func (fake *TxSimulator) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *TxSimulator) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *TxSimulator) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *TxSimulator) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *TxSimulator) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *TxSimulator) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *TxSimulator) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1563,67 +1565,67 @@ func (fake *TxSimulator) GetStateRangeScanIteratorReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -2084,8 +2086,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.executeUpdateMutex.RLock() defer fake.executeUpdateMutex.RUnlock() fake.getPrivateDataMutex.RLock() @@ -2108,8 +2110,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() fake.getTxSimulationResultsMutex.RLock() defer fake.getTxSimulationResultsMutex.RUnlock() fake.setPrivateDataMutex.RLock() diff --git a/core/ledger/ledger_interface.go b/core/ledger/ledger_interface.go index 5fea8914350..fbfde772b92 100644 --- a/core/ledger/ledger_interface.go +++ b/core/ledger/ledger_interface.go @@ -208,24 +208,24 @@ type QueryExecutor interface { GetStateMetadata(namespace, key string) (map[string][]byte, error) // GetStateMultipleKeys gets the values for multiple keys in a single call GetStateMultipleKeys(namespace string, keys []string) ([][]byte, error) - // GetStateRangeScanIteratorWithMetadata returns an iterator that contains all the key-values between given key ranges. + // GetStateRangeScanIteratorWithPagination returns an iterator that contains all the key-values between given key ranges. // startKey is included in the results and endKey is excluded. An empty startKey refers to the first available key // and an empty endKey refers to the last available key. For scanning all the keys, both the startKey and the endKey // can be supplied as empty strings. However, a full scan should be used judiciously for performance reasons. - // metadata is a map of additional query parameters + // The page size parameter limits the number of returned results. // The returned ResultsIterator contains results of type *KV which is defined in fabric-protos/ledger/queryresult. - GetStateRangeScanIteratorWithMetadata(namespace string, startKey, endKey string, metadata map[string]interface{}) (QueryResultsIterator, error) + GetStateRangeScanIteratorWithPagination(namespace string, startKey, endKey string, pageSize int32) (QueryResultsIterator, error) // ExecuteQuery executes the given query and returns an iterator that contains results of type specific to the underlying data store. // Only used for state databases that support query // For a chaincode, the namespace corresponds to the chaincodeId // The returned ResultsIterator contains results of type *KV which is defined in fabric-protos/ledger/queryresult. ExecuteQuery(namespace, query string) (commonledger.ResultsIterator, error) - // ExecuteQueryWithMetadata executes the given query and returns an iterator that contains results of type specific to the underlying data store. - // metadata is a map of additional query parameters + // ExecuteQueryWithPagination executes the given query and returns an iterator that contains results of type specific to the underlying data store. + // The bookmark and page size parameters are associated with the pagination. // Only used for state databases that support query // For a chaincode, the namespace corresponds to the chaincodeId // The returned ResultsIterator contains results of type *KV which is defined in fabric-protos/ledger/queryresult. - ExecuteQueryWithMetadata(namespace, query string, metadata map[string]interface{}) (QueryResultsIterator, error) + ExecuteQueryWithPagination(namespace, query, bookmark string, pageSize int32) (QueryResultsIterator, error) // GetPrivateData gets the value of a private data item identified by a tuple GetPrivateData(namespace, collection, key string) ([]byte, error) // GetPrivateDataMetadata gets the metadata of a private data item identified by a tuple diff --git a/core/ledger/mock/query_executor.go b/core/ledger/mock/query_executor.go index 491070a036f..8d5b5a04bba 100644 --- a/core/ledger/mock/query_executor.go +++ b/core/ledger/mock/query_executor.go @@ -42,18 +42,19 @@ type QueryExecutor struct { result1 ledgera.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledger.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledger.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledger.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledger.QueryResultsIterator result2 error } @@ -205,19 +206,19 @@ type QueryExecutor struct { result1 ledgera.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledger.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledger.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledger.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledger.QueryResultsIterator result2 error } @@ -377,66 +378,67 @@ func (fake *QueryExecutor) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledger.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledger.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *QueryExecutor) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledger.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *QueryExecutor) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledger.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *QueryExecutor) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *QueryExecutor) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturns(result1 ledger.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturns(result1 ledger.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledger.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} @@ -1105,67 +1107,67 @@ func (fake *QueryExecutor) GetStateRangeScanIteratorReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledger.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledger.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledger.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledger.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturns(result1 ledger.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturns(result1 ledger.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledger.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} @@ -1180,8 +1182,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.getPrivateDataMutex.RLock() defer fake.getPrivateDataMutex.RUnlock() fake.getPrivateDataHashMutex.RLock() @@ -1202,8 +1204,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() copiedInvocations := map[string][][]interface{}{} for key, value := range fake.invocations { copiedInvocations[key] = value diff --git a/core/ledger/mock/tx_simulator.go b/core/ledger/mock/tx_simulator.go index f6366b419b5..995bf5c4453 100644 --- a/core/ledger/mock/tx_simulator.go +++ b/core/ledger/mock/tx_simulator.go @@ -92,18 +92,19 @@ type TxSimulator struct { result1 ledgera.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledger.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledger.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledger.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledger.QueryResultsIterator result2 error } @@ -266,19 +267,19 @@ type TxSimulator struct { result1 ledgera.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledger.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledger.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledger.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledger.QueryResultsIterator result2 error } @@ -775,66 +776,67 @@ func (fake *TxSimulator) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledger.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *TxSimulator) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledger.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *TxSimulator) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *TxSimulator) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledger.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *TxSimulator) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledger.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *TxSimulator) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *TxSimulator) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturns(result1 ledger.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturns(result1 ledger.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledger.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} @@ -1563,67 +1565,67 @@ func (fake *TxSimulator) GetStateRangeScanIteratorReturnsOnCall(i int, result1 l }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledger.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledger.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledger.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledger.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturns(result1 ledger.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturns(result1 ledger.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} } -func (fake *TxSimulator) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *TxSimulator) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledger.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledger.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledger.QueryResultsIterator result2 error }{result1, result2} @@ -2084,8 +2086,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.executeUpdateMutex.RLock() defer fake.executeUpdateMutex.RUnlock() fake.getPrivateDataMutex.RLock() @@ -2108,8 +2110,8 @@ func (fake *TxSimulator) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() fake.getTxSimulationResultsMutex.RLock() defer fake.getTxSimulationResultsMutex.RUnlock() fake.setPrivateDataMutex.RLock() diff --git a/core/scc/lscc/mock/query_executor.go b/core/scc/lscc/mock/query_executor.go index 5c225736250..11c95e10995 100644 --- a/core/scc/lscc/mock/query_executor.go +++ b/core/scc/lscc/mock/query_executor.go @@ -42,18 +42,19 @@ type QueryExecutor struct { result1 ledger.ResultsIterator result2 error } - ExecuteQueryWithMetadataStub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - executeQueryWithMetadataMutex sync.RWMutex - executeQueryWithMetadataArgsForCall []struct { + ExecuteQueryWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + executeQueryWithPaginationMutex sync.RWMutex + executeQueryWithPaginationArgsForCall []struct { arg1 string arg2 string - arg3 map[string]interface{} + arg3 string + arg4 int32 } - executeQueryWithMetadataReturns struct { + executeQueryWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - executeQueryWithMetadataReturnsOnCall map[int]struct { + executeQueryWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -205,19 +206,19 @@ type QueryExecutor struct { result1 ledger.ResultsIterator result2 error } - GetStateRangeScanIteratorWithMetadataStub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error) - getStateRangeScanIteratorWithMetadataMutex sync.RWMutex - getStateRangeScanIteratorWithMetadataArgsForCall []struct { + GetStateRangeScanIteratorWithPaginationStub func(string, string, string, int32) (ledgera.QueryResultsIterator, error) + getStateRangeScanIteratorWithPaginationMutex sync.RWMutex + getStateRangeScanIteratorWithPaginationArgsForCall []struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 } - getStateRangeScanIteratorWithMetadataReturns struct { + getStateRangeScanIteratorWithPaginationReturns struct { result1 ledgera.QueryResultsIterator result2 error } - getStateRangeScanIteratorWithMetadataReturnsOnCall map[int]struct { + getStateRangeScanIteratorWithPaginationReturnsOnCall map[int]struct { result1 ledgera.QueryResultsIterator result2 error } @@ -377,66 +378,67 @@ func (fake *QueryExecutor) ExecuteQueryOnPrivateDataReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadata(arg1 string, arg2 string, arg3 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.executeQueryWithMetadataMutex.Lock() - ret, specificReturn := fake.executeQueryWithMetadataReturnsOnCall[len(fake.executeQueryWithMetadataArgsForCall)] - fake.executeQueryWithMetadataArgsForCall = append(fake.executeQueryWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) ExecuteQueryWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.executeQueryWithPaginationMutex.Lock() + ret, specificReturn := fake.executeQueryWithPaginationReturnsOnCall[len(fake.executeQueryWithPaginationArgsForCall)] + fake.executeQueryWithPaginationArgsForCall = append(fake.executeQueryWithPaginationArgsForCall, struct { arg1 string arg2 string - arg3 map[string]interface{} - }{arg1, arg2, arg3}) - fake.recordInvocation("ExecuteQueryWithMetadata", []interface{}{arg1, arg2, arg3}) - fake.executeQueryWithMetadataMutex.Unlock() - if fake.ExecuteQueryWithMetadataStub != nil { - return fake.ExecuteQueryWithMetadataStub(arg1, arg2, arg3) + arg3 string + arg4 int32 + }{arg1, arg2, arg3, arg4}) + fake.recordInvocation("ExecuteQueryWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.executeQueryWithPaginationMutex.Unlock() + if fake.ExecuteQueryWithPaginationStub != nil { + return fake.ExecuteQueryWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.executeQueryWithMetadataReturns + fakeReturns := fake.executeQueryWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCallCount() int { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - return len(fake.executeQueryWithMetadataArgsForCall) +func (fake *QueryExecutor) ExecuteQueryWithPaginationCallCount() int { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + return len(fake.executeQueryWithPaginationArgsForCall) } -func (fake *QueryExecutor) ExecuteQueryWithMetadataCalls(stub func(string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = stub +func (fake *QueryExecutor) ExecuteQueryWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = stub } -func (fake *QueryExecutor) ExecuteQueryWithMetadataArgsForCall(i int) (string, string, map[string]interface{}) { - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() - argsForCall := fake.executeQueryWithMetadataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 +func (fake *QueryExecutor) ExecuteQueryWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() + argsForCall := fake.executeQueryWithPaginationArgsForCall[i] + return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - fake.executeQueryWithMetadataReturns = struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + fake.executeQueryWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) ExecuteQueryWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.executeQueryWithMetadataMutex.Lock() - defer fake.executeQueryWithMetadataMutex.Unlock() - fake.ExecuteQueryWithMetadataStub = nil - if fake.executeQueryWithMetadataReturnsOnCall == nil { - fake.executeQueryWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) ExecuteQueryWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.executeQueryWithPaginationMutex.Lock() + defer fake.executeQueryWithPaginationMutex.Unlock() + fake.ExecuteQueryWithPaginationStub = nil + if fake.executeQueryWithPaginationReturnsOnCall == nil { + fake.executeQueryWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.executeQueryWithMetadataReturnsOnCall[i] = struct { + fake.executeQueryWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1105,67 +1107,67 @@ func (fake *QueryExecutor) GetStateRangeScanIteratorReturnsOnCall(i int, result1 }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadata(arg1 string, arg2 string, arg3 string, arg4 map[string]interface{}) (ledgera.QueryResultsIterator, error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - ret, specificReturn := fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[len(fake.getStateRangeScanIteratorWithMetadataArgsForCall)] - fake.getStateRangeScanIteratorWithMetadataArgsForCall = append(fake.getStateRangeScanIteratorWithMetadataArgsForCall, struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPagination(arg1 string, arg2 string, arg3 string, arg4 int32) (ledgera.QueryResultsIterator, error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + ret, specificReturn := fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[len(fake.getStateRangeScanIteratorWithPaginationArgsForCall)] + fake.getStateRangeScanIteratorWithPaginationArgsForCall = append(fake.getStateRangeScanIteratorWithPaginationArgsForCall, struct { arg1 string arg2 string arg3 string - arg4 map[string]interface{} + arg4 int32 }{arg1, arg2, arg3, arg4}) - fake.recordInvocation("GetStateRangeScanIteratorWithMetadata", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - if fake.GetStateRangeScanIteratorWithMetadataStub != nil { - return fake.GetStateRangeScanIteratorWithMetadataStub(arg1, arg2, arg3, arg4) + fake.recordInvocation("GetStateRangeScanIteratorWithPagination", []interface{}{arg1, arg2, arg3, arg4}) + fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + if fake.GetStateRangeScanIteratorWithPaginationStub != nil { + return fake.GetStateRangeScanIteratorWithPaginationStub(arg1, arg2, arg3, arg4) } if specificReturn { return ret.result1, ret.result2 } - fakeReturns := fake.getStateRangeScanIteratorWithMetadataReturns + fakeReturns := fake.getStateRangeScanIteratorWithPaginationReturns return fakeReturns.result1, fakeReturns.result2 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCallCount() int { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - return len(fake.getStateRangeScanIteratorWithMetadataArgsForCall) +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCallCount() int { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + return len(fake.getStateRangeScanIteratorWithPaginationArgsForCall) } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataCalls(stub func(string, string, string, map[string]interface{}) (ledgera.QueryResultsIterator, error)) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = stub +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationCalls(stub func(string, string, string, int32) (ledgera.QueryResultsIterator, error)) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = stub } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataArgsForCall(i int) (string, string, string, map[string]interface{}) { - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() - argsForCall := fake.getStateRangeScanIteratorWithMetadataArgsForCall[i] +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationArgsForCall(i int) (string, string, string, int32) { + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() + argsForCall := fake.getStateRangeScanIteratorWithPaginationArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturns(result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - fake.getStateRangeScanIteratorWithMetadataReturns = struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturns(result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + fake.getStateRangeScanIteratorWithPaginationReturns = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} } -func (fake *QueryExecutor) GetStateRangeScanIteratorWithMetadataReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { - fake.getStateRangeScanIteratorWithMetadataMutex.Lock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.Unlock() - fake.GetStateRangeScanIteratorWithMetadataStub = nil - if fake.getStateRangeScanIteratorWithMetadataReturnsOnCall == nil { - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall = make(map[int]struct { +func (fake *QueryExecutor) GetStateRangeScanIteratorWithPaginationReturnsOnCall(i int, result1 ledgera.QueryResultsIterator, result2 error) { + fake.getStateRangeScanIteratorWithPaginationMutex.Lock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.Unlock() + fake.GetStateRangeScanIteratorWithPaginationStub = nil + if fake.getStateRangeScanIteratorWithPaginationReturnsOnCall == nil { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall = make(map[int]struct { result1 ledgera.QueryResultsIterator result2 error }) } - fake.getStateRangeScanIteratorWithMetadataReturnsOnCall[i] = struct { + fake.getStateRangeScanIteratorWithPaginationReturnsOnCall[i] = struct { result1 ledgera.QueryResultsIterator result2 error }{result1, result2} @@ -1180,8 +1182,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.executeQueryMutex.RUnlock() fake.executeQueryOnPrivateDataMutex.RLock() defer fake.executeQueryOnPrivateDataMutex.RUnlock() - fake.executeQueryWithMetadataMutex.RLock() - defer fake.executeQueryWithMetadataMutex.RUnlock() + fake.executeQueryWithPaginationMutex.RLock() + defer fake.executeQueryWithPaginationMutex.RUnlock() fake.getPrivateDataMutex.RLock() defer fake.getPrivateDataMutex.RUnlock() fake.getPrivateDataHashMutex.RLock() @@ -1202,8 +1204,8 @@ func (fake *QueryExecutor) Invocations() map[string][][]interface{} { defer fake.getStateMultipleKeysMutex.RUnlock() fake.getStateRangeScanIteratorMutex.RLock() defer fake.getStateRangeScanIteratorMutex.RUnlock() - fake.getStateRangeScanIteratorWithMetadataMutex.RLock() - defer fake.getStateRangeScanIteratorWithMetadataMutex.RUnlock() + fake.getStateRangeScanIteratorWithPaginationMutex.RLock() + defer fake.getStateRangeScanIteratorWithPaginationMutex.RUnlock() copiedInvocations := map[string][][]interface{}{} for key, value := range fake.invocations { copiedInvocations[key] = value