Skip to content

Commit fbed7b1

Browse files
author
Chris Elder
committedMar 1, 2017
FAB-2560 GetQueryResult() query re-write is incorrect
Query is getting re-written in fabric with duplicate "data" wrappers. Query in chaincode: {"selector":{"docTypeId":3,"oriRe":"SMP","ctB":"CTB","valDt":"1990-12-24", "orB":"YYY","tD":"TD","cuVoB":52,"cuIoBu":"AA","cuSt":"NA"}} Result: 2017-03-01 06:48:14.782 UTC [statecouchdb] ApplyQueryWrapper -> DEBU 441 Rewritten query with data wrapper: {"selector":{"$and":[ {"chaincodeid":"marbles"}, {"data.cuIoBu":"AA","data.cuVoB":52,"data.data.ctB":"CTB","data.data.cuSt":"NA", "data.docTypeId":3,"data.orB":"YYY","data.oriRe":"SMP","data.tD":"TD" "data.valDt":"1990-12-24"}]}} Multiple fields have the "data" wrapper repeated. Change-Id: I50445f15222dbdf5bd61e475666c2c34fde6fda4 Signed-off-by: Chris Elder <chris.elder@us.ibm.com>
1 parent 803962b commit fbed7b1

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed
 

‎core/ledger/kvledger/txmgmt/statedb/statecouchdb/query_wrapper.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,14 @@ func processAndWrapQuery(jsonQueryMap map[string]interface{}) {
198198
//the next level of the json query
199199
func processInterfaceMap(jsonFragment map[string]interface{}) {
200200

201-
//iterate the the item in the map
201+
//create a copy of the jsonFragment for iterating
202+
var bufferFragment = make(map[string]interface{})
202203
for keyVal, itemVal := range jsonFragment {
204+
bufferFragment[keyVal] = itemVal
205+
}
206+
207+
//iterate the the item in the map
208+
for keyVal, itemVal := range bufferFragment {
203209

204210
//check to see if the key is an operator
205211
if arrayContains(validOperators, keyVal) {

0 commit comments

Comments
 (0)
Please sign in to comment.