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();