Skip to content

Commit b08c326

Browse files
feeblefakieKodaiD
andauthored
Backport to branch(3) : Fix to enable tests for TIMESTAMPTZ (#3081)
Co-authored-by: Kodai Doki <[email protected]>
1 parent a38bf9b commit b08c326

File tree

7 files changed

+203
-293
lines changed

7 files changed

+203
-293
lines changed

core/src/integration-test/java/com/scalar/db/storage/jdbc/ConsensusCommitAdminIntegrationTestWithJdbcDatabase.java

Lines changed: 29 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
235235
try {
236236
// Arrange
237237
Map<String, String> options = getCreationOptions();
238-
TableMetadata.Builder currentTableMetadataBuilder =
238+
TableMetadata currentTableMetadata =
239239
TableMetadata.newBuilder()
240240
.addColumn("c1", DataType.INT)
241241
.addColumn("c2", DataType.INT)
@@ -247,16 +247,13 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
247247
.addColumn("c8", DataType.BLOB)
248248
.addColumn("c9", DataType.DATE)
249249
.addColumn("c10", DataType.TIME)
250+
.addColumn("c11", DataType.TIMESTAMPTZ)
250251
.addPartitionKey("c1")
251-
.addClusteringKey("c2", Scan.Ordering.Order.ASC);
252-
if (isTimestampTypeSupported()) {
253-
currentTableMetadataBuilder
254-
.addColumn("c11", DataType.TIMESTAMP)
255-
.addColumn("c12", DataType.TIMESTAMPTZ);
256-
}
257-
TableMetadata currentTableMetadata = currentTableMetadataBuilder.build();
252+
.addClusteringKey("c2", Scan.Ordering.Order.ASC)
253+
.addColumn("c12", DataType.TIMESTAMP)
254+
.build();
258255
admin.createTable(namespace1, TABLE4, currentTableMetadata, options);
259-
InsertBuilder.Buildable insert =
256+
Insert insert =
260257
Insert.newBuilder()
261258
.namespace(namespace1)
262259
.table(TABLE4)
@@ -269,12 +266,11 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
269266
.textValue("c7", "5")
270267
.blobValue("c8", "6".getBytes(StandardCharsets.UTF_8))
271268
.dateValue("c9", LocalDate.now(ZoneId.of("UTC")))
272-
.timeValue("c10", LocalTime.now(ZoneId.of("UTC")));
273-
if (isTimestampTypeSupported()) {
274-
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
275-
insert.timestampTZValue("c12", Instant.now());
276-
}
277-
transactionalInsert(insert.build());
269+
.timeValue("c10", LocalTime.now(ZoneId.of("UTC")))
270+
.timestampTZValue("c11", Instant.now())
271+
.timestampValue("c12", LocalDateTime.now(ZoneOffset.UTC))
272+
.build();
273+
transactionalInsert(insert);
278274

279275
// Act Assert
280276
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -293,12 +289,10 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
293289
.isInstanceOf(UnsupportedOperationException.class);
294290
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c10", DataType.TEXT))
295291
.isInstanceOf(UnsupportedOperationException.class);
296-
if (isTimestampTypeSupported()) {
297-
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c11", DataType.TEXT))
298-
.isInstanceOf(UnsupportedOperationException.class);
299-
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c12", DataType.TEXT))
300-
.isInstanceOf(UnsupportedOperationException.class);
301-
}
292+
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c11", DataType.TEXT))
293+
.isInstanceOf(UnsupportedOperationException.class);
294+
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c12", DataType.TEXT))
295+
.isInstanceOf(UnsupportedOperationException.class);
302296
} finally {
303297
admin.dropTable(namespace1, TABLE4, true);
304298
}
@@ -324,13 +318,10 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
324318
.addColumn("c8", DataType.BLOB)
325319
.addColumn("c9", DataType.DATE)
326320
.addColumn("c10", DataType.TIME)
321+
.addColumn("c11", DataType.TIMESTAMPTZ)
322+
.addColumn("c12", DataType.TIMESTAMP)
327323
.addPartitionKey("c1")
328324
.addClusteringKey("c2", Scan.Ordering.Order.ASC);
329-
if (isTimestampTypeSupported()) {
330-
currentTableMetadataBuilder
331-
.addColumn("c11", DataType.TIMESTAMP)
332-
.addColumn("c12", DataType.TIMESTAMPTZ);
333-
}
334325
TableMetadata currentTableMetadata = currentTableMetadataBuilder.build();
335326
admin.createTable(namespace1, TABLE4, currentTableMetadata, options);
336327
InsertBuilder.Buildable insert =
@@ -346,11 +337,9 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
346337
.textValue("c7", "5")
347338
.blobValue("c8", "6".getBytes(StandardCharsets.UTF_8))
348339
.dateValue("c9", LocalDate.now(ZoneId.of("UTC")))
349-
.timeValue("c10", LocalTime.now(ZoneId.of("UTC")));
350-
if (isTimestampTypeSupported()) {
351-
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
352-
insert.timestampTZValue("c12", Instant.now());
353-
}
340+
.timeValue("c10", LocalTime.now(ZoneId.of("UTC")))
341+
.timestampTZValue("c11", Instant.now())
342+
.timestampValue("c12", LocalDateTime.now(ZoneOffset.UTC));
354343
transactionalInsert(insert.build());
355344

356345
// Act Assert
@@ -370,14 +359,12 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
370359
.doesNotThrowAnyException();
371360
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c10", DataType.TEXT))
372361
.doesNotThrowAnyException();
373-
if (isTimestampTypeSupported()) {
374-
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c11", DataType.TEXT))
375-
.doesNotThrowAnyException();
376-
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c12", DataType.TEXT))
377-
.doesNotThrowAnyException();
378-
}
362+
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c11", DataType.TEXT))
363+
.doesNotThrowAnyException();
364+
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c12", DataType.TEXT))
365+
.doesNotThrowAnyException();
379366

380-
TableMetadata.Builder expectedTableMetadataBuilder =
367+
TableMetadata expectedTableMetadata =
381368
TableMetadata.newBuilder()
382369
.addColumn("c1", DataType.INT)
383370
.addColumn("c2", DataType.INT)
@@ -389,14 +376,11 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
389376
.addColumn("c8", DataType.BLOB)
390377
.addColumn("c9", DataType.TEXT)
391378
.addColumn("c10", DataType.TEXT)
379+
.addColumn("c11", DataType.TEXT)
380+
.addColumn("c12", DataType.TEXT)
392381
.addPartitionKey("c1")
393-
.addClusteringKey("c2", Scan.Ordering.Order.ASC);
394-
if (isTimestampTypeSupported()) {
395-
expectedTableMetadataBuilder
396-
.addColumn("c11", DataType.TEXT)
397-
.addColumn("c12", DataType.TEXT);
398-
}
399-
TableMetadata expectedTableMetadata = expectedTableMetadataBuilder.build();
382+
.addClusteringKey("c2", Scan.Ordering.Order.ASC)
383+
.build();
400384
assertThat(admin.getTableMetadata(namespace1, TABLE4)).isEqualTo(expectedTableMetadata);
401385
} finally {
402386
admin.dropTable(namespace1, TABLE4, true);

core/src/integration-test/java/com/scalar/db/storage/jdbc/JdbcAdminCaseSensitivityIntegrationTest.java

Lines changed: 44 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
226226
try (DistributedStorage storage = storageFactory.getStorage()) {
227227
// Arrange
228228
Map<String, String> options = getCreationOptions();
229-
TableMetadata.Builder currentTableMetadataBuilder =
229+
TableMetadata currentTableMetadata =
230230
TableMetadata.newBuilder()
231231
.addColumn(getColumnName1(), DataType.INT)
232232
.addColumn(getColumnName2(), DataType.INT)
@@ -238,14 +238,11 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
238238
.addColumn(getColumnName8(), DataType.BLOB)
239239
.addColumn(getColumnName9(), DataType.DATE)
240240
.addColumn(getColumnName10(), DataType.TIME)
241+
.addColumn(getColumnName11(), DataType.TIMESTAMPTZ)
242+
.addColumn(getColumnName12(), DataType.TIMESTAMP)
241243
.addPartitionKey(getColumnName1())
242-
.addClusteringKey(getColumnName2(), Scan.Ordering.Order.ASC);
243-
if (isTimestampTypeSupported()) {
244-
currentTableMetadataBuilder
245-
.addColumn(getColumnName11(), DataType.TIMESTAMP)
246-
.addColumn(getColumnName12(), DataType.TIMESTAMPTZ);
247-
}
248-
TableMetadata currentTableMetadata = currentTableMetadataBuilder.build();
244+
.addClusteringKey(getColumnName2(), Scan.Ordering.Order.ASC)
245+
.build();
249246
admin.createTable(getNamespace1(), getTable4(), currentTableMetadata, options);
250247
PutBuilder.Buildable put =
251248
Put.newBuilder()
@@ -260,11 +257,9 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
260257
.textValue(getColumnName7(), "5")
261258
.blobValue(getColumnName8(), "6".getBytes(StandardCharsets.UTF_8))
262259
.dateValue(getColumnName9(), LocalDate.now(ZoneId.of("UTC")))
263-
.timeValue(getColumnName10(), LocalTime.now(ZoneId.of("UTC")));
264-
if (isTimestampTypeSupported()) {
265-
put.timestampValue(getColumnName11(), LocalDateTime.now(ZoneOffset.UTC));
266-
put.timestampTZValue(getColumnName12(), Instant.now());
267-
}
260+
.timeValue(getColumnName10(), LocalTime.now(ZoneId.of("UTC")))
261+
.timestampTZValue(getColumnName11(), Instant.now())
262+
.timestampValue(getColumnName12(), LocalDateTime.now(ZoneOffset.UTC));
268263
storage.put(put.build());
269264
storage.close();
270265

@@ -309,18 +304,16 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
309304
admin.alterColumnType(
310305
getNamespace1(), getTable4(), getColumnName10(), DataType.TEXT))
311306
.isInstanceOf(UnsupportedOperationException.class);
312-
if (isTimestampTypeSupported()) {
313-
assertThatCode(
314-
() ->
315-
admin.alterColumnType(
316-
getNamespace1(), getTable4(), getColumnName11(), DataType.TEXT))
317-
.isInstanceOf(UnsupportedOperationException.class);
318-
assertThatCode(
319-
() ->
320-
admin.alterColumnType(
321-
getNamespace1(), getTable4(), getColumnName12(), DataType.TEXT))
322-
.isInstanceOf(UnsupportedOperationException.class);
323-
}
307+
assertThatCode(
308+
() ->
309+
admin.alterColumnType(
310+
getNamespace1(), getTable4(), getColumnName11(), DataType.TEXT))
311+
.isInstanceOf(UnsupportedOperationException.class);
312+
assertThatCode(
313+
() ->
314+
admin.alterColumnType(
315+
getNamespace1(), getTable4(), getColumnName12(), DataType.TEXT))
316+
.isInstanceOf(UnsupportedOperationException.class);
324317
} finally {
325318
admin.dropTable(getNamespace1(), getTable4(), true);
326319
}
@@ -334,7 +327,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
334327
try (DistributedStorage storage = storageFactory.getStorage()) {
335328
// Arrange
336329
Map<String, String> options = getCreationOptions();
337-
TableMetadata.Builder currentTableMetadataBuilder =
330+
TableMetadata currentTableMetadata =
338331
TableMetadata.newBuilder()
339332
.addColumn(getColumnName1(), DataType.INT)
340333
.addColumn(getColumnName2(), DataType.INT)
@@ -346,16 +339,13 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
346339
.addColumn(getColumnName8(), DataType.BLOB)
347340
.addColumn(getColumnName9(), DataType.DATE)
348341
.addColumn(getColumnName10(), DataType.TIME)
342+
.addColumn(getColumnName11(), DataType.TIMESTAMPTZ)
343+
.addColumn(getColumnName12(), DataType.TIMESTAMP)
349344
.addPartitionKey(getColumnName1())
350-
.addClusteringKey(getColumnName2(), Scan.Ordering.Order.ASC);
351-
if (isTimestampTypeSupported()) {
352-
currentTableMetadataBuilder
353-
.addColumn(getColumnName11(), DataType.TIMESTAMP)
354-
.addColumn(getColumnName12(), DataType.TIMESTAMPTZ);
355-
}
356-
TableMetadata currentTableMetadata = currentTableMetadataBuilder.build();
345+
.addClusteringKey(getColumnName2(), Scan.Ordering.Order.ASC)
346+
.build();
357347
admin.createTable(getNamespace1(), getTable4(), currentTableMetadata, options);
358-
PutBuilder.Buildable put =
348+
Put put =
359349
Put.newBuilder()
360350
.namespace(getNamespace1())
361351
.table(getTable4())
@@ -368,12 +358,11 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
368358
.textValue(getColumnName7(), "5")
369359
.blobValue(getColumnName8(), "6".getBytes(StandardCharsets.UTF_8))
370360
.dateValue(getColumnName9(), LocalDate.now(ZoneId.of("UTC")))
371-
.timeValue(getColumnName10(), LocalTime.now(ZoneId.of("UTC")));
372-
if (isTimestampTypeSupported()) {
373-
put.timestampValue(getColumnName11(), LocalDateTime.now(ZoneOffset.UTC));
374-
put.timestampTZValue(getColumnName12(), Instant.now());
375-
}
376-
storage.put(put.build());
361+
.timeValue(getColumnName10(), LocalTime.now(ZoneId.of("UTC")))
362+
.timestampTZValue(getColumnName11(), Instant.now())
363+
.timestampValue(getColumnName12(), LocalDateTime.now(ZoneOffset.UTC))
364+
.build();
365+
storage.put(put);
377366
storage.close();
378367

379368
// Act Assert
@@ -417,20 +406,18 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
417406
admin.alterColumnType(
418407
getNamespace1(), getTable4(), getColumnName10(), DataType.TEXT))
419408
.doesNotThrowAnyException();
420-
if (isTimestampTypeSupported()) {
421-
assertThatCode(
422-
() ->
423-
admin.alterColumnType(
424-
getNamespace1(), getTable4(), getColumnName11(), DataType.TEXT))
425-
.doesNotThrowAnyException();
426-
assertThatCode(
427-
() ->
428-
admin.alterColumnType(
429-
getNamespace1(), getTable4(), getColumnName12(), DataType.TEXT))
430-
.doesNotThrowAnyException();
431-
}
409+
assertThatCode(
410+
() ->
411+
admin.alterColumnType(
412+
getNamespace1(), getTable4(), getColumnName11(), DataType.TEXT))
413+
.doesNotThrowAnyException();
414+
assertThatCode(
415+
() ->
416+
admin.alterColumnType(
417+
getNamespace1(), getTable4(), getColumnName12(), DataType.TEXT))
418+
.doesNotThrowAnyException();
432419

