You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by jd...@apache.org on 2015/03/20 12:41:08 UTC
[2/2] incubator-lens git commit: LENS-420 Metric gauge creation in
RewriteUtil can go wrong for multiple cube query (Amareshwari via jdhok)
LENS-420 Metric gauge creation in RewriteUtil can go wrong for multiple cube query (Amareshwari via jdhok)
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/78a41c99
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/78a41c99
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/78a41c99
Branch: refs/heads/master
Commit: 78a41c99405fee70cb8eed0de6c7c7139c9876ff
Parents: 18aea02
Author: jdhok <ja...@inmobi.com>
Authored: Fri Mar 20 17:10:27 2015 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Fri Mar 20 17:10:27 2015 +0530
----------------------------------------------------------------------
.../java/org/apache/lens/driver/cube/RewriteUtil.java | 8 +++++---
.../java/org/apache/lens/driver/cube/TestRewriting.java | 11 +++++++++--
.../org/apache/lens/server/query/TestQueryService.java | 6 ++----
3 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/78a41c99/lens-cube/src/main/java/org/apache/lens/driver/cube/RewriteUtil.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/driver/cube/RewriteUtil.java b/lens-cube/src/main/java/org/apache/lens/driver/cube/RewriteUtil.java
index 3dc66ac..8ed4070 100644
--- a/lens-cube/src/main/java/org/apache/lens/driver/cube/RewriteUtil.java
+++ b/lens-cube/src/main/java/org/apache/lens/driver/cube/RewriteUtil.java
@@ -203,8 +203,8 @@ public final class RewriteUtil {
return query.replaceAll("[\\n\\r]", " ").replaceAll("&&", " AND ").replaceAll("\\|\\|", " OR ").trim();
}
- private static final String REWRITE_QUERY_GAUGE = RewriteUtil.class.getCanonicalName() + "-rewriteQuery";
- private static final String TOHQL_GAUGE = RewriteUtil.class.getCanonicalName() + "-rewriteQuery-toHQL";
+ private static final String REWRITE_QUERY_GAUGE = RewriteUtil.class.getSimpleName() + "-rewriteQuery";
+ private static final String TOHQL_GAUGE = RewriteUtil.class.getSimpleName() + "-rewriteQuery-toHQL";
/**
* Rewrite query.
@@ -280,6 +280,7 @@ public final class RewriteUtil {
// We have to rewrite each sub cube query which might be present in the original
// user query. We are looping through all sub queries here.
+ int qIndex = 1;
for (RewriteUtil.CubeQueryInfo cqi : cubeQueries) {
if (LOG.isDebugEnabled()) {
LOG.debug("Rewriting cube query:" + cqi.query);
@@ -292,10 +293,11 @@ public final class RewriteUtil {
// Parse and rewrite individual cube query
CubeQueryContext cqc = rewriter.rewrite(cqi.query);
MethodMetricsContext toHQLGauge = MethodMetricsFactory.createMethodGauge(ctx.getDriverConf(driver), true,
- TOHQL_GAUGE);
+ qIndex + "-" + TOHQL_GAUGE);
// toHQL actually generates the rewritten query
String hqlQuery = cqc.toHQL();
toHQLGauge.markSuccess();
+ qIndex++;
if (LOG.isDebugEnabled()) {
LOG.debug("Rewritten query:" + hqlQuery);
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/78a41c99/lens-cube/src/test/java/org/apache/lens/driver/cube/TestRewriting.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/test/java/org/apache/lens/driver/cube/TestRewriting.java b/lens-cube/src/test/java/org/apache/lens/driver/cube/TestRewriting.java
index 34d7dca..c64a270 100644
--- a/lens-cube/src/test/java/org/apache/lens/driver/cube/TestRewriting.java
+++ b/lens-cube/src/test/java/org/apache/lens/driver/cube/TestRewriting.java
@@ -202,8 +202,8 @@ public class TestRewriting {
MetricRegistry reg = LensMetricsRegistry.getStaticRegistry();
Assert.assertTrue(reg.getGauges().keySet().containsAll(Arrays.asList(
- "lens.MethodMetricGauge.TestRewriting-MockDriver-org.apache.lens.driver.cube.RewriteUtil-rewriteQuery",
- "lens.MethodMetricGauge.TestRewriting-MockDriver-org.apache.lens.driver.cube.RewriteUtil-rewriteQuery-toHQL")));
+ "lens.MethodMetricGauge.TestRewriting-MockDriver-RewriteUtil-rewriteQuery",
+ "lens.MethodMetricGauge.TestRewriting-MockDriver-1-RewriteUtil-rewriteQuery-toHQL")));
conf.unset(LensConfConstants.QUERY_METRIC_UNIQUE_ID_CONF_KEY);
q2 = "insert overwrite directory '/tmp/rewrite' cube select name from table";
@@ -280,6 +280,7 @@ public class TestRewriting {
ctx = new QueryContext(q2, null, lensConf, conf, drivers);
runRewrites(RewriteUtil.rewriteQuery(ctx));
+ conf.set(LensConfConstants.QUERY_METRIC_UNIQUE_ID_CONF_KEY, TestRewriting.class.getSimpleName() + "-multiple");
q2 = "select * from (cube select name from table) a join (cube select" + " name2 from table2) b";
Assert.assertTrue(RewriteUtil.isCubeQuery(q2));
cubeQueries = RewriteUtil.findCubePositions(q2, hconf);
@@ -288,6 +289,12 @@ public class TestRewriting {
Assert.assertEquals(cubeQueries.get(1).query, "cube select name2 from table2");
ctx = new QueryContext(q2, null, lensConf, conf, drivers);
runRewrites(RewriteUtil.rewriteQuery(ctx));
+ reg = LensMetricsRegistry.getStaticRegistry();
+ Assert.assertTrue(reg.getGauges().keySet().containsAll(Arrays.asList(
+ "lens.MethodMetricGauge.TestRewriting-multiple-MockDriver-1-RewriteUtil-rewriteQuery-toHQL",
+ "lens.MethodMetricGauge.TestRewriting-multiple-MockDriver-2-RewriteUtil-rewriteQuery-toHQL",
+ "lens.MethodMetricGauge.TestRewriting-multiple-MockDriver-RewriteUtil-rewriteQuery")));
+ conf.unset(LensConfConstants.QUERY_METRIC_UNIQUE_ID_CONF_KEY);
q2 = "select * from (cube select name from table) a full outer join"
+ " (cube select name2 from table2) b on a.name=b.name2";
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/78a41c99/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index 4c84c8b..14a4eb2 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -1541,12 +1541,10 @@ public class TestQueryService extends LensJerseyTest {
"lens.MethodMetricGauge.TestQueryService-testEstimateGauges-DRIVER_SELECTION",
"lens.MethodMetricGauge.TestQueryService-testEstimateGauges-HiveDriver-CUBE_REWRITE",
"lens.MethodMetricGauge.TestQueryService-testEstimateGauges-HiveDriver-DRIVER_ESTIMATE",
- "lens.MethodMetricGauge.TestQueryService-testEstimateGauges-HiveDriver-"
- + "org.apache.lens.driver.cube.RewriteUtil-rewriteQuery",
+ "lens.MethodMetricGauge.TestQueryService-testEstimateGauges-HiveDriver-RewriteUtil-rewriteQuery",
"lens.MethodMetricGauge.TestQueryService-testEstimateGauges-JDBCDriver-CUBE_REWRITE",
"lens.MethodMetricGauge.TestQueryService-testEstimateGauges-JDBCDriver-DRIVER_ESTIMATE",
- "lens.MethodMetricGauge.TestQueryService-testEstimateGauges-JDBCDriver-"
- + "org.apache.lens.driver.cube.RewriteUtil-rewriteQuery",
+ "lens.MethodMetricGauge.TestQueryService-testEstimateGauges-JDBCDriver-RewriteUtil-rewriteQuery",
"lens.MethodMetricGauge.TestQueryService-testEstimateGauges-PARALLEL_ESTIMATE")),
reg.getGauges().keySet().toString());
}