Skip to content

Commit 9d8e849

Browse files
authored
Merge pull request #24 from yuancu/fix-datetime
Reuse PlanUtils.intervalUnitToSpanUnit
2 parents c686197 + d510c84 commit 9d8e849

File tree

1 file changed

+2
-18
lines changed

1 file changed

+2
-18
lines changed

core/src/main/java/org/opensearch/sql/calcite/CalciteRexNodeVisitor.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import org.opensearch.sql.ast.expression.Function;
3838
import org.opensearch.sql.ast.expression.In;
3939
import org.opensearch.sql.ast.expression.Interval;
40-
import org.opensearch.sql.ast.expression.IntervalUnit;
4140
import org.opensearch.sql.ast.expression.Let;
4241
import org.opensearch.sql.ast.expression.Literal;
4342
import org.opensearch.sql.ast.expression.Not;
@@ -57,6 +56,7 @@
5756
import org.opensearch.sql.calcite.udf.datetimeUDF.PostprocessDateToStringFunction;
5857
import org.opensearch.sql.calcite.utils.BuiltinFunctionUtils;
5958
import org.opensearch.sql.calcite.utils.OpenSearchTypeFactory;
59+
import org.opensearch.sql.calcite.utils.PlanUtils;
6060
import org.opensearch.sql.common.utils.StringUtils;
6161
import org.opensearch.sql.data.type.ExprType;
6262
import org.opensearch.sql.exception.CalciteUnsupportedException;
@@ -121,27 +121,11 @@ public RexNode visitLiteral(Literal node, CalcitePlanContext context) {
121121
}
122122
}
123123

124-
private SpanUnit intervalUnitToSpanUnit(IntervalUnit unit) {
125-
return switch (unit) {
126-
case MICROSECOND -> SpanUnit.MILLISECOND;
127-
case SECOND -> SpanUnit.SECOND;
128-
case MINUTE -> SpanUnit.MINUTE;
129-
case HOUR -> SpanUnit.HOUR;
130-
case DAY -> SpanUnit.DAY;
131-
case WEEK -> SpanUnit.WEEK;
132-
case MONTH -> SpanUnit.MONTH;
133-
case QUARTER -> SpanUnit.QUARTER;
134-
case YEAR -> SpanUnit.YEAR;
135-
case UNKNOWN -> SpanUnit.UNKNOWN;
136-
default -> throw new UnsupportedOperationException("Unsupported interval unit: " + unit);
137-
};
138-
}
139-
140124
@Override
141125
public RexNode visitInterval(Interval node, CalcitePlanContext context) {
142126
RexNode value = analyze(node.getValue(), context);
143127
SqlIntervalQualifier intervalQualifier =
144-
context.rexBuilder.createIntervalUntil(intervalUnitToSpanUnit(node.getUnit()));
128+
context.rexBuilder.createIntervalUntil(PlanUtils.intervalUnitToSpanUnit(node.getUnit()));
145129
return context.rexBuilder.makeIntervalLiteral(
146130
new BigDecimal(value.toString()), intervalQualifier);
147131
}

0 commit comments

Comments
 (0)