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

pboado pushed a commit to branch 5.x-cdh6
in repository https://gitbox.apache.org/repos/asf/phoenix.git

commit d3e5aefe818fc61f07749e1520cae00d9ee46f10
Author: jaanai <jaa...@apache.org>
AuthorDate: Tue Mar 26 07:32:08 2019 +0000

    PHOENIX-5169 Query logger is still initialized for each query if the log 
level is off
---
 .../org/apache/phoenix/end2end/QueryLoggerIT.java  | 25 +++++++++++++---------
 .../org/apache/phoenix/jdbc/PhoenixStatement.java  |  5 +++++
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryLoggerIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryLoggerIT.java
index 2c961e0..b740d18 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryLoggerIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryLoggerIT.java
@@ -51,7 +51,9 @@ import org.apache.phoenix.exception.SQLExceptionCode;
 import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.jdbc.PhoenixDriver;
 import org.apache.phoenix.jdbc.PhoenixResultSet;
+import org.apache.phoenix.jdbc.PhoenixStatement;
 import org.apache.phoenix.log.LogLevel;
+import org.apache.phoenix.log.QueryLogger;
 import org.apache.phoenix.log.QueryStatus;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.util.EnvironmentEdge;
@@ -63,6 +65,9 @@ import org.junit.Test;
 
 import com.google.common.collect.Maps;
 
+import javax.validation.constraints.AssertFalse;
+import javax.validation.constraints.AssertTrue;
+
 public class QueryLoggerIT extends BaseUniqueNamesOwnClusterIT {
 
 
@@ -226,29 +231,29 @@ public class QueryLoggerIT extends 
BaseUniqueNamesOwnClusterIT {
         props.setProperty(QueryServices.LOG_LEVEL, LogLevel.OFF.name());
         Connection conn = DriverManager.getConnection(getUrl(),props);
         
assertEquals(conn.unwrap(PhoenixConnection.class).getLogLevel(),LogLevel.OFF);
+
+        // delete old data
+        conn.createStatement().executeUpdate("delete from " + 
SYSTEM_CATALOG_SCHEMA + ".\"" + SYSTEM_LOG_TABLE + "\"");
+        conn.commit();
+
         String query = "SELECT * FROM " + tableName;
-        
         ResultSet rs = conn.createStatement().executeQuery(query);
         StatementContext context = ((PhoenixResultSet)rs).getContext();
-        String queryId = context.getQueryLogger().getQueryId();
+        assertEquals(context.getQueryLogger(), QueryLogger.NO_OP_INSTANCE);
         while (rs.next()) {
             rs.getString(1);
             rs.getString(2);
         }
 
-        String logQuery = "SELECT * FROM " + SYSTEM_CATALOG_SCHEMA + ".\"" + 
SYSTEM_LOG_TABLE + "\"";
+        String logQuery = "SELECT count(*) FROM " + SYSTEM_CATALOG_SCHEMA + 
".\"" + SYSTEM_LOG_TABLE + "\"";
         int delay = 5000;
 
         // sleep for sometime to let query log committed
         Thread.sleep(delay);
         rs = conn.createStatement().executeQuery(logQuery);
-        boolean foundQueryLog = false;
-        while (rs.next()) {
-            if (rs.getString(QUERY_ID).equals(queryId)) {
-                foundQueryLog = true;
-            }
-        }
-        assertFalse(foundQueryLog);
+        assertTrue(rs.next());
+        assertEquals(rs.getInt(1), 0);
+        assertFalse(rs.next());
         conn.close();
     }
     
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java 
b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
index 7cbc43c..d0d194c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixStatement.java
@@ -92,6 +92,7 @@ import org.apache.phoenix.expression.RowKeyColumnExpression;
 import org.apache.phoenix.iterate.MaterializedResultIterator;
 import org.apache.phoenix.iterate.ParallelScanGrouper;
 import org.apache.phoenix.iterate.ResultIterator;
+import org.apache.phoenix.log.LogLevel;
 import org.apache.phoenix.log.QueryLogInfo;
 import org.apache.phoenix.log.QueryStatus;
 import org.apache.phoenix.log.QueryLogger;
@@ -1769,6 +1770,10 @@ public class PhoenixStatement implements Statement, 
SQLCloseable {
     }
 
     public QueryLogger createQueryLogger(CompilableStatement stmt, String sql) 
throws SQLException {
+        if (connection.getLogLevel() == LogLevel.OFF) {
+            return QueryLogger.NO_OP_INSTANCE;
+        }
+
         boolean isSystemTable=false;
         if(stmt instanceof ExecutableSelectStatement){
             TableNode from = ((ExecutableSelectStatement)stmt).getFrom();

Reply via email to