[
https://issues.apache.org/jira/browse/CALCITE-6126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul Jackson updated CALCITE-6126:
----------------------------------
Description:
The following {{RelMetadataTest}} test fails:
{{@Test void testOverNoPartitioning() {}}
{{ sql("select max(empno) over (rows between 2 preceding and 0 following) from
emp")}}
{{ .assertThatAreColumnsUnique(bitSetOf(0), is(false))}}
{{ .assertThatUniqueKeysAre();}}
{{}}}
With this error:
{{java.lang.AssertionError: Conversion to relational algebra failed to preserve
datatypes:}}
{{validated type:}}
{{RecordType(INTEGER EXPR$0) NOT NULL}}
{{converted type:}}
{{RecordType(INTEGER NOT NULL EXPR$0) NOT NULL}}
{{rel:}}
{{LogicalProject(EXPR$0=[MAX($0) OVER ()])}}
{{ LogicalTableScan(table=[[CATALOG, SALES, EMP]])}}
{{ at
org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:507)}}
{{ at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:622)}}
{{ at
org.apache.calcite.sql.test.AbstractSqlTester.convertSqlToRel2(AbstractSqlTester.java:541)}}
{{ at
org.apache.calcite.sql.test.SqlTester.convertSqlToRel(SqlTester.java:291)}}
{{ at
org.apache.calcite.test.RelMetadataFixture.sqlToRel(RelMetadataFixture.java:189)}}
{{ at
org.apache.calcite.test.RelSupplier$SqlRelSupplier.apply2(RelSupplier.java:104)}}
{{ at
org.apache.calcite.test.RelMetadataFixture.toRel(RelMetadataFixture.java:195)}}
{{ at
org.apache.calcite.test.RelMetadataFixture.assertThatAreColumnsUnique(RelMetadataFixture.java:508)}}
The query parses without error if the expression is aliased:
{{@Test void testOverNoPartitioning() {}}
{{sql("select max(empno) over (rows between 2 preceding and 0 following) maxEmp
from emp")}}
{{.assertThatAreColumnsUnique(bitSetOf(0), is(false))}}
{{.assertThatUniqueKeysAre();}}
{{}}}
was:
The following {{RelMetadataTest}} test fails:
{{@Test void testOverNoPartitioning() {}}
{{ sql("select max(empno) over (rows between 2 preceding and 0 following) from
emp")}}
{{ .assertThatAreColumnsUnique(bitSetOf(0), is(false))}}
{{ .assertThatUniqueKeysAre();}}
{{}}}
With this error:
{{java.lang.AssertionError: Conversion to relational algebra failed to preserve
datatypes:}}
{{validated type:}}
{{RecordType(INTEGER EXPR$0) NOT NULL}}
{{converted type:}}
{{RecordType(INTEGER NOT NULL EXPR$0) NOT NULL}}
{{rel:}}
{{LogicalProject(EXPR$0=[MAX($0) OVER ()])}}
{{ LogicalTableScan(table=[[CATALOG, SALES, EMP]])}}
{{ at
org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:507)}}
{{ at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:622)}}
{{ at
org.apache.calcite.sql.test.AbstractSqlTester.convertSqlToRel2(AbstractSqlTester.java:541)}}
{{ at
org.apache.calcite.sql.test.SqlTester.convertSqlToRel(SqlTester.java:291)}}
{{ at
org.apache.calcite.test.RelMetadataFixture.sqlToRel(RelMetadataFixture.java:189)}}
{{ at
org.apache.calcite.test.RelSupplier$SqlRelSupplier.apply2(RelSupplier.java:104)}}
{{ at
org.apache.calcite.test.RelMetadataFixture.toRel(RelMetadataFixture.java:195)}}
{{ at
org.apache.calcite.test.RelMetadataFixture.assertThatAreColumnsUnique(RelMetadataFixture.java:508)}}
The query parses without error if the expression is aliased:
{{@Test void testOverNoPartitioning() {}}
{{sql("select max(empno) over (rows between 2 preceding and 0 following) maxEmp
from emp")}}
{{.assertThatAreColumnsUnique(bitSetOf(0), is(false))}}
{{.assertThatUniqueKeysAre();}}
{{{}}{}}}{{{}{}}}
> Return type check fails with OVER without AS
> --------------------------------------------
>
> Key: CALCITE-6126
> URL: https://issues.apache.org/jira/browse/CALCITE-6126
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Paul Jackson
> Priority: Major
>
> The following {{RelMetadataTest}} test fails:
> {{@Test void testOverNoPartitioning() {}}
> {{ sql("select max(empno) over (rows between 2 preceding and 0 following)
> from emp")}}
> {{ .assertThatAreColumnsUnique(bitSetOf(0), is(false))}}
> {{ .assertThatUniqueKeysAre();}}
> {{}}}
> With this error:
> {{java.lang.AssertionError: Conversion to relational algebra failed to
> preserve datatypes:}}
> {{validated type:}}
> {{RecordType(INTEGER EXPR$0) NOT NULL}}
> {{converted type:}}
> {{RecordType(INTEGER NOT NULL EXPR$0) NOT NULL}}
> {{rel:}}
> {{LogicalProject(EXPR$0=[MAX($0) OVER ()])}}
> {{ LogicalTableScan(table=[[CATALOG, SALES, EMP]])}}
> {{ at
> org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:507)}}
> {{ at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:622)}}
> {{ at
> org.apache.calcite.sql.test.AbstractSqlTester.convertSqlToRel2(AbstractSqlTester.java:541)}}
> {{ at
> org.apache.calcite.sql.test.SqlTester.convertSqlToRel(SqlTester.java:291)}}
> {{ at
> org.apache.calcite.test.RelMetadataFixture.sqlToRel(RelMetadataFixture.java:189)}}
> {{ at
> org.apache.calcite.test.RelSupplier$SqlRelSupplier.apply2(RelSupplier.java:104)}}
> {{ at
> org.apache.calcite.test.RelMetadataFixture.toRel(RelMetadataFixture.java:195)}}
> {{ at
> org.apache.calcite.test.RelMetadataFixture.assertThatAreColumnsUnique(RelMetadataFixture.java:508)}}
>
> The query parses without error if the expression is aliased:
> {{@Test void testOverNoPartitioning() {}}
> {{sql("select max(empno) over (rows between 2 preceding and 0 following)
> maxEmp from emp")}}
> {{.assertThatAreColumnsUnique(bitSetOf(0), is(false))}}
> {{.assertThatUniqueKeysAre();}}
> {{}}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)