{"push_id":542466749,"size":2,"distinct_size":1,"ref":"refs/heads/master","head":"54512bdfc4dcaf1c76b4dbe2a9e76669c2ea821d","before":"0273b85e2edfd746a840410f2c5c9da66dbd8f0e","commits":[{"sha":"e4b587ee341dd75e6f9c8fd59fb6e606a769afca","author":{"email":"6d9059183e6eb7ab57daaf009859e8d7efc575e6@us.ibm.com","name":"Al Finkelstein"},"message":"Add single level AND support to query handler\n\n- Simple query can execute from IndexManager find(query) method.  Query\ncan be a single equality or a single level ANDing of multiple\nequalities.  For example query can be { \"name\" : \"mike\" } or it can be\n{ \"name\" : \"mike\", \"age\" : 12 }.\n- At present query find works only if valid index(es) exist for the\ndefined query.\n- Tests included to support functionality detailed in above two bullets.\n- Remove QueryResult interface and rename BasicQueryResult class as\nQueryResult.  Going forward QueryResult will be a class.\n- For code clarity, replace any reference to .iterator().next() with\n.toArray()[0] when no actual iteration is being performed.\n- Added tests to QuerySqlTranslatorTest that test when selecting an\nindex to use, when generating query where clauses, and when generating\nquery select clauses.\n- Add comment to TranslateState class clarifying its purpose and\nimplementation.\n- Fix class level comments throughout index/query.\n- Change evaluation of top level query node in QuerySqlTranslator for\nto use Map.get method.  $and/$or now compared to != null as success\ncondition.\n- Fix \"not\" operator check to check for \"$not\".\n- Change fieldName definition from ArrayList to List in\nIndexManager.ensureIndexed and throughout in order to make method more\ndynamic.\n- For code clarity, in test classes change the population of lists to\nuse Arrays.asList instead of .add method of the List itself when all\nvalues of the List are already known.\n- Move QueryResults iterator test into its own test method inside of\nQueryExecutorTest.  Remove repeated tests of same functionality in\nother QueryExecutorTest methods.\n- Fix bug in QueryExecutor.executeQueryTree.  The accumulator of doc ids\nis to accumulate by set intersection.\n- Add SqlParts class which provides a way to store SQL with placeholders\nand the values for those placeholders separately.\n- Change the nature of the SQL generation process for query retrieval\nfrom String replacement to using the SqlParts class with placeholders\nand values.\n- Update class level comments for QueryNode, ChildrenQueryNode,\nAndQueryNode, OrQueryNode\n- Remove the new ArrayList<Object>(Arrays.asList(..)) definition from\nfieldName references in tests and replace with Arrays.<Object>asList(..)\n- Remove the now unecessary supression of unchecked casting warning\nwhere appropriate.","distinct":false,"url":"https://api.github.com/repos/cloudant/sync-android/commits/e4b587ee341dd75e6f9c8fd59fb6e606a769afca"},{"sha":"54512bdfc4dcaf1c76b4dbe2a9e76669c2ea821d","author":{"email":"6d9059183e6eb7ab57daaf009859e8d7efc575e6@us.ibm.com","name":"Albert Finkelstein"},"message":"Merge pull request #77 from cloudant/42942-query-find-simple-AND\n\nAdd simple AND query find functionality","distinct":true,"url":"https://api.github.com/repos/cloudant/sync-android/commits/54512bdfc4dcaf1c76b4dbe2a9e76669c2ea821d"}]}