in services/library/src/main/java/com/google/cloud/pso/bq_pii_classifier/services/scan/AutoDlpResultsScannerImpl.java [62:92]
public List<String> listParents(String project) throws NonRetryableApplicationException, InterruptedException {
String queryTemplate = "SELECT DISTINCT " +
"CONCAT(column_profile.dataset_project_id, '.', column_profile.dataset_id) AS dataset " +
"FROM %s.%s.%s r " +
"INNER JOIN %s.INFORMATION_SCHEMA.SCHEMATA s ON s.schema_name = r.column_profile.dataset_id " +
"WHERE r.column_profile.dataset_project_id = '%s'";
String formattedQuery = String.format(queryTemplate,
hostProject,
hostDataset,
dlpLatestFindingsView,
project,
project
);
Job queryJob = bqService.submitJob(formattedQuery);
TableResult result = bqService.waitAndGetJobResults(queryJob);
List<String> projectDatasets = new ArrayList<>();
for (FieldValueList row : result.iterateAll()) {
if (row.get("dataset").isNull()) {
throw new NonRetryableApplicationException("processProjects query returned rows with null 'dataset' field.");
}
String datasetSpec = row.get("dataset").getStringValue();
projectDatasets.add(datasetSpec);
}
return projectDatasets;
}