@VisibleForTesting
  Set<PartitionFieldNode> getRoots() {
    return roots;
  }
@Test
  public void testProjectionCompaction() throws MetaException {
    PersistenceManager mockPm = Mockito.mock(PersistenceManager.class);
    List<String> projectionFields = new ArrayList<>(2);
    projectionFields.add("sd.location");
    projectionFields.add("sd.parameters");
    projectionFields.add("createTime");
    projectionFields.add("sd");
    PartitionProjectionEvaluator projectionEvaluator =
        new PartitionProjectionEvaluator(mockPm, fieldNameToColumnName, projectionFields, false,
            false, null, null);
    Set<PartitionFieldNode> roots = projectionEvaluator.getRoots();
    Assert.assertFalse("sd.location should not contained since it is already included in sd",
        roots.contains(new PartitionFieldNode("sd.location")));
    Assert.assertFalse("sd.parameters should not contained since it is already included in sd",
        roots.contains(new PartitionFieldNode("sd.parameters")));
  }