You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2022/12/22 08:58:00 UTC

[jira] [Resolved] (CALCITE-2322) Add fetch size support to connection url and JDBC statement

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

Stamatis Zampetakis resolved CALCITE-2322.
------------------------------------------
    Resolution: Fixed

Fixed in https://github.com/apache/calcite-avatica/commit/5047b566d139fb9c4c691ccda3e5c18e15fc621f. Thanks to the many reviewers and [~kminder] and [~zacMode] for the PRs.

I was a bit reluctant to merge the PR cause this is a new feature and there were no tests added.

Moreover, it seems that there is a small bug with respect to the JDK API: https://docs.oracle.com/en/java/javase/18/docs/api/java.sql/java/sql/Statement.html#setFetchSize(int)
If someone sets the fetch size to zero I get the impression that with the PR in place we will not fetch anything from the server while we should just ignore the hint if my understanding is correct.

I decided to push it nevertheless since it has been approved by various people already so I didn't want to stall things for much longer.

I will log follow-up tickets for the remaining work and hopefully we can resolve them for the next release. 


> Add fetch size support to connection url and JDBC statement
> -----------------------------------------------------------
>
>                 Key: CALCITE-2322
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2322
>             Project: Calcite
>          Issue Type: Improvement
>          Components: avatica, core
>    Affects Versions: 1.11.0
>            Reporter: Kevin Minder
>            Priority: Major
>             Fix For: avatica-1.23.0
>
>          Time Spent: 4h
>  Remaining Estimate: 0h
>
> Currently the remote driver defaults to hard coded fetch size of 100 rows.  When a connection is operating in HTTP mode having such a small fetch size can add enormous overhead.  This is especially true if TLS connections are used and made worse if each connection flows throw multiple proxies.  Consider that 100K rows returned 100 rows at a time will make 1K HTTP POST requests.  One might say that nobody should ever do that but some tools like Spotfire may end up doing this.



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