Skip to content

Commit 83cde9b

Browse files
committed
Move getSqlTasks to SnowflakeInput
1 parent 24f0997 commit 83cde9b

File tree

3 files changed

+32
-27
lines changed

3 files changed

+32
-27
lines changed

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
import com.google.common.base.CharMatcher;
2323
import com.google.common.base.Joiner;
24-
import com.google.common.collect.ImmutableList;
2524
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
2625
import com.google.edwmigration.dumper.application.dumper.MetadataDumperUsageException;
2726
import com.google.edwmigration.dumper.application.dumper.annotations.RespectsArgumentDriver;
@@ -37,9 +36,6 @@
3736
import com.google.edwmigration.dumper.application.dumper.connector.Connector;
3837
import com.google.edwmigration.dumper.application.dumper.handle.Handle;
3938
import com.google.edwmigration.dumper.application.dumper.handle.JdbcHandle;
40-
import com.google.edwmigration.dumper.application.dumper.task.AbstractJdbcTask;
41-
import com.google.edwmigration.dumper.application.dumper.task.Summary;
42-
import com.google.edwmigration.dumper.application.dumper.task.Task;
4339
import java.sql.Driver;
4440
import java.sql.SQLException;
4541
import java.util.ArrayList;
@@ -208,23 +204,6 @@ private String getUrlFromArguments(@Nonnull ConnectorArguments arguments) {
208204
return buf.toString();
209205
}
210206

211-
final ImmutableList<Task<?>> getSqlTasks(
212-
@Nonnull SnowflakeInput inputSource,
213-
@Nonnull Class<? extends Enum<?>> header,
214-
@Nonnull String format,
215-
@Nonnull AbstractJdbcTask<Summary> schemaTask,
216-
@Nonnull AbstractJdbcTask<Summary> usageTask) {
217-
switch (inputSource) {
218-
case USAGE_THEN_SCHEMA_SOURCE:
219-
return ImmutableList.of(usageTask, schemaTask.onlyIfFailed(usageTask));
220-
case SCHEMA_ONLY_SOURCE:
221-
return ImmutableList.of(schemaTask);
222-
case USAGE_ONLY_SOURCE:
223-
return ImmutableList.of(usageTask);
224-
}
225-
throw new AssertionError();
226-
}
227-
228207
private void setCurrentDatabase(@Nonnull String databaseName, @Nonnull JdbcTemplate jdbcTemplate)
229208
throws MetadataDumperUsageException {
230209
String currentDatabase =

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

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616
*/
1717
package com.google.edwmigration.dumper.application.dumper.connector.snowflake;
1818

19+
import com.google.common.collect.ImmutableList;
20+
import com.google.edwmigration.dumper.application.dumper.task.AbstractJdbcTask;
21+
import com.google.edwmigration.dumper.application.dumper.task.Task;
22+
import javax.annotation.Nonnull;
23+
import javax.annotation.ParametersAreNonnullByDefault;
24+
1925
/**
2026
* Represents a strategy of getting Snowflake data.
2127
*
@@ -29,11 +35,33 @@
2935
* https://docs.snowflake.net/manuals/user-guide/data-share-consumers.html You must: GRANT IMPORTED
3036
* PRIVILEGES ON DATABASE snowflake TO ROLE <SOMETHING>;
3137
*/
38+
@ParametersAreNonnullByDefault
3239
enum SnowflakeInput {
3340
/** Get data from ACCOUNT_USAGE contents, with a fallback to INFORMATION_SCHEMA. */
34-
USAGE_THEN_SCHEMA_SOURCE,
41+
USAGE_THEN_SCHEMA_SOURCE {
42+
@Override
43+
@Nonnull
44+
ImmutableList<Task<?>> sqlTasks(AbstractJdbcTask<?> schemaTask, AbstractJdbcTask<?> usageTask) {
45+
return ImmutableList.of(usageTask, schemaTask.onlyIfFailed(usageTask));
46+
}
47+
},
3548
/** Get data relying only on the contents of INFORMATION_SCHEMA */
36-
SCHEMA_ONLY_SOURCE,
49+
SCHEMA_ONLY_SOURCE {
50+
@Override
51+
@Nonnull
52+
ImmutableList<Task<?>> sqlTasks(AbstractJdbcTask<?> schemaTask, AbstractJdbcTask<?> usageTask) {
53+
return ImmutableList.of(schemaTask);
54+
}
55+
},
3756
/** Get data relying only on the contents of ACCOUNT_USAGE */
38-
USAGE_ONLY_SOURCE;
57+
USAGE_ONLY_SOURCE {
58+
@Override
59+
@Nonnull
60+
ImmutableList<Task<?>> sqlTasks(AbstractJdbcTask<?> schemaTask, AbstractJdbcTask<?> usageTask) {
61+
return ImmutableList.of(usageTask);
62+
}
63+
};
64+
65+
@Nonnull
66+
abstract ImmutableList<Task<?>> sqlTasks(AbstractJdbcTask<?> schema, AbstractJdbcTask<?> usage);
3967
}

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,7 @@ private void addSqlTasksWithInfoSchemaFallback(
162162
if (isAssessment) {
163163
out.add(usageTask);
164164
} else {
165-
ImmutableList<Task<?>> tasks =
166-
getSqlTasks(inputSource, header, format, schemaTask, usageTask);
167-
out.addAll(tasks);
165+
out.addAll(inputSource.sqlTasks(schemaTask, usageTask));
168166
}
169167
}
170168

0 commit comments

Comments
 (0)