[ 
https://issues.apache.org/jira/browse/CALCITE-712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14539300#comment-14539300
 ] 

Xavier FH Leong commented on CALCITE-712:
-----------------------------------------

Think of it, there's no mistake in JdbcMeta.prepareAndExecute

{code}
      if (maxRowCount > 0) {
        statement.setMaxRows(maxRowCount);
      }
{code}

As meta.prepareAndExecute expect maxRowCount==0 to return 0 row ResultSet, but 
for the scope in JdbcMeta (which is a façade for underlying JDBC driver) cannot 
fulfill that expectation, as setting the statement.setMaxRows(0) is giving 
unlimited rows instead. There will be no underlying JDBC driver that can 
fulfill 0 rows ResultSet, and would require additional handling to fulfill that 
expectation.

Sorry for being pain in the ass, but I hope you can see that the miss-alignment 
can be implementation trap.

> Avatica statement execute return all resultset instead of MaxRows from 
> setMaxRows
> ---------------------------------------------------------------------------------
>
>                 Key: CALCITE-712
>                 URL: https://issues.apache.org/jira/browse/CALCITE-712
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.3.0-incubating
>            Reporter: Xavier FH Leong
>            Assignee: Julian Hyde
>              Labels: avatica
>             Fix For: next
>
>
> setMaxRows is supported, but after moving to JdbcMeta, max row was ignore and 
> full result set is return instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to