You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2019/03/29 14:37:58 UTC

[phoenix] branch 4.x-HBase-1.2 updated: PHOENIX-5169 Query logger is still initialized for each query if the log level is off

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

jaanai pushed a commit to branch 4.x-HBase-1.2
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x-HBase-1.2 by this push:
     new a7ee4f4  PHOENIX-5169 Query logger is still initialized for each query if the log level is off
a7ee4f4 is described below

commit a7ee4f4444f2a7c1bcf4be140f0434474c67e68e
Author: jaanai <ja...@apache.org>
AuthorDate: Tue Mar 26 15:32:08 2019 +0800

    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 618d7d9..494075a 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 {
 
 
@@ -225,29 +230,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 49ca967..166ee3c 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;
@@ -1766,6 +1767,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();