From ae8eda028151d4b15c2fa48d26bbf28f51994f82 Mon Sep 17 00:00:00 2001 From: Alexander Skoblikov Date: Wed, 16 Feb 2022 15:36:12 +0300 Subject: [PATCH] CB-1666 qm: save filtered user queries with correct type --- .../src/io/cloudbeaver/service/sql/WebSQLProcessor.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java index 70e8ceae40..78c14287c3 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/sql/WebSQLProcessor.java @@ -176,9 +176,8 @@ public class WebSQLProcessor implements WebSessionProvider { final WebSQLDataFilter webDataFilter = filter; final String sqlQueryText = sql; SQLQuery sqlQuery = new SQLQuery(context.getDataSource(), sqlQueryText); - DBExecUtils.tryExecuteRecover(monitor, connection.getDataSource(), param -> { - try (DBCSession session = context.openSession(monitor, DBCExecutionPurpose.USER, "Execute SQL")) { + try (DBCSession session = context.openSession(monitor, resolveQueryPurpose(dataFilter), "Execute SQL")) { AbstractExecutionSource source = new AbstractExecutionSource( dataContainer, session.getExecutionContext(), @@ -229,7 +228,7 @@ public class WebSQLProcessor implements WebSessionProvider { (resultId == null ? null : contextInfo.getResults(resultId)), dataContainer); DBExecUtils.tryExecuteRecover(monitor, connection.getDataSource(), param -> { - try (DBCSession session = executionContext.openSession(monitor, DBCExecutionPurpose.USER, "Read data from container")) { + try (DBCSession session = executionContext.openSession(monitor, resolveQueryPurpose(dataFilter), "Read data from container")) { try (WebSQLQueryDataReceiver dataReceiver = new WebSQLQueryDataReceiver(contextInfo, dataContainer, dataFormat)) { DBCStatistics statistics = dataContainer.readData( new WebExecutionSource(dataContainer, executionContext, this), @@ -776,4 +775,8 @@ public class WebSQLProcessor implements WebSessionProvider { } return dataSource.getInfo().supportsMultipleResults() ? MAX_RESULTS_COUNT : 1; } + + private static DBCExecutionPurpose resolveQueryPurpose(DBDDataFilter filter) { + return filter.hasFilters() ? DBCExecutionPurpose.USER_FILTERED : DBCExecutionPurpose.USER; + } }