diff --git a/src/main/java/io/ebean/meta/MetaOrmQueryMetric.java b/src/main/java/io/ebean/meta/MetaOrmQueryMetric.java index 23525261d..9bce29409 100644 --- a/src/main/java/io/ebean/meta/MetaOrmQueryMetric.java +++ b/src/main/java/io/ebean/meta/MetaOrmQueryMetric.java @@ -13,9 +13,9 @@ public interface MetaOrmQueryMetric extends MetaQueryMetric { boolean isAutoTuned(); /** - * Return a string representation of the query plan hash. + * Return the hash of the sql. */ - String getQueryPlanHash(); + String getSqlHash(); /** * Return the time of the last query executed using this plan. diff --git a/src/main/java/io/ebean/meta/MetaQueryPlan.java b/src/main/java/io/ebean/meta/MetaQueryPlan.java index f24ff94fa..6170d5a3a 100644 --- a/src/main/java/io/ebean/meta/MetaQueryPlan.java +++ b/src/main/java/io/ebean/meta/MetaQueryPlan.java @@ -1,23 +1,51 @@ package io.ebean.meta; +import io.ebean.ProfileLocation; + public interface MetaQueryPlan { + /** + * Return the bean type for the query. + */ Class getBeanType(); /** - * Return a string representation of the query plan hash. + * Return the label of the query. */ - String getQueryPlanHash(); - String getLabel(); + /** + * Return the profile location for the query. + */ + ProfileLocation getProfileLocation(); + + /** + * Return the sql of the query. + */ String getSql(); + /** + * Return the hash of the sql. + */ + String getSqlHash(); + + /** + * Return a description of the bind values. + */ String getBind(); + /** + * Return the raw plan. + */ String getPlan(); + /** + * Return the query execution time associated with the bind values capture. + */ long getQueryTimeMicros(); + /** + * Return the total count of times bind capture has occurred. + */ long getCaptureCount(); } diff --git a/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java b/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java index 6857275f9..08ee24210 100644 --- a/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java +++ b/src/main/java/io/ebeaninternal/server/core/DumpMetrics.java @@ -113,7 +113,7 @@ class DumpMetrics { appendQueryName(metric, sb); appendCounters(metric, sb); if (dumpHash) { - sb.append("\n hash:").append(metric.getQueryPlanHash()); + sb.append("\n hash:").append(metric.getSqlHash()); } appendProfileAndSql(metric, sb); out(sb.toString()); diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java b/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java index 25455ae37..54a8defbc 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryPlanStats.java @@ -238,7 +238,7 @@ public final class CQueryPlanStats { } @Override - public String getQueryPlanHash() { + public String getSqlHash() { return queryPlan.getSqlHash(); } diff --git a/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java b/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java index 4f7716ef3..fc4aa0b0a 100644 --- a/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java +++ b/src/main/java/io/ebeaninternal/server/query/DQueryPlanOutput.java @@ -30,7 +30,7 @@ class DQueryPlanOutput implements MetaQueryPlan { } @Override - public String getQueryPlanHash() { + public String getSqlHash() { return sqlHash; } @@ -50,6 +50,11 @@ class DQueryPlanOutput implements MetaQueryPlan { return label; } + @Override + public ProfileLocation getProfileLocation() { + return profileLocation; + } + /** * Return the sql of query. */ @@ -84,8 +89,7 @@ class DQueryPlanOutput implements MetaQueryPlan { } /** - * Return the total count of times bind capture has occurred. We don't want this to be - * massive as that implies a high overhead. + * Return the total count of times bind capture has occurred. */ @Override public long getCaptureCount() {