Skip to content

Commit b8d0530

Browse files
committed
fix temporal extent for date columns
1 parent 3ebe309 commit b8d0530

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

xtraplatform-features-sql/src/main/java/de/ii/xtraplatform/features/sql/app/AggregateStatsQueryGenerator.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,11 @@ public String getTemporalExtentQuery(
7979

8080
String mainTable = String.format("%s %s", mainSchema.getName(), aliases.get(0));
8181

82+
SqlQueryColumn instantColumnDatetime = SqlQueryColumnOperations.dateToDatetime(instantColumn);
83+
8284
String column =
8385
SqlQueryColumnOperations.getQualifiedColumnResolved(
84-
temporalAlias, instantColumn, sqlDialect);
86+
temporalAlias, instantColumnDatetime, sqlDialect);
8587

8688
String join = JoinGenerator.getJoins(instant, aliases, filterEncoder);
8789

@@ -107,13 +109,18 @@ public String getTemporalExtentQuery(
107109

108110
String mainTable = String.format("%s %s", mainSchema.getName(), aliases.get(0));
109111

112+
SqlQueryColumn intervalStartColumnColumnDatetime =
113+
SqlQueryColumnOperations.dateToDatetime(intervalStartColumn);
114+
SqlQueryColumn intervalEndColumnDatetime =
115+
SqlQueryColumnOperations.dateToDatetime(intervalEndColumn);
116+
110117
String columnStart =
111118
SqlQueryColumnOperations.getQualifiedColumnResolved(
112-
temporalAlias, intervalStartColumn, sqlDialect);
119+
temporalAlias, intervalStartColumnColumnDatetime, sqlDialect);
113120

114121
String columnEnd =
115122
SqlQueryColumnOperations.getQualifiedColumnResolved(
116-
temporalAlias, intervalEndColumn, sqlDialect);
123+
temporalAlias, intervalEndColumnDatetime, sqlDialect);
117124

118125
String join = JoinGenerator.getJoins(intervalStart, aliases, filterEncoder);
119126

xtraplatform-features-sql/src/main/java/de/ii/xtraplatform/features/sql/app/SqlQueryColumnOperations.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
package de.ii.xtraplatform.features.sql.app;
99

1010
import com.google.common.collect.ImmutableMap;
11+
import com.google.common.collect.ImmutableMap.Builder;
12+
import de.ii.xtraplatform.features.sql.domain.ImmutableSqlQueryColumn;
1113
import de.ii.xtraplatform.features.sql.domain.SqlDialect;
1214
import de.ii.xtraplatform.features.sql.domain.SqlQueryColumn;
1315
import de.ii.xtraplatform.features.sql.domain.SqlQueryColumn.Operation;
@@ -71,4 +73,23 @@ static String getQualifiedColumnResolved(
7173
}
7274
return name;
7375
}
76+
77+
static SqlQueryColumn dateToDatetime(SqlQueryColumn column) {
78+
if (!column.getOperations().containsKey(Operation.DATE)) {
79+
return column;
80+
}
81+
Builder<Operation, String[]> ops =
82+
ImmutableMap.<Operation, String[]>builder()
83+
.put(
84+
Operation.DATETIME,
85+
column.getOperationParameters(Operation.DATE).toArray(new String[0]));
86+
87+
for (Map.Entry<Operation, String[]> entry : column.getOperations().entrySet()) {
88+
if (entry.getKey() != Operation.DATE) {
89+
ops.put(entry);
90+
}
91+
}
92+
93+
return new ImmutableSqlQueryColumn.Builder().from(column).operations(ops.build()).build();
94+
}
7495
}

0 commit comments

Comments
 (0)