@Test
  public void testNestedMultiValuedFieldProjection() throws TException {
    GetPartitionsRequest request = getGetPartitionsRequest();
    GetProjectionsSpec projectSpec = request.getProjectionSpec();
    projectSpec.setFieldList(Arrays.asList("sd.cols.name", "sd.cols.type"));

    GetPartitionsResponse response = client.getPartitionsWithSpecs(request);

    PartitionSpecWithSharedSD partitionSpecWithSharedSD =
        response.getPartitionSpec().get(0).getSharedSDPartitionSpec();
    StorageDescriptor sharedSD = partitionSpecWithSharedSD.getSd();
    Assert.assertNotNull("sd.cols were requested but was not returned", sharedSD.getCols());
    for (FieldSchema col : sharedSD.getCols()) {
      Assert.assertTrue("sd.cols.name was requested but was not returned", col.isSetName());
      Assert.assertTrue("sd.cols.type was requested but was not returned", col.isSetType());
      Assert.assertFalse("sd.cols.comment was not requested but was returned", col.isSetComment());
    }
  }
Confirms if the partitionWithoutSD object at partitionWithoutSDSIndex index has all the
projected fields set to values which are same as the ones set in origPartitions
@param projectedFields
@param sharedSD
@param partitionWithoutSDS
@param partitionWithoutSDSIndex
@throws IllegalAccessException
@throws InvocationTargetException
@throws NoSuchMethodException
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestGetPartitionsUsingProjectionAndFilterSpecs.java