public void QueryMap6() { int begin = 1; int end = 10; Statement stmt = new Statement(); stmt.SetNamespace(args.ns); stmt.SetSetName(setName); stmt.SetFilter(Filter.Range(binName, begin, end)); // Map bin contains keys "A" and "C". QueryPolicy policy = new QueryPolicy(); List <string> list = new List <string>(); list.Add("A"); list.Add("C"); policy.filterExp = Exp.Build( Exp.EQ( ListExp.Size( // return type VALUE returns a list MapExp.GetByKeyList(MapReturnType.VALUE, Exp.Val(list), Exp.MapBin("mapbin"))), Exp.Val(2))); RecordSet rs = client.Query(policy, stmt); try { int count = 0; while (rs.Next()) { //Console.WriteLine(rs.Record.ToString()); count++; } Assert.AreEqual(1, count); } finally { rs.Close(); } }
public void ModifyWithContext() { IList <Value> listSubA = new List <Value>(); listSubA.Add(Value.Get("e")); listSubA.Add(Value.Get("d")); listSubA.Add(Value.Get("c")); listSubA.Add(Value.Get("b")); listSubA.Add(Value.Get("a")); IList <Value> listA = new List <Value>(); listA.Add(Value.Get("a")); listA.Add(Value.Get("b")); listA.Add(Value.Get("c")); listA.Add(Value.Get("d")); listA.Add(Value.Get(listSubA)); IList <Value> listB = new List <Value>(); listB.Add(Value.Get("x")); listB.Add(Value.Get("y")); listB.Add(Value.Get("z")); client.Operate(null, keyA, ListOperation.AppendItems(ListPolicy.Default, binA, (IList)listA), ListOperation.AppendItems(ListPolicy.Default, binB, (IList)listB), Operation.Put(new Bin(binC, "M")) ); CTX ctx = CTX.ListIndex(4); Record record; IList result; policy.filterExp = Exp.Build( Exp.EQ( ListExp.Size( // Temporarily Append binB/binC to binA in expression. ListExp.AppendItems(ListPolicy.Default, Exp.ListBin(binB), ListExp.Append(ListPolicy.Default, Exp.StringBin(binC), Exp.ListBin(binA), ctx), ctx), ctx), Exp.Val(9))); record = client.Get(policy, keyA, binA); AssertRecordFound(keyA, record); result = record.GetList(binA); Assert.AreEqual(5, result.Count); policy.filterExp = Exp.Build( Exp.EQ( ListExp.Size( // Temporarily Append local listB and local "M" string to binA in expression. ListExp.AppendItems(ListPolicy.Default, Exp.Val((IList)listB), ListExp.Append(ListPolicy.Default, Exp.Val("M"), Exp.ListBin(binA), ctx), ctx), ctx), Exp.Val(9))); record = client.Get(policy, keyA, binA); AssertRecordFound(keyA, record); result = record.GetList(binA); Assert.AreEqual(5, result.Count); }