diff --git a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsRecordSet.java b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsRecordSet.java index b0f0986cc929..876bdae004e3 100644 --- a/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsRecordSet.java +++ b/plugin/trino-tpcds/src/main/java/io/trino/plugin/tpcds/TpcdsRecordSet.java @@ -25,10 +25,9 @@ import io.trino.tpcds.Results; import io.trino.tpcds.column.Column; import io.trino.tpcds.column.ColumnType; -import org.joda.time.Days; -import org.joda.time.LocalDate; import org.joda.time.LocalTime; +import java.time.LocalDate; import java.util.Iterator; import java.util.List; @@ -131,7 +130,7 @@ public long getLong(int field) checkState(row != null, "No current row"); Column column = columns.get(field); if (column.getType().getBase() == ColumnType.Base.DATE) { - return Days.daysBetween(new LocalDate(0), LocalDate.parse(row.get(column.getPosition()))).getDays(); + return LocalDate.parse(row.get(column.getPosition())).toEpochDay(); } if (column.getType().getBase() == ColumnType.Base.TIME) { return LocalTime.parse(row.get(column.getPosition())).getMillisOfDay(); diff --git a/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/TestTpcds.java b/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/TestTpcds.java index 9b17d4e86292..9875f611e4f3 100644 --- a/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/TestTpcds.java +++ b/plugin/trino-tpcds/src/test/java/io/trino/plugin/tpcds/TestTpcds.java @@ -86,6 +86,13 @@ public void testShowTables() assertQueryFails("SHOW TABLES FROM sf0", "line 1:1: Schema 'sf0' does not exist"); } + @Test + public void testDateColumnValuesCorrectness() + { + // make sure date values are correct regardless of the system timezone selected (test are executed with the system timezone set to America/Bahia_Banderas) + assertQuery("SELECT d_date FROM date_dim WHERE d_date_id = 'AAAAAAAAOKJNECAA'", "SELECT DATE '1900-01-02'"); + } + private Session createSession(String schemaName) { return testSessionBuilder()