private void testGetPartitionsByAlgebra(String databaseName, String tableName) throws Exception { String qfTableName = databaseName + "." + tableName; // Equals Operator CatalogProtos.PartitionsByAlgebraProto.Builder request = CatalogProtos.PartitionsByAlgebraProto.newBuilder(); request.setDatabaseName(databaseName); request.setTableName(tableName); String algebra = "{\n" + " \"LeftExpr\": {\n" + " \"LeftExpr\": {\n" + " \"Qualifier\": \"" + qfTableName + "\",\n" + " \"ColumnName\": \"id\",\n" + " \"OpType\": \"Column\"\n" + " },\n" + " \"RightExpr\": {\n" + " \"Value\": \"10\",\n" + " \"ValueType\": \"Unsigned_Integer\",\n" + " \"OpType\": \"Literal\"\n" + " },\n" + " \"OpType\": \"Equals\"\n" + " },\n" + " \"RightExpr\": {\n" + " \"LeftExpr\": {\n" + " \"Qualifier\": \"" + qfTableName + "\",\n" + " \"ColumnName\": \"name\",\n" + " \"OpType\": \"Column\"\n" + " },\n" + " \"RightExpr\": {\n" + " \"Value\": \"aaa\",\n" + " \"ValueType\": \"String\",\n" + " \"OpType\": \"Literal\"\n" + " },\n" + " \"OpType\": \"Equals\"\n" + " },\n" + " \"OpType\": \"And\"\n" + "}"; request.setAlgebra(algebra); List<CatalogProtos.PartitionDescProto> partitions = catalog.getPartitionsByAlgebra(request.build()); assertNotNull(partitions); assertEquals(1, partitions.size()); // GreaterThan Operator and InPredicate Operatior algebra = "{\n" + " \"LeftExpr\": {\n" + " \"LeftExpr\": {\n" + " \"Qualifier\": \"" + qfTableName + "\",\n" + " \"ColumnName\": \"id\",\n" + " \"OpType\": \"Column\"\n" + " },\n" + " \"RightExpr\": {\n" + " \"Value\": \"0\",\n" + " \"ValueType\": \"Unsigned_Integer\",\n" + " \"OpType\": \"Literal\"\n" + " },\n" + " \"OpType\": \"GreaterThan\"\n" + " },\n" + " \"RightExpr\": {\n" + " \"IsNot\": false,\n" + " \"LeftExpr\": {\n" + " \"Qualifier\": \"" + qfTableName + "\",\n" + " \"ColumnName\": \"name\",\n" + " \"OpType\": \"Column\"\n" + " },\n" + " \"RightExpr\": {\n" + " \"Values\": [\n" + " {\n" + " \"Value\": \"aaa\",\n" + " \"ValueType\": \"String\",\n" + " \"OpType\": \"Literal\"\n" + " },\n" + " {\n" + " \"Value\": \"bbb\",\n" + " \"ValueType\": \"String\",\n" + " \"OpType\": \"Literal\"\n" + " }\n" + " ],\n" + " \"OpType\": \"ValueList\"\n" + " },\n" + " \"OpType\": \"InPredicate\"\n" + " },\n" + " \"OpType\": \"And\"\n" + "}"; request.setAlgebra(algebra); partitions = catalog.getPartitionsByAlgebra(request.build()); assertNotNull(partitions); assertEquals(2, partitions.size()); }