Skip to content

Commit 5c42ae7

Browse files
authored
Filter out deleted TABLE_STORAGE_METRICS (#947)
1 parent e3dc4d3 commit 5c42ae7

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeMetadataConnector.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,25 @@ public final void addTasksTo(
282282

283283
if (isAssessment) {
284284
for (AssessmentQuery item : planner.generateAssessmentQueries()) {
285-
addAssessmentQuery(item, out, arguments, ACCOUNT_USAGE_SCHEMA_NAME);
285+
String formatString =
286+
item.needsOverride
287+
? getOverrideableQuery(arguments, item.formatString, TABLE_STORAGE_METRICS)
288+
: item.formatString;
289+
String whereCondition;
290+
// Check whether the overrides changed anything.
291+
if (formatString.equals(item.formatString)) {
292+
// Overrides either not applied or equal to default values.
293+
whereCondition =
294+
" WHERE deleted = FALSE AND schema_dropped IS NULL AND table_dropped IS NULL";
295+
} else {
296+
whereCondition = "";
297+
}
298+
// The condition is always passed to String.format. SHOW queries simply ignore it.
299+
String query = String.format(formatString, ACCOUNT_USAGE_SCHEMA_NAME, whereCondition);
300+
Task<?> task =
301+
new JdbcSelectTask(item.zipEntryName, query, TaskCategory.REQUIRED, TaskOptions.DEFAULT)
302+
.withHeaderTransformer(item.transformer());
303+
out.add(task);
286304
}
287305
} else {
288306
if (!arguments.getDatabases().isEmpty()) {
@@ -303,19 +321,15 @@ public final void addTasksTo(
303321
}
304322
} else {
305323
addAssessmentQuery(
306-
SnowflakePlanner.SHOW_EXTERNAL_TABLES, out, arguments, ACCOUNT_USAGE_SCHEMA_NAME);
324+
SnowflakePlanner.SHOW_EXTERNAL_TABLES,
325+
out,
326+
arguments,
327+
ACCOUNT_USAGE_SCHEMA_NAME,
328+
TaskOptions.DEFAULT);
307329
}
308330
}
309331
}
310332

311-
private void addAssessmentQuery(
312-
@Nonnull AssessmentQuery item,
313-
@Nonnull List<? super Task<?>> out,
314-
@Nonnull ConnectorArguments arguments,
315-
@Nonnull String AU) {
316-
addAssessmentQuery(item, out, arguments, AU, TaskOptions.DEFAULT);
317-
}
318-
319333
private void addAssessmentQuery(
320334
@Nonnull AssessmentQuery item,
321335
@Nonnull List<? super Task<?>> out,

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakePlanner.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,7 @@ Task<?> storageMetricsLiteTask() {
200200
"comment",
201201
"deleted");
202202
String view = "SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS";
203-
String predicate =
204-
"deleted = FALSE" + " AND " + "schema_dropped IS NULL" + " AND " + "table_dropped IS NULL";
203+
String predicate = "deleted = FALSE AND schema_dropped IS NULL AND table_dropped IS NULL";
205204
String query = String.format("SELECT %s FROM %s WHERE %s", selectList, view, predicate);
206205
ImmutableList<String> header =
207206
ImmutableList.of(

0 commit comments

Comments
 (0)