Ulrich Kramer created CALCITE-5284:
--------------------------------------

             Summary: JDBC rules create incorrect plan
                 Key: CALCITE-5284
                 URL: https://issues.apache.org/jira/browse/CALCITE-5284
             Project: Calcite
          Issue Type: Bug
         Environment: Calcite 1.31.1. on Mac
            Reporter: Ulrich Kramer


The following unit test for {{JdbcAdapterTest}} fails:

{code:java}
  @Test void testOffset() {
    CalciteAssert.model(FoodmartSchema.FOODMART_MODEL)
        .query("select * from \"sales_fact_1997\" limit 10 offset 20")
        .explainContains("PLAN=JdbcToEnumerableConverter\n" +
            "  JdbcSort(offset=[20], fetch=[10])\n" +
            "    JdbcTableScan(table=[[foodmart, sales_fact_1997]])")
        .runs();
  }
{code}

For an offset less than 13, the correct plan is created. With an offset above 
13, the plan looks like this:

{code}
EnumerableLimit(offset=[20], fetch=[10])
  JdbcToEnumerableConverter
    JdbcTableScan(table=[[foodmart, sales_fact_1997]])
{code}

which can lead to enormous latency times, since the entire table is loaded via 
JDBC.



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

Reply via email to