This is an automated email from the ASF dual-hosted git repository.
zehnder pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git
The following commit(s) were added to refs/heads/dev by this push:
new 17c57f142f fix(#4057): Convert double timestamp value from influx to
long (#4058)
17c57f142f is described below
commit 17c57f142fb54a9f44a09298eff0692847ad75d4
Author: Philipp Zehnder <[email protected]>
AuthorDate: Fri Dec 19 08:02:31 2025 +0100
fix(#4057): Convert double timestamp value from influx to long (#4058)
---
.../dataexplorer/export/item/ItemGenerator.java | 7 -------
.../export/TestConfiguredOutputWriter.java | 4 ++--
.../dataexplorer/export/TestItemGenerator.java | 2 +-
.../influx/DataExplorerInfluxQueryExecutor.java | 24 ++++++++++++++++------
4 files changed, 21 insertions(+), 16 deletions(-)
diff --git
a/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
b/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
index 8ce39f516f..c0daf5905d 100644
---
a/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
+++
b/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
@@ -38,9 +38,6 @@ public abstract class ItemGenerator {
for (int i = 0; i < row.size(); i++) {
Object value = row.get(i);
- if (i == 0) {
- value = getTimestampValue((Double) row.get(i));
- }
joiner.add(makeItemString(columns.get(i), value));
}
@@ -52,8 +49,4 @@ public abstract class ItemGenerator {
protected abstract String finalizeItem(String item);
- private long getTimestampValue(Double value) {
- return value.longValue();
- }
-
}
diff --git
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
index ea921e844e..55baac6339 100644
---
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
+++
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
@@ -31,8 +31,8 @@ public abstract class TestConfiguredOutputWriter {
@BeforeEach
public void before() {
this.rows = Arrays.asList(
- Arrays.asList(1668578077051.0, "test", 1),
- Arrays.asList(1668578127050.0, "test2", 2)
+ Arrays.asList(1668578077051L, "test", 1),
+ Arrays.asList(1668578127050L, "test2", 2)
);
this.columns = Arrays.asList("time", "string", "number");
diff --git
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
index d5cdc01fb9..8877e6b703 100644
---
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
+++
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
@@ -30,7 +30,7 @@ public abstract class TestItemGenerator {
@BeforeEach
public void before() {
- this.row = Arrays.asList(1668578077051.0, "test", 1);
+ this.row = Arrays.asList(1668578077051L, "test", 1);
this.columns = Arrays.asList("time", "string", "number");
}
}
diff --git
a/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
b/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
index dee0b1cbdd..f4e1df6095 100644
---
a/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
+++
b/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
@@ -18,10 +18,10 @@
package org.apache.streampipes.dataexplorer.influx;
+import org.apache.streampipes.dataexplorer.api.IDataLakeQueryBuilder;
import org.apache.streampipes.dataexplorer.influx.client.InfluxClientProvider;
import org.apache.streampipes.dataexplorer.param.DeleteQueryParams;
import org.apache.streampipes.dataexplorer.param.SelectQueryParams;
-import org.apache.streampipes.dataexplorer.api.IDataLakeQueryBuilder;
import org.apache.streampipes.dataexplorer.query.DataExplorerQueryExecutor;
import org.apache.streampipes.model.datalake.DataLakeMeasure;
import org.apache.streampipes.model.datalake.DataSeries;
@@ -52,13 +52,16 @@ public class DataExplorerInfluxQueryExecutor extends
DataExplorerQueryExecutor<Q
List<List<Object>> resultingValues = new ArrayList<>();
- values.forEach(v -> {
+ values.forEach(row -> {
+
+ convertTimestampValueToLong(row);
+
if (ignoreMissingValues) {
- if (!v.contains(null)) {
- resultingValues.add(v);
+ if (!row.contains(null)) {
+ resultingValues.add(row);
}
} else {
- resultingValues.add(v);
+ resultingValues.add(row);
}
});
@@ -66,6 +69,15 @@ public class DataExplorerInfluxQueryExecutor extends
DataExplorerQueryExecutor<Q
return new DataSeries(resultingValues.size(), resultingValues, columns,
series.getTags());
}
+ /**
+ * The influx client always returns a double for timestamp values. This
method converts them to long values.
+ */
+ private void convertTimestampValueToLong(List<Object> row) {
+ if (!row.isEmpty()) {
+ row.set(0, ((Number) row.get(0)).longValue());
+ }
+ }
+
protected SpQueryResult postQuery(QueryResult queryResult,
Optional<String> forIdOpt,
boolean ignoreMissingValues) throws
RuntimeException {
@@ -78,7 +90,7 @@ public class DataExplorerInfluxQueryExecutor extends
DataExplorerQueryExecutor<Q
result.setHeaders(series.getHeaders());
result.addDataResult(series);
List<Object> lastValue = rs.getValues().get(rs.getValues().size() - 1);
- lastTimestamp.set(Math.max(lastTimestamp.get(), ((Double)
lastValue.get(0)).longValue()));
+ lastTimestamp.set(Math.max(lastTimestamp.get(), (long)
lastValue.get(0)));
});
result.setTotal(result.getAllDataSeries().stream().mapToInt(DataSeries::getTotal).sum());