@Override
            public void setValue(Object partition, PartitionFieldNode node, Object value)
                throws MetaException {
              if (!node.isMultiValued) {
                // in case of serdeid and sdId node we just collect the sdIds for further processing
                if (node.equals(sdIdNode)) {
                  ids[SD_INDEX] = extractSqlLong(value);
                } else if (node.equals(serdeIdNode)) {
                  ids[SERDE_INDEX] = extractSqlLong(value);
                } else if (node.equals(cdIdNode)) {
                  ids[CD_INDEX] = extractSqlLong(value);
                } else if (node.equals(partIdNode)) {
                  ids[PART_INDEX] = extractSqlLong(value);
                } else {
                  // incase of sd.compressed and sd.storedAsSubDirectories we need special code to convert
                  // string to a boolean value
                  if (node.fieldName.equals("sd.compressed") || node.fieldName.equals("sd.storedAsSubDirectories")) {
                    value = MetastoreDirectSqlUtils.extractSqlBoolean(value);
                  } else if (node.fieldName.equals("lastAccessTime") || node.fieldName.equals("createTime")) {
                    value = MetastoreDirectSqlUtils.extractSqlInt(value);
                  }
                  MetaStoreServerUtils.setNestedProperty(partition, node.fieldName, value, true);
                }
              }
            }
Given a list of partition ids, returns the List of partially filled partitions based on the
projection list used to instantiate this PartitionProjectionEvaluator
@param partitionIds List of partition ids corresponding to the Partitions objects which are requested
@return Partitions where each partition has only the projected fields set
@throws MetaException
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/PartitionProjectionEvaluator.java