[
https://issues.apache.org/jira/browse/CALCITE-5183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17550600#comment-17550600
]
Julian Hyde commented on CALCITE-5183:
--------------------------------------
I'm not sure how intervals are represented in {{RelNode}} land, or how they are
supposed to be created. First step would be to add some code to
{{RelBuilderTest}} that creates an interval the same way that
{{SqlToRelConverter}} does it, which is not necessarily to use
{{RelBuilder.call}} or to create a {{RexCall}}. Second step is to improve that
code.
{{RelBuilderTest.testMatchRecognize()}} creates 'interval' literals but they
are just strings.
I think of intervals as mostly literals. BigQuery allows you to write 'interval
foo(x, y) second' but that is syntactic sugar around a cast or multiplying a
literal by an integer or something.
> Impossible condition in return type inference for SqlIntervalOperator?
> ----------------------------------------------------------------------
>
> Key: CALCITE-5183
> URL: https://issues.apache.org/jira/browse/CALCITE-5183
> Project: Calcite
> Issue Type: Bug
> Reporter: Steven Talbot
> Priority: Major
>
> I could be wrong here, but I don't see how to make this work, and I don't see
> any tests for it being used on the relBuilder side of the fence (where the
> "impossible" type inference is invoked for me).
>
> [https://github.com/apache/calcite/commit/03c76a7d2b896042ab417ddc36f1849f874ad3dd#diff-f6836cabfabc14be277e9f7406ab38996aaa45bac86969cecd64189c2fd7c745R57]
> requires the second argument to the Interval call to be literal wrapper
> around a SqlIntervalQualifier. In the context of RexCallBinding, I don't
> believe this is possible, since the argument has to be a RexLiteral, and
> RexLiteral exposes no way to directly wrap a value as a SqlIntervalQualifier
> like this. Again, this is where my reading of the code gets uncertain, but
> neither signature of RexBuilder.makeIntervalLiteral will give you what you
> want, and I don't see any way this could be possible.
>
> This issue means that there seems to be no way to use
> `SqlStdOperatorTable.INTERVAL` with RelBuilder.call.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)