433-
TableMetadata.Builder expectedTableMetadataBuilder =
420+
TableMetadata expectedTableMetadata =
434421
TableMetadata.newBuilder()
435422
.addColumn(getColumnName1(), DataType.INT)
436423
.addColumn(getColumnName2(), DataType.INT)
@@ -442,14 +429,11 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
442429
.addColumn(getColumnName8(), DataType.BLOB)
443430
.addColumn(getColumnName9(), DataType.TEXT)
444431
.addColumn(getColumnName10(), DataType.TEXT)
432+
.addColumn(getColumnName11(), DataType.TEXT)
445433
.addPartitionKey(getColumnName1())
446-
.addClusteringKey(getColumnName2(), Scan.Ordering.Order.ASC);
447-
if (isTimestampTypeSupported()) {
448-
expectedTableMetadataBuilder
449-
.addColumn(getColumnName11(), DataType.TEXT)
450-
.addColumn(getColumnName12(), DataType.TEXT);
451-
}
452-
TableMetadata expectedTableMetadata = expectedTableMetadataBuilder.build();
434+
.addClusteringKey(getColumnName2(), Scan.Ordering.Order.ASC)
435+
.addColumn(getColumnName12(), DataType.TEXT)
436+
.build();
453437
assertThat(admin.getTableMetadata(getNamespace1(), getTable4()))
454438
.isEqualTo(expectedTableMetadata);
455439
} finally {

0 commit comments

Comments
 (0)