Skip to content

Commit 589d8bb

Browse files
authored
Replace CollectTimeStamp with StartTime for Teradata query tables (#130)
Replace CollectTimeStamp with StartTime for Teradata query log tables
1 parent 7010f51 commit 589d8bb

File tree

4 files changed

+13
-10
lines changed

4 files changed

+13
-10
lines changed

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/teradata/Teradata14LogsConnector.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ String getSql(@Nonnull Predicate<? super String> predicate) {
132132

133133
buf.append(" FROM ").append(logTable).append(" L ");
134134

135-
buf.append(String.format("WHERE L.CollectTimeStamp >= CAST('%s' AS TIMESTAMP)\n"
136-
+ "AND L.CollectTimeStamp < CAST('%s' AS TIMESTAMP)\n",
135+
buf.append(String.format("WHERE L.StartTime >= CAST('%s' AS TIMESTAMP)\n"
136+
+ "AND L.StartTime < CAST('%s' AS TIMESTAMP)\n",
137137
SQL_FORMAT.format(interval.getStart()), SQL_FORMAT.format(interval.getEndExclusive())));
138138

139139
for (String condition : conditions) {
@@ -168,7 +168,7 @@ public void addTasksTo(List<? super Task<?>> out, @Nonnull ConnectorArguments ar
168168
List<String> logConditions = new ArrayList<>();
169169
if (!StringUtils.isBlank(arguments.getQueryLogEarliestTimestamp())) {
170170
lSqlConditions.add("ST.CollectTimeStamp >= " + arguments.getQueryLogEarliestTimestamp());
171-
logConditions.add("L.CollectTimeStamp >= " + arguments.getQueryLogEarliestTimestamp());
171+
logConditions.add("L.StartTime >= " + arguments.getQueryLogEarliestTimestamp());
172172
}
173173

174174
final int daysToExport = arguments.getQueryLogDays(7);

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/teradata/TeradataLogsConnector.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ public class TeradataLogsConnector extends AbstractTeradataConnector implements
116116
"L.SessionWDID",
117117
"L.Statements",
118118
"L.TotalIOCount",
119-
"L.WarningOnly"
119+
"L.WarningOnly",
120+
"L.StartTime"
120121
};
121122

122123
public static boolean isQueryTable(@Nonnull String expression) {
@@ -230,8 +231,8 @@ private String getSql(@Nonnull JdbcHandle handle) {
230231
}
231232

232233
buf.append(String.format(" WHERE L.ErrorCode=0\n"
233-
+ "AND L.CollectTimeStamp >= CAST('%s' AS TIMESTAMP)\n"
234-
+ "AND L.CollectTimeStamp < CAST('%s' AS TIMESTAMP)\n",
234+
+ "AND L.StartTime >= CAST('%s' AS TIMESTAMP)\n"
235+
+ "AND L.StartTime < CAST('%s' AS TIMESTAMP)\n",
235236
SQL_FORMAT.format(interval.getStart()), SQL_FORMAT.format(interval.getEndExclusive())));
236237

237238
for (String condition : conditions) {
@@ -425,7 +426,7 @@ public void addTasksTo(List<? super Task<?>> out, @Nonnull ConnectorArguments ar
425426
// preventing that in the future. To do that, we should require getQueryLogEarliestTimestamp()
426427
// to parse and return an ISO instant, not a database-server-specific format.
427428
if (!StringUtils.isBlank(arguments.getQueryLogEarliestTimestamp()))
428-
conditions.add("L.CollectTimeStamp >= " + arguments.getQueryLogEarliestTimestamp());
429+
conditions.add("L.StartTime >= " + arguments.getQueryLogEarliestTimestamp());
429430

430431
// Beware of Teradata SQLSTATE HY000. See issue #4126.
431432
// Most likely caused by some operation (equality?) being performed on a datum which is too long for a varchar.

dumper/app/src/test/java/com/google/edwmigration/dumper/application/dumper/connector/teradata/TeradataLogsConnectorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public void testExecution() throws Exception {
116116
OutputHandleFactory sinkFactory = new FileSystemOutputHandleFactory(fileSystem, "/");
117117
handle.getJdbcTemplate().execute("attach ':memory:' as dbc");
118118
// handle.getJdbcTemplate().execute("create table dbc.dbcinfo (InfoKey varchar, InfoData varchar)");
119-
handle.getJdbcTemplate().execute("create table " + TeradataLogsConnector.DEF_LOG_TABLE + " (UserName varchar, errorcode int, collecttimestamp int)");
119+
handle.getJdbcTemplate().execute("create table " + TeradataLogsConnector.DEF_LOG_TABLE + " (UserName varchar, errorcode int, StartTime int)");
120120

121121
TaskRunContext runContext = new DummyTaskRunContext(sinkFactory, handle);
122122
List<Task<?>> tasks = new ArrayList<>();

dumper/lib-dumper-spi/src/main/java/com/google/edwmigration/dumper/plugin/lib/dumper/spi/TeradataLogsDumpFormat.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ enum Header {
5050
SessionWDID,
5151
Statements,
5252
TotalIOCount,
53-
WarningOnly
53+
WarningOnly,
54+
StartTime
5455

5556
}
5657

@@ -205,7 +206,8 @@ enum HeaderLog {
205206
SessionWDID,
206207
Statements,
207208
TotalIOCount,
208-
WarningOnly
209+
WarningOnly,
210+
StartTime
209211

210212
}
211213
}

0 commit comments

Comments
 (0)