public static int getPositionOfPartitioningKeyField(Dataset dataset, List<String> fieldExpr, boolean fieldFromMeta) { List<Integer> keySourceIndicator = null; IDatasetDetails datasetDetails = dataset.getDatasetDetails(); if (datasetDetails.getDatasetType() == DatasetType.INTERNAL) { keySourceIndicator = ((InternalDatasetDetails) datasetDetails).getKeySourceIndicator(); } List<List<String>> partitioningKeys = dataset.getPrimaryKeys(); for (int i = 0; i < partitioningKeys.size(); i++) { List<String> partitioningKey = partitioningKeys.get(i); if (partitioningKey.equals(fieldExpr) && keySourceMatches(keySourceIndicator, i, fieldFromMeta)) { return i; } } return -1; }