[ https://issues.apache.org/jira/browse/CALCITE-5183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steven Talbot updated CALCITE-5183: ----------------------------------- Description: 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. was: 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 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. > 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)