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

namelchev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 66bd852a89f IGNITE-19880 Fixed negative duration in the SQL query 
system view (#10958)
66bd852a89f is described below

commit 66bd852a89f72e7d002a134a7a6d779a5cd2e93b
Author: Anastasia Iakimova <94782753+nastya...@users.noreply.github.com>
AuthorDate: Thu Sep 28 22:17:21 2023 +0300

    IGNITE-19880 Fixed negative duration in the SQL query system view (#10958)
---
 .../query/running/QueryHistoryTracker.java          |  3 ++-
 .../query/running/RunningQueryManager.java          |  6 +++---
 .../processors/query/SqlSystemViewsSelfTest.java    | 21 +++++++++++++++++++++
 3 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/QueryHistoryTracker.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/QueryHistoryTracker.java
index 33b986590a3..6a2650f48a4 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/QueryHistoryTracker.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/QueryHistoryTracker.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import org.apache.ignite.configuration.SqlConfiguration;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.jsr166.ConcurrentLinkedDeque8;
 import org.jsr166.ConcurrentLinkedDeque8.Node;
 
@@ -58,7 +59,7 @@ class QueryHistoryTracker {
         String schema = runningQryInfo.schemaName();
         boolean loc = runningQryInfo.local();
         long startTime = runningQryInfo.startTime();
-        long duration = System.currentTimeMillis() - startTime;
+        long duration = U.currentTimeMillis() - startTime;
 
         QueryHistory hist = new QueryHistory(qry, schema, loc, startTime, 
duration, failed);
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/RunningQueryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/RunningQueryManager.java
index 50617b288e3..52f8cc87f67 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/RunningQueryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/RunningQueryManager.java
@@ -270,7 +270,7 @@ public class RunningQueryManager {
             qry,
             qryType,
             schemaName,
-            System.currentTimeMillis(),
+            U.currentTimeMillis(),
             ctx.performanceStatistics().enabled() ? System.nanoTime() : 0,
             cancel,
             loc,
@@ -411,7 +411,7 @@ public class RunningQueryManager {
                     qry.queryType(),
                     qry.schemaName(),
                     qry.startTime(),
-                    System.currentTimeMillis(),
+                    U.currentTimeMillis(),
                     qry.local(),
                     qry.enforceJoinOrder(),
                     qry.lazy(),
@@ -523,7 +523,7 @@ public class RunningQueryManager {
     public Collection<GridRunningQueryInfo> runningQueries(long duration) {
         Collection<GridRunningQueryInfo> res = new ArrayList<>();
 
-        long curTime = System.currentTimeMillis();
+        long curTime = U.currentTimeMillis();
 
         for (GridRunningQueryInfo runningQryInfo : runs.values()) {
             if (curTime - runningQryInfo.startTime() > duration)
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java
index 1bbb15ac935..62ef13a69a2 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/SqlSystemViewsSelfTest.java
@@ -84,6 +84,8 @@ import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteRunnable;
 import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
+import org.apache.ignite.spi.systemview.view.SqlQueryView;
+import org.apache.ignite.spi.systemview.view.SystemView;
 import org.apache.ignite.spi.systemview.view.sql.SqlTableView;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.junit.Assert;
@@ -93,6 +95,7 @@ import static java.util.Arrays.asList;
 import static java.util.stream.Collectors.toSet;
 import static org.apache.ignite.events.EventType.EVT_CONSISTENCY_VIOLATION;
 import static 
org.apache.ignite.internal.processors.cache.persistence.metastorage.MetaStorage.METASTORAGE_CACHE_NAME;
+import static 
org.apache.ignite.internal.processors.query.running.RunningQueryManager.SQL_QRY_VIEW;
 import static org.apache.ignite.internal.util.IgniteUtils.MB;
 import static org.apache.ignite.testframework.GridTestUtils.waitForCondition;
 import static org.junit.Assert.assertNotEquals;
@@ -668,6 +671,24 @@ public class SqlSystemViewsSelfTest extends 
AbstractIndexingCommonTest {
         assertTrue(cache.query(new SqlFieldsQuery(sql)).getAll().isEmpty());
     }
 
+    /**
+     * Test running queries duration in system view.
+     */
+    @Test
+    public void testRunningQueriesViewDuration() throws Exception {
+        IgniteEx ignite = startGrid(0);
+
+        SqlFieldsQuery sql = new SqlFieldsQuery("SELECT * FROM (VALUES 
(1),(2))").setPageSize(1);
+
+        for (int i = 0; i < 5; i++) {
+            ignite.context().query().querySqlFields(sql, 
true).iterator().hasNext();
+
+            SystemView<SqlQueryView> view = 
ignite.context().systemView().view(SQL_QRY_VIEW);
+
+            view.forEach(v -> assertTrue(v.duration() >= 0));
+        }
+    }
+
     /**
      * Test that we can't use cache tables and system views in the same query.
      */

Reply via email to