Esempio n. 1
0
  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());
  }