Skip to content

Commit 6729216

Browse files
authored
Fix: acceleration history task should be optional (#973)
* Fix: acceleration history task should be optional: The category of this task was broken by an earlier change. * Fix wrong destination file
1 parent 0daf8ed commit 6729216

File tree

2 files changed

+37
-11
lines changed

2 files changed

+37
-11
lines changed

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

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,6 @@ private static class TaskDescription {
9090

9191
private final TaskCategory taskCategory;
9292

93-
private TaskDescription(
94-
String zipPrefix, String unformattedQuery, Class<? extends Enum<?>> headerClass) {
95-
this(zipPrefix, unformattedQuery, headerClass, TaskCategory.REQUIRED);
96-
}
97-
9893
private TaskDescription(
9994
String zipPrefix,
10095
String unformattedQuery,
@@ -316,7 +311,8 @@ public final void addTasksTo(
316311

317312
if (!arguments.isAssessment()) {
318313
TaskDescription queryHistoryTask =
319-
new TaskDescription(ZIP_ENTRY_PREFIX, newQueryFormat(arguments), Header.class);
314+
new TaskDescription(
315+
ZIP_ENTRY_PREFIX, newQueryFormat(arguments), Header.class, TaskCategory.REQUIRED);
320316
queryLogIntervals.forEach(interval -> addJdbcTask(out, interval, queryHistoryTask));
321317
return;
322318
}
@@ -325,7 +321,8 @@ public final void addTasksTo(
325321
new TaskDescription(
326322
QueryHistoryExtendedFormat.ZIP_ENTRY_PREFIX,
327323
createExtendedQueryFromAccountUsage(arguments),
328-
QueryHistoryExtendedFormat.Header.class);
324+
QueryHistoryExtendedFormat.Header.class,
325+
TaskCategory.REQUIRED);
329326
queryLogIntervals.forEach(interval -> addJdbcTask(out, interval, queryHistoryTask));
330327

331328
List<TaskDescription> timeSeriesTasks =
@@ -335,7 +332,8 @@ public final void addTasksTo(
335332
String override = arguments.getDefinition(item.property);
336333
String prefix = formatPrefix(item.headerClass, item.viewName());
337334
String query = overrideableQuery(override, prefix, item.column.value);
338-
return new TaskDescription(item.zipPrefix, query, item.headerClass);
335+
return new TaskDescription(
336+
item.zipPrefix, query, item.headerClass, item.category);
339337
})
340338
.collect(toImmutableList());
341339
Duration duration = Duration.ofDays(1);
@@ -430,10 +428,11 @@ enum TimeSeriesView {
430428
QueryAccelerationHistoryFormat.Header.class,
431429
QueryAccelerationHistoryFormat.ZIP_ENTRY_PREFIX,
432430
TimeSeriesColumn.END_TIME,
433-
SnowflakeLogsConnectorProperty.QUERY_ACCELERATION_HISTORY_OVERRIDE_QUERY),
431+
SnowflakeLogsConnectorProperty.QUERY_ACCELERATION_HISTORY_OVERRIDE_QUERY,
432+
TaskCategory.OPTIONAL),
434433
REPLICATION_GROUP_USAGE_HISTORY(
435434
ReplicationGroupUsageHistoryFormat.Header.class,
436-
QueryAccelerationHistoryFormat.ZIP_ENTRY_PREFIX,
435+
ReplicationGroupUsageHistoryFormat.ZIP_ENTRY_PREFIX,
437436
TimeSeriesColumn.END_TIME,
438437
SnowflakeLogsConnectorProperty.REPLICATION_GROUP_USAGE_HISTORY_OVERRIDE_QUERY),
439438
SERVERLESS_TASK_HISTORY(
@@ -461,20 +460,31 @@ enum TimeSeriesView {
461460
final ConnectorProperty property;
462461
final String queryPrefix;
463462
final String zipPrefix;
463+
final TaskCategory category;
464464
final TimeSeriesColumn column;
465465

466466
TimeSeriesView(
467467
Class<? extends Enum<?>> headerClass,
468468
String zipPrefix,
469469
TimeSeriesColumn column,
470-
SnowflakeLogsConnectorProperty property) {
470+
SnowflakeLogsConnectorProperty property,
471+
TaskCategory category) {
471472
this.headerClass = headerClass;
472473
this.property = property;
473474
this.queryPrefix = formatPrefix(headerClass, name());
474475
this.zipPrefix = zipPrefix;
476+
this.category = category;
475477
this.column = column;
476478
}
477479

480+
TimeSeriesView(
481+
Class<? extends Enum<?>> headerClass,
482+
String zipPrefix,
483+
TimeSeriesColumn column,
484+
SnowflakeLogsConnectorProperty property) {
485+
this(headerClass, zipPrefix, column, property, TaskCategory.REQUIRED);
486+
}
487+
478488
static final ImmutableList<TimeSeriesView> valuesInOrder =
479489
ImmutableList.of(
480490
WAREHOUSE_EVENTS_HISTORY,

dumper/app/src/test/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeLogsConnectorTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@
2626
import static org.junit.Assert.assertFalse;
2727
import static org.junit.Assert.assertThrows;
2828
import static org.junit.Assert.assertTrue;
29+
import static org.junit.Assume.assumeFalse;
2930

3031
import com.google.common.collect.ImmutableList;
3132
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
3233
import com.google.edwmigration.dumper.application.dumper.MetadataDumperUsageException;
3334
import com.google.edwmigration.dumper.application.dumper.connector.snowflake.SnowflakeLogsConnector.TimeSeriesView;
35+
import com.google.edwmigration.dumper.application.dumper.task.TaskCategory;
3436
import com.google.edwmigration.dumper.test.TestUtils;
3537
import java.io.File;
3638
import org.junit.Test;
@@ -111,6 +113,20 @@ public void addOverridesToQuery_whereOverride_success() {
111113
assertTrue(result, result.contains(override));
112114
}
113115

116+
@Test
117+
public void category_accelerationHistory_isOptional() {
118+
TimeSeriesView view = TimeSeriesView.QUERY_ACCELERATION_HISTORY;
119+
120+
assertEquals(view.category, TaskCategory.OPTIONAL);
121+
}
122+
123+
@Theory
124+
public void category_notAccelerationHistory_isRequired(TimeSeriesView view) {
125+
assumeFalse(view.equals(TimeSeriesView.QUERY_ACCELERATION_HISTORY));
126+
127+
assertEquals(view.category, TaskCategory.REQUIRED);
128+
}
129+
114130
@Test
115131
public void earliestTimestamp_notProvided_emptyResult() {
116132
ConnectorArguments arguments =

0 commit comments

Comments
 (0)