You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Ulrich Kramer (Jira)" <ji...@apache.org> on 2022/09/13 07:29:00 UTC
[jira] [Created] (CALCITE-5284) JDBC rules create incorrect plan
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)