You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2018/01/22 23:25:53 UTC
calcite git commit: Following [CALCITE-2107],
fix failing tests in DruidAdapterIT (Nishant Bangarwa)
Repository: calcite
Updated Branches:
refs/heads/master be2fe5f95 -> e3a3f7b79
Following [CALCITE-2107], fix failing tests in DruidAdapterIT (Nishant Bangarwa)
Close apache/calcite#612
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/e3a3f7b7
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/e3a3f7b7
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/e3a3f7b7
Branch: refs/heads/master
Commit: e3a3f7b7915923323e698d0585a2b70fadb35ce6
Parents: be2fe5f
Author: Nishant <ni...@gmail.com>
Authored: Mon Jan 22 02:36:03 2018 +0530
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon Jan 22 13:51:54 2018 -0800
----------------------------------------------------------------------
.../adapter/druid/DruidDateTimeUtils.java | 14 ++--
.../adapter/druid/TimeExtractionFunction.java | 22 +++--
.../org/apache/calcite/test/DruidAdapterIT.java | 84 ++++++++++----------
3 files changed, 61 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/e3a3f7b7/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java
----------------------------------------------------------------------
diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java
index d3588f9..2a9851a 100644
--- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java
+++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidDateTimeUtils.java
@@ -303,20 +303,16 @@ public class DruidDateTimeUtils {
*/
public static Granularity extractGranularity(RexNode node, String timeZone) {
final int flagIndex;
- switch (node.getKind()) {
- case EXTRACT:
+
+ if (TimeExtractionFunction.isValidTimeExtract(node)) {
flagIndex = 0;
- break;
- case FLOOR:
+ } else if (TimeExtractionFunction.isValidTimeFloor(node)) {
flagIndex = 1;
- break;
- default:
+ } else {
+ // We can only infer granularity from floor and extract.
return null;
}
final RexCall call = (RexCall) node;
- if (call.operands.size() != 2) {
- return null;
- }
final RexLiteral flag = (RexLiteral) call.operands.get(flagIndex);
final TimeUnitRange timeUnit = (TimeUnitRange) flag.getValue();
return Granularities.createGranularity(timeUnit, timeZone);
http://git-wip-us.apache.org/repos/asf/calcite/blob/e3a3f7b7/druid/src/main/java/org/apache/calcite/adapter/druid/TimeExtractionFunction.java
----------------------------------------------------------------------
diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/TimeExtractionFunction.java b/druid/src/main/java/org/apache/calcite/adapter/druid/TimeExtractionFunction.java
index d05949b..61e72e0 100644
--- a/druid/src/main/java/org/apache/calcite/adapter/druid/TimeExtractionFunction.java
+++ b/druid/src/main/java/org/apache/calcite/adapter/druid/TimeExtractionFunction.java
@@ -19,6 +19,7 @@ package org.apache.calcite.adapter.druid;
import org.apache.calcite.avatica.util.TimeUnitRange;
import org.apache.calcite.rex.RexCall;
import org.apache.calcite.rex.RexLiteral;
+import org.apache.calcite.rex.RexNode;
import org.apache.calcite.sql.SqlKind;
import com.fasterxml.jackson.core.JsonGenerator;
@@ -122,22 +123,23 @@ public class TimeExtractionFunction implements ExtractionFunction {
*/
public static TimeExtractionFunction createFloorFromGranularity(
Granularity granularity, String timeZone) {
- return new TimeExtractionFunction(ISO_TIME_FORMAT, granularity, timeZone, Locale
- .getDefault().toLanguageTag());
+ return new TimeExtractionFunction(ISO_TIME_FORMAT, granularity, timeZone,
+ Locale.ROOT.toLanguageTag());
}
/**
* Returns whether the RexCall contains a valid extract unit that we can
* serialize to Druid.
*
- * @param call Extract expression
+ * @param rexNode Extract expression
*
* @return true if the extract unit is valid
*/
- public static boolean isValidTimeExtract(RexCall call) {
- if (call.getKind() != SqlKind.EXTRACT) {
+ public static boolean isValidTimeExtract(RexNode rexNode) {
+ if (rexNode.getKind() != SqlKind.EXTRACT) {
return false;
}
+ final RexCall call = (RexCall) rexNode;
final RexLiteral flag = (RexLiteral) call.operands.get(0);
final TimeUnitRange timeUnit = (TimeUnitRange) flag.getValue();
return timeUnit != null && VALID_TIME_EXTRACT.contains(timeUnit);
@@ -147,12 +149,16 @@ public class TimeExtractionFunction implements ExtractionFunction {
* Returns whether the RexCall contains a valid FLOOR unit that we can
* serialize to Druid.
*
- * @param call Extract expression
+ * @param rexNode Extract expression
*
* @return true if the extract unit is valid
*/
- public static boolean isValidTimeFloor(RexCall call) {
- if (call.getKind() != SqlKind.FLOOR) {
+ public static boolean isValidTimeFloor(RexNode rexNode) {
+ if (rexNode.getKind() != SqlKind.FLOOR) {
+ return false;
+ }
+ final RexCall call = (RexCall) rexNode;
+ if (call.operands.size() != 2) {
return false;
}
final RexLiteral flag = (RexLiteral) call.operands.get(1);
http://git-wip-us.apache.org/repos/asf/calcite/blob/e3a3f7b7/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
----------------------------------------------------------------------
diff --git a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
index e4b535e..834bf6c 100644
--- a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
+++ b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
@@ -1505,7 +1505,7 @@ public class DruidAdapterIT {
"{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_year',"
+ "'extractionFn':{'type':'timeFormat','format':'yyyy',"
- + "'timeZone':'UTC','locale':'en-US'}}"))
+ + "'timeZone':'UTC','locale':'und'}}"))
.returnsUnordered("year=1997; product_id=1016");
}
@@ -1522,7 +1522,7 @@ public class DruidAdapterIT {
"{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_month',"
+ "'extractionFn':{'type':'timeFormat','format':'M',"
- + "'timeZone':'UTC','locale':'en-US'}}"))
+ + "'timeZone':'UTC','locale':'und'}}"))
.returnsUnordered("month=1; product_id=1016", "month=2; product_id=1016",
"month=3; product_id=1016", "month=4; product_id=1016", "month=5; product_id=1016");
}
@@ -1541,7 +1541,7 @@ public class DruidAdapterIT {
"{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_day',"
+ "'extractionFn':{'type':'timeFormat','format':'d',"
- + "'timeZone':'UTC','locale':'en-US'}}"))
+ + "'timeZone':'UTC','locale':'und'}}"))
.returnsUnordered("day=2; product_id=1016", "day=10; product_id=1016",
"day=13; product_id=1016", "day=16; product_id=1016");
}
@@ -1585,13 +1585,13 @@ public class DruidAdapterIT {
"{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_day',"
+ "'extractionFn':{'type':'timeFormat','format':'d',"
- + "'timeZone':'UTC','locale':'en-US'}}", "{'type':'extraction',"
+ + "'timeZone':'UTC','locale':'und'}}", "{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_month',"
+ "'extractionFn':{'type':'timeFormat','format':'M',"
- + "'timeZone':'UTC','locale':'en-US'}}", "{'type':'extraction',"
+ + "'timeZone':'UTC','locale':'und'}}", "{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_year',"
+ "'extractionFn':{'type':'timeFormat','format':'yyyy',"
- + "'timeZone':'UTC','locale':'en-US'}}"))
+ + "'timeZone':'UTC','locale':'und'}}"))
.explainContains("PLAN=EnumerableInterpreter\n"
+ " DruidQuery(table=[[foodmart, foodmart]], "
+ "intervals=[[1997-01-01T00:00:00.001Z/1997-01-20T00:00:00.000Z]], "
@@ -1618,13 +1618,13 @@ public class DruidAdapterIT {
",'granularity':{'type':'all'}", "{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_day',"
+ "'extractionFn':{'type':'timeFormat','format':'d',"
- + "'timeZone':'UTC','locale':'en-US'}}", "{'type':'extraction',"
+ + "'timeZone':'UTC','locale':'und'}}", "{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_month',"
+ "'extractionFn':{'type':'timeFormat','format':'M',"
- + "'timeZone':'UTC','locale':'en-US'}}", "{'type':'extraction',"
+ + "'timeZone':'UTC','locale':'und'}}", "{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_year',"
+ "'extractionFn':{'type':'timeFormat','format':'yyyy',"
- + "'timeZone':'UTC','locale':'en-US'}}"))
+ + "'timeZone':'UTC','locale':'und'}}"))
.explainContains("PLAN=EnumerableInterpreter\n"
+ " DruidQuery(table=[[foodmart, foodmart]], "
+ "intervals=[[1997-01-01T00:00:00.001Z/1997-01-20T00:00:00.000Z]], "
@@ -1650,7 +1650,7 @@ public class DruidAdapterIT {
",'granularity':{'type':'all'}", "{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_day',"
+ "'extractionFn':{'type':'timeFormat','format':'d',"
- + "'timeZone':'UTC','locale':'en-US'}}"))
+ + "'timeZone':'UTC','locale':'und'}}"))
.explainContains("PLAN=EnumerableInterpreter\n"
+ " DruidQuery(table=[[foodmart, foodmart]], "
+ "intervals=[[1997-01-01T00:00:00.001Z/1997-01-20T00:00:00.000Z]], "
@@ -1674,7 +1674,7 @@ public class DruidAdapterIT {
+ "'upper':'15','upperStrict':true,'ordering':'numeric'},"
+ "{'type':'selector','dimension':'__time','value':'1997',"
+ "'extractionFn':{'type':'timeFormat','format':'yyyy','timeZone':'UTC',"
- + "'locale':'en-US'}}]},'aggregations':[{'type':'doubleSum',"
+ + "'locale':'und'}}]},'aggregations':[{'type':'doubleSum',"
+ "'name':'EXPR$0','fieldName':'store_sales'}],"
+ "'intervals':['1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z'],"
+ "'context':{'skipEmptyBuckets':true}}";
@@ -1701,18 +1701,18 @@ public class DruidAdapterIT {
+ "'granularity':{'type':'all'},'dimensions':[{'type':'default',"
+ "'dimension':'product_id'},{'type':'extraction','dimension':'__time',"
+ "'outputName':'extract_day','extractionFn':{'type':'timeFormat',"
- + "'format':'d','timeZone':'UTC','locale':'en-US'}},{'type':'extraction',"
+ + "'format':'d','timeZone':'UTC','locale':'und'}},{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_month',"
+ "'extractionFn':{'type':'timeFormat','format':'M','timeZone':'UTC',"
- + "'locale':'en-US'}}],'limitSpec':{'type':'default'},"
+ + "'locale':'und'}}],'limitSpec':{'type':'default'},"
+ "'filter':{'type':'and','fields':[{'type':'bound',"
+ "'dimension':'product_id','lower':'1549','lowerStrict':false,"
+ "'ordering':'numeric'},{'type':'bound','dimension':'__time',"
+ "'lower':'30','lowerStrict':false,'ordering':'numeric',"
+ "'extractionFn':{'type':'timeFormat','format':'d','timeZone':'UTC',"
- + "'locale':'en-US'}},{'type':'selector','dimension':'__time',"
+ + "'locale':'und'}},{'type':'selector','dimension':'__time',"
+ "'value':'11','extractionFn':{'type':'timeFormat','format':'M',"
- + "'timeZone':'UTC','locale':'en-US'}}]},'aggregations':[],"
+ + "'timeZone':'UTC','locale':'und'}}]},'aggregations':[],"
+ "'intervals':['1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z']}"))
.returnsUnordered("product_id=1549; EXPR$1=30; EXPR$2=11",
"product_id=1553; EXPR$1=30; EXPR$2=11");
@@ -1731,22 +1731,22 @@ public class DruidAdapterIT {
+ "'granularity':{'type':'all'},'dimensions':[{'type':'default',"
+ "'dimension':'product_id'},{'type':'extraction','dimension':'__time',"
+ "'outputName':'extract_day','extractionFn':{'type':'timeFormat',"
- + "'format':'d','timeZone':'UTC','locale':'en-US'}},{'type':'extraction',"
+ + "'format':'d','timeZone':'UTC','locale':'und'}},{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_month',"
+ "'extractionFn':{'type':'timeFormat','format':'M','timeZone':'UTC',"
- + "'locale':'en-US'}},{'type':'extraction','dimension':'__time',"
+ + "'locale':'und'}},{'type':'extraction','dimension':'__time',"
+ "'outputName':'extract_year','extractionFn':{'type':'timeFormat',"
- + "'format':'yyyy','timeZone':'UTC','locale':'en-US'}}],"
+ + "'format':'yyyy','timeZone':'UTC','locale':'und'}}],"
+ "'limitSpec':{'type':'default'},'filter':{'type':'and',"
+ "'fields':[{'type':'bound','dimension':'product_id','lower':'1549',"
+ "'lowerStrict':false,'ordering':'numeric'},{'type':'bound',"
+ "'dimension':'__time','lower':'30','lowerStrict':false,"
+ "'ordering':'numeric','extractionFn':{'type':'timeFormat','format':'d',"
- + "'timeZone':'UTC','locale':'en-US'}},{'type':'selector',"
+ + "'timeZone':'UTC','locale':'und'}},{'type':'selector',"
+ "'dimension':'__time','value':'11','extractionFn':{'type':'timeFormat',"
- + "'format':'M','timeZone':'UTC','locale':'en-US'}},{'type':'selector',"
+ + "'format':'M','timeZone':'UTC','locale':'und'}},{'type':'selector',"
+ "'dimension':'__time','value':'1997','extractionFn':{'type':'timeFormat',"
- + "'format':'yyyy','timeZone':'UTC','locale':'en-US'}}]},"
+ + "'format':'yyyy','timeZone':'UTC','locale':'und'}}]},"
+ "'aggregations':[],"
+ "'intervals':['1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z']}"))
.returnsUnordered("product_id=1549; EXPR$1=30; EXPR$2=11; EXPR$3=1997",
@@ -1761,16 +1761,16 @@ public class DruidAdapterIT {
+ "'granularity':{'type':'all'},'dimensions':[{'type':'default',"
+ "'dimension':'product_id'},{'type':'extraction','dimension':'__time',"
+ "'outputName':'extract_month','extractionFn':{'type':'timeFormat',"
- + "'format':'M','timeZone':'UTC','locale':'en-US'}}],"
+ + "'format':'M','timeZone':'UTC','locale':'und'}}],"
+ "'limitSpec':{'type':'default'},'filter':{'type':'and',"
+ "'fields':[{'type':'bound','dimension':'product_id','lower':'1558',"
+ "'lowerStrict':false,'ordering':'numeric'},{'type':'bound',"
+ "'dimension':'__time','lower':'10','lowerStrict':false,"
+ "'ordering':'numeric','extractionFn':{'type':'timeFormat','format':'M',"
- + "'timeZone':'UTC','locale':'en-US'}},{'type':'bound',"
+ + "'timeZone':'UTC','locale':'und'}},{'type':'bound',"
+ "'dimension':'__time','upper':'11','upperStrict':false,"
+ "'ordering':'numeric','extractionFn':{'type':'timeFormat','format':'M',"
- + "'timeZone':'UTC','locale':'en-US'}}]},'aggregations':[],"
+ + "'timeZone':'UTC','locale':'und'}}]},'aggregations':[],"
+ "'intervals':['1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z']}";
sql(sqlQuery)
.returnsUnordered("product_id=1558; EXPR$1=10", "product_id=1558; EXPR$1=11",
@@ -1789,14 +1789,14 @@ public class DruidAdapterIT {
+ "'dimensions':[{'type':'default','dimension':'product_id'},"
+ "{'type':'extraction','dimension':'__time','outputName':'extract_month',"
+ "'extractionFn':{'type':'timeFormat','format':'M','timeZone':'UTC',"
- + "'locale':'en-US'}}],'limitSpec':{'type':'default'},"
+ + "'locale':'und'}}],'limitSpec':{'type':'default'},"
+ "'filter':{'type':'and','fields':[{'type':'bound',"
+ "'dimension':'product_id','lower':'1558','lowerStrict':false,"
+ "'ordering':'numeric'},{'type':'or','fields':[{'type':'selector',"
+ "'dimension':'__time','value':'10','extractionFn':{'type':'timeFormat',"
- + "'format':'M','timeZone':'UTC','locale':'en-US'}},{'type':'selector',"
+ + "'format':'M','timeZone':'UTC','locale':'und'}},{'type':'selector',"
+ "'dimension':'__time','value':'11','extractionFn':{'type':'timeFormat',"
- + "'format':'M','timeZone':'UTC','locale':'en-US'}}]}]},"
+ + "'format':'M','timeZone':'UTC','locale':'und'}}]}]},"
+ "'aggregations':[],"
+ "'intervals':['1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z']}"))
.returnsUnordered("product_id=1558; EXPR$1=10", "product_id=1558; EXPR$1=11",
@@ -1814,7 +1814,7 @@ public class DruidAdapterIT {
+ "'granularity':{'type':'all'},'dimensions':[{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_month',"
+ "'extractionFn':{'type':'timeFormat','format':'M','timeZone':'UTC',"
- + "'locale':'en-US'}},{'type':'default','dimension':'product_id'}],"
+ + "'locale':'und'}},{'type':'default','dimension':'product_id'}],"
+ "'limitSpec':{'type':'default','columns':[{'dimension':'extract_month',"
+ "'direction':'ascending','dimensionOrder':'numeric'},{'dimension':'S',"
+ "'direction':'ascending','dimensionOrder':'numeric'},"
@@ -1881,9 +1881,9 @@ public class DruidAdapterIT {
+ "'granularity':{'type':'all'},'dimensions':[{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_year',"
+ "'extractionFn':{'type':'timeFormat','format':'yyyy','timeZone':'UTC',"
- + "'locale':'en-US'}},{'type':'extraction','dimension':'__time',"
+ + "'locale':'und'}},{'type':'extraction','dimension':'__time',"
+ "'outputName':'extract_month','extractionFn':{'type':'timeFormat',"
- + "'format':'M','timeZone':'UTC','locale':'en-US'}},{'type':'default',"
+ + "'format':'M','timeZone':'UTC','locale':'und'}},{'type':'default',"
+ "'dimension':'product_id'}],'limitSpec':{'type':'default','limit':3,"
+ "'columns':[{'dimension':'extract_year','direction':'descending',"
+ "'dimensionOrder':'numeric'},{'dimension':'extract_month',"
@@ -1916,9 +1916,9 @@ public class DruidAdapterIT {
+ "'granularity':{'type':'all'},'dimensions':[{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_year',"
+ "'extractionFn':{'type':'timeFormat','format':'yyyy','timeZone':'UTC',"
- + "'locale':'en-US'}},{'type':'extraction','dimension':'__time',"
+ + "'locale':'und'}},{'type':'extraction','dimension':'__time',"
+ "'outputName':'extract_month','extractionFn':{'type':'timeFormat',"
- + "'format':'M','timeZone':'UTC','locale':'en-US'}},{'type':'default',"
+ + "'format':'M','timeZone':'UTC','locale':'und'}},{'type':'default',"
+ "'dimension':'product_id'}],'limitSpec':{'type':'default','limit':3,"
+ "'columns':[{'dimension':'S','direction':'descending',"
+ "'dimensionOrder':'numeric'},{'dimension':'extract_month',"
@@ -2018,14 +2018,14 @@ public class DruidAdapterIT {
+ "'granularity':{'type':'all'},'dimensions':[{'type':'extraction',"
+ "'dimension':'__time','outputName':'extract_week',"
+ "'extractionFn':{'type':'timeFormat','format':'w','timeZone':'UTC',"
- + "'locale':'en-US'}}],'limitSpec':{'type':'default'},"
+ + "'locale':'und'}}],'limitSpec':{'type':'default'},"
+ "'filter':{'type':'and','fields':[{'type':'selector',"
+ "'dimension':'product_id','value':'1558'},{'type':'or',"
+ "'fields':[{'type':'selector','dimension':'__time','value':'10',"
+ "'extractionFn':{'type':'timeFormat','format':'w','timeZone':'UTC',"
- + "'locale':'en-US'}},{'type':'selector','dimension':'__time',"
+ + "'locale':'und'}},{'type':'selector','dimension':'__time',"
+ "'value':'11','extractionFn':{'type':'timeFormat','format':'w',"
- + "'timeZone':'UTC','locale':'en-US'}}]}]},"
+ + "'timeZone':'UTC','locale':'und'}}]}]},"
+ "'aggregations':[],"
+ "'intervals':['1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z']}";
sql(sql).returnsOrdered("EXPR$0=10\nEXPR$0=11").queryContains(druidChecker(druidQuery));
@@ -2282,9 +2282,9 @@ public class DruidAdapterIT {
final String druidQuery = "'filter':{'type':'and','fields':[{'type':'selector','dimension'"
+ ":'brand_name','value':'Bird Call'},{'type':'or','fields':[{'type':'selector',"
+ "'dimension':'__time','value':'10','extractionFn':{'type':'timeFormat','format'"
- + ":'w','timeZone':'UTC','locale':'en-US'}},{'type':'selector','dimension':'__time'"
+ + ":'w','timeZone':'UTC','locale':'und'}},{'type':'selector','dimension':'__time'"
+ ",'value':'11','extractionFn':{'type':'timeFormat','format':'w','timeZone':'UTC'"
- + ",'locale':'en-US'}}]}]},'aggregations':[{'type':'doubleSum','name':'$f2',"
+ + ",'locale':'und'}}]}]},'aggregations':[{'type':'doubleSum','name':'$f2',"
+ "'fieldName':'store_sales'},{'type':'doubleSum','name':'$f3','fieldName':"
+ "'store_cost'}],'postAggregations':[{'type':'arithmetic','name':'postagg#0'"
+ ",'fn':'-','fields':[{'type':'fieldAccess','name':'','fieldName':'$f2'},"
@@ -3401,7 +3401,7 @@ public class DruidAdapterIT {
final String druidQueryPart2 = "HH:mm:ss.SSS";
final String druidQueryPart3 = ",\"granularity\":{\"type\":\"period\",\"period\":\"P1M\","
+ "\"timeZone\":\"UTC\"},\"timeZone\":\"UTC\","
- + "\"locale\":\"en-US\"}},{\"type\":\"bound\",\"dimension\":\"__time\""
+ + "\"locale\":\"und\"}},{\"type\":\"bound\",\"dimension\":\"__time\""
+ ",\"upper\":\"1997-03-01T00:00:00.000Z\",\"upperStrict\":false,"
+ "\"ordering\":\"lexicographic\",\"extractionFn\":{\"type\":\"timeFormat\"";
final String druidQueryPart4 = "\"columns\":[\"__time\"],\"granularity\":{\"type\":\"all\"}";
@@ -3422,7 +3422,7 @@ public class DruidAdapterIT {
+ "\"format\":\"yyyy-MM-dd";
final String druidQueryPart2 = "\"granularity\":{\"type\":\"period\",\"period\":\"P1M\","
+ "\"timeZone\":\"UTC\"},\"timeZone\":\"UTC\","
- + "\"locale\":\"en-US\"}},\"columns\":[\"__time\"],\"granularity\":{\"type\":\"all\"}";
+ + "\"locale\":\"und\"}},\"columns\":[\"__time\"],\"granularity\":{\"type\":\"all\"}";
sql(sql, FOODMART).queryContains(druidChecker(druidQueryPart1, druidQueryPart2))
.returnsOrdered("T=1997-05-01 00:00:00");
@@ -3438,7 +3438,7 @@ public class DruidAdapterIT {
+ "\"format\":\"yyyy-MM-dd";
final String druidQueryPart2 = "\"granularity\":{\"type\":\"period\",\"period\":\"P1M\","
+ "\"timeZone\":\"UTC\"},\"timeZone\":\"UTC\","
- + "\"locale\":\"en-US\"}},\"columns\":[\"__time\"],\"granularity\":{\"type\":\"all\"}";
+ + "\"locale\":\"und\"}},\"columns\":[\"__time\"],\"granularity\":{\"type\":\"all\"}";
sql(sql, FOODMART).queryContains(druidChecker(druidQueryPart1, druidQueryPart2))
.returnsOrdered("T=1997-05-01 00:00:00");
@@ -3454,7 +3454,7 @@ public class DruidAdapterIT {
+ "\"format\":\"yyyy-MM-dd";
final String druidQueryPart2 = "\"granularity\":{\"type\":\"period\",\"period\":\"PT1H\","
+ "\"timeZone\":\"IST\"},\"timeZone\":\"IST\","
- + "\"locale\":\"en-US\"}},\"columns\":[\"__time\"],\"granularity\":{\"type\":\"all\"}";
+ + "\"locale\":\"und\"}},\"columns\":[\"__time\"],\"granularity\":{\"type\":\"all\"}";
CalciteAssert.that()
.enable(enabled())
@@ -3477,7 +3477,7 @@ public class DruidAdapterIT {
+ "\"format\":\"yyyy-MM-dd";
final String druidQueryPart2 = "\"granularity\":{\"type\":\"period\",\"period\":\"PT1H\","
+ "\"timeZone\":\"IST\"},\"timeZone\":\"IST\","
- + "\"locale\":\"en-US\"}},\"columns\":[\"__time\",\"countryName\"],"
+ + "\"locale\":\"und\"}},\"columns\":[\"__time\",\"countryName\"],"
+ "\"granularity\":{\"type\":\"all\"}";
CalciteAssert.that()