Skip to content

Commit 1f32f17

Browse files
committed
Refactor addTasksTo and addAssessmentQuery
1 parent 01ed184 commit 1f32f17

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

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

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -293,31 +293,29 @@ public final void addTasksTo(
293293
.withHeaderTransformer(item.transformer());
294294
out.add(task);
295295
}
296-
} else {
297-
if (!arguments.getDatabases().isEmpty()) {
298-
TaskOptions taskOptions = TaskOptions.DEFAULT;
299-
for (String database : arguments.getDatabases()) {
300-
String formatString =
301-
String.format(
302-
"%s IN DATABASE %s",
303-
SnowflakePlanner.SHOW_EXTERNAL_TABLES.formatString, databaseNameQuoted(database));
304-
addAssessmentQuery(
305-
SnowflakePlanner.SHOW_EXTERNAL_TABLES.withFormatString(formatString),
306-
out,
307-
arguments,
308-
ACCOUNT_USAGE_SCHEMA_NAME,
309-
taskOptions);
310-
// Next tasks will append to the same file.
311-
taskOptions = taskOptions.withWriteMode(WriteMode.APPEND_EXISTING);
312-
}
313-
} else {
314-
addAssessmentQuery(
315-
SnowflakePlanner.SHOW_EXTERNAL_TABLES,
316-
out,
317-
arguments,
318-
ACCOUNT_USAGE_SCHEMA_NAME,
319-
TaskOptions.DEFAULT);
320-
}
296+
return;
297+
}
298+
ImmutableList<String> databases = arguments.getDatabases();
299+
300+
if (databases.isEmpty()) {
301+
AssessmentQuery query = SnowflakePlanner.SHOW_EXTERNAL_TABLES;
302+
Task<?> task = convertAssessmentQuery(query, arguments, TaskOptions.DEFAULT);
303+
out.add(task);
304+
return;
305+
}
306+
307+
TaskOptions taskOptions = TaskOptions.DEFAULT;
308+
309+
for (String item : databases) {
310+
String quotedName = databaseNameQuoted(item);
311+
AssessmentQuery baseQuery = SnowflakePlanner.SHOW_EXTERNAL_TABLES;
312+
313+
String formatString = String.format("%s IN DATABASE %s", baseQuery.formatString, quotedName);
314+
AssessmentQuery query = baseQuery.withFormatString(formatString);
315+
Task<?> task = convertAssessmentQuery(query, arguments, taskOptions);
316+
out.add(task);
317+
// Next tasks will append to the same file.
318+
taskOptions = taskOptions.withWriteMode(WriteMode.APPEND_EXISTING);
321319
}
322320
}
323321

@@ -345,19 +343,15 @@ private String queryForAssessment(AssessmentQuery item, ConnectorArguments argum
345343
return item.substitute(schema, whereCondition);
346344
}
347345

348-
private void addAssessmentQuery(
346+
private Task<?> convertAssessmentQuery(
349347
@Nonnull AssessmentQuery item,
350-
@Nonnull List<? super Task<?>> out,
351348
@Nonnull ConnectorArguments arguments,
352-
@Nonnull String AU,
353349
@Nonnull TaskOptions taskOptions) {
354350
String formatString = overrideFormatString(item, arguments);
355-
String query = String.format(formatString, AU, EMPTY_WHERE_CONDITION);
351+
String query = String.format(formatString, ACCOUNT_USAGE_SCHEMA_NAME, EMPTY_WHERE_CONDITION);
356352
String zipName = item.zipEntryName;
357-
Task<?> task =
358-
new JdbcSelectTask(zipName, query, TaskCategory.REQUIRED, taskOptions)
359-
.withHeaderTransformer(item.transformer());
360-
out.add(task);
353+
return new JdbcSelectTask(zipName, query, TaskCategory.REQUIRED, taskOptions)
354+
.withHeaderTransformer(item.transformer());
361355
}
362356

363357
private String overrideFormatString(AssessmentQuery query, ConnectorArguments arguments) {

0 commit comments

Comments
 (0)