Repository: calcite Updated Branches: refs/heads/master 94051eaed -> eb291b029
[CALCITE-1292] Druid metadata query is very slow (Michael Spector) Only ask for what's really needed in segmentMetadata query. Close apache/calcite#249 Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/eb291b02 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/eb291b02 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/eb291b02 Branch: refs/heads/master Commit: eb291b029eef17b36362fa042c21f54b57a278af Parents: 94051ea Author: Michael Spector <[email protected]> Authored: Wed Jun 15 09:18:02 2016 +0300 Committer: Julian Hyde <[email protected]> Committed: Wed Jun 15 09:50:11 2016 -0700 ---------------------------------------------------------------------- .../calcite/adapter/druid/DruidConnectionImpl.java | 11 ++++++++++- .../org/apache/calcite/adapter/druid/DruidQuery.java | 4 ++++ 2 files changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/eb291b02/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java ---------------------------------------------------------------------- diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java index 7520d70..02069df 100644 --- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java +++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java @@ -519,7 +519,16 @@ class DruidConnectionImpl implements DruidConnection { public String fieldName; SqlTypeName sqlType() { - return JsonColumn.sqlType(type); + if (type.startsWith("long")) { + return SqlTypeName.BIGINT; + } + if (type.startsWith("double")) { + return SqlTypeName.DOUBLE; + } + if (type.equals("hyperUnique")) { + return SqlTypeName.VARBINARY; + } + throw new AssertionError("unknown type " + type); } } } http://git-wip-us.apache.org/repos/asf/calcite/blob/eb291b02/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java ---------------------------------------------------------------------- diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java index a3fdf78..6960b39 100644 --- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java +++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java @@ -530,6 +530,10 @@ public class DruidQuery extends AbstractRelNode implements BindableRel { generator.writeStartObject(); generator.writeStringField("queryType", "segmentMetadata"); generator.writeStringField("dataSource", dataSourceName); + generator.writeBooleanField("merge", true); + generator.writeArrayFieldStart("analysisTypes"); + generator.writeString("aggregators"); + generator.writeEndArray(); writeFieldIf(generator, "intervals", intervals); generator.writeEndObject(); generator.close();
