|
37 | 37 | import org.opensearch.sql.ast.expression.Function;
|
38 | 38 | import org.opensearch.sql.ast.expression.In;
|
39 | 39 | import org.opensearch.sql.ast.expression.Interval;
|
40 |
| -import org.opensearch.sql.ast.expression.IntervalUnit; |
41 | 40 | import org.opensearch.sql.ast.expression.Let;
|
42 | 41 | import org.opensearch.sql.ast.expression.Literal;
|
43 | 42 | import org.opensearch.sql.ast.expression.Not;
|
|
57 | 56 | import org.opensearch.sql.calcite.udf.datetimeUDF.PostprocessDateToStringFunction;
|
58 | 57 | import org.opensearch.sql.calcite.utils.BuiltinFunctionUtils;
|
59 | 58 | import org.opensearch.sql.calcite.utils.OpenSearchTypeFactory;
|
| 59 | +import org.opensearch.sql.calcite.utils.PlanUtils; |
60 | 60 | import org.opensearch.sql.common.utils.StringUtils;
|
61 | 61 | import org.opensearch.sql.data.type.ExprType;
|
62 | 62 | import org.opensearch.sql.exception.CalciteUnsupportedException;
|
@@ -121,27 +121,11 @@ public RexNode visitLiteral(Literal node, CalcitePlanContext context) {
|
121 | 121 | }
|
122 | 122 | }
|
123 | 123 |
|
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 |
| - |
140 | 124 | @Override
|
141 | 125 | public RexNode visitInterval(Interval node, CalcitePlanContext context) {
|
142 | 126 | RexNode value = analyze(node.getValue(), context);
|
143 | 127 | SqlIntervalQualifier intervalQualifier =
|
144 |
| - context.rexBuilder.createIntervalUntil(intervalUnitToSpanUnit(node.getUnit())); |
| 128 | + context.rexBuilder.createIntervalUntil(PlanUtils.intervalUnitToSpanUnit(node.getUnit())); |
145 | 129 | return context.rexBuilder.makeIntervalLiteral(
|
146 | 130 | new BigDecimal(value.toString()), intervalQualifier);
|
147 | 131 | }
|
|
0 commit comments