This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch 
4057-timestamp-from-influxdb-client-is-always-returned-as-double
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to 
refs/heads/4057-timestamp-from-influxdb-client-is-always-returned-as-double by 
this push:
     new b4f134a168 fix(#4057): Convert double timestamp value from influx to 
long
b4f134a168 is described below

commit b4f134a168a4110343ce6fb7f62794d90f84f978
Author: Philipp Zehnder <[email protected]>
AuthorDate: Mon Dec 15 16:00:02 2025 +0100

    fix(#4057): Convert double timestamp value from influx to long
---
 .../dataexplorer/export/item/ItemGenerator.java    |  7 -------
 .../influx/DataExplorerInfluxQueryExecutor.java    | 24 ++++++++++++++++------
 2 files changed, 18 insertions(+), 13 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-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());

Reply via email to