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 <[email protected]>
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.
*/