[ 
https://issues.apache.org/jira/browse/BEAM-12759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anonymous updated BEAM-12759:
-----------------------------
    Status: Triage Needed  (was: Resolved)

> ORDER BY column not in SELECT crashes
> -------------------------------------
>
>                 Key: BEAM-12759
>                 URL: https://issues.apache.org/jira/browse/BEAM-12759
>             Project: Beam
>          Issue Type: Bug
>          Components: dsl-sql-zetasql
>            Reporter: Andrew Pilloud
>            Assignee: Andrew Pilloud
>            Priority: P2
>             Fix For: 2.33.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> `SELECT Value FROM KeyValue ORDER BY Key DESC LIMIT 2` doesn't work.
> This test should pass...
> {code}
> +  @Test
> +  public void testZetaSQLSelectFromTableOrderByNoSelectLimit() {
> +    String sql = "SELECT Value FROM KeyValue ORDER BY Key DESC LIMIT 2;";
> +    PCollection<Row> stream = execute(sql);
> +
> +    final Schema schema = Schema.builder().addStringField("field2").build();
> +    PAssert.that(stream)
> +        .containsInAnyOrder(
> +            Row.withSchema(schema).addValues("KeyValue234").build(),
> +            Row.withSchema(schema).addValues("KeyValue235").build());
> +
> +    
> pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES));
> +  }
> {code}
> It crashes instead:
> {code}
> java.lang.IndexOutOfBoundsException: index (-1) must not be negative          
>                                                              
>         at 
> org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:310)
>            
>         at 
> org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:293)
>            
>         at 
> org.apache.beam.vendor.calcite.v1_20_0.com.google.common.collect.SingletonImmutableList.get(SingletonImmutableList.java:41)
>      
>         at 
> org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rex.RexBuilder.makeInputRef(RexBuilder.java:855)
>                       
>         at 
> org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Sort.<init>(Sort.java:103)
>                                    
>         at 
> org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.logical.LogicalSort.<init>(LogicalSort.java:37)
>                    
>         at 
> org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.logical.LogicalSort.create(LogicalSort.java:63)
>                    
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.translation.LimitOffsetScanToOrderByLimitConverter.convert(LimitOffsetScanToOrderByLi
> mitConverter.java:86)                                                         
>                                                              
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.translation.LimitOffsetScanToOrderByLimitConverter.convert(LimitOffsetScanToOrderByLi
> mitConverter.java:42)                                                         
>                                                              
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertNode(QueryStatementConverter.java:102)
>     
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convert(QueryStatementConverter.java:89)
>          
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertRootQuery(QueryStatementConverter.java:55)
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLPlannerImpl.rel(ZetaSQLPlannerImpl.java:98)
>                                    
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRelInternal(ZetaSQLQueryPlanner.java:197)
>            
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRel(ZetaSQLQueryPlanner.java:185)
>                    
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.ZetaSqlDialectSpecTest.execute(ZetaSqlDialectSpecTest.java:74)
>                        
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.ZetaSqlDialectSpecTest.execute(ZetaSqlDialectSpecTest.java:79)
>                        
>         at 
> org.apache.beam.sdk.extensions.sql.zetasql.ZetaSqlDialectSpecTest.testZetaSQLSelectFromTableOrderByNoSelectLimit(ZetaSqlDialectS
> pecTest.java:1297)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to