Re: [RFC] How about changing the default value of defaultRowFetchSize? - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: [RFC] How about changing the default value of defaultRowFetchSize?
Date
Msg-id CADK3HH+o7Pd5E-F5ad4kBYkWf6SYm3sPC35v+TUu4eKHCcXrtw@mail.gmail.com
Whole thread Raw
In response to Re: [RFC] How about changing the default value of defaultRowFetchSize?  (Jorge Solórzano <jorsol@gmail.com>)
List pgsql-jdbc

On 20 October 2016 at 13:30, Jorge Solórzano <jorsol@gmail.com> wrote:
On Thu, Oct 20, 2016 at 10:33 AM, Vladimir Sitnikov <sitnikov.vladimir@gmail.com> wrote:
Jorge>The value of 0 should be used to fetch all rows, if we ​leave the default at 0 and handle internally that as 100 (and reporting it as 0) it is a wrong behavior.

Note that "unset" and "set to 0" might have different meanings for a good (or bad?) reason.



​Yes, but "by default"​ is set to 0, not "unset (null)":
  /**
   * Default parameter for {@link java.sql.Statement#getFetchSize()}. A value of {@code 0} means
   * that need fetch all rows at once
   */
  DEFAULT_ROW_FETCH_SIZE("defaultRowFetchSize", "0",
      "Positive number of rows that should be fetched from the database when more rows are needed for ResultSet by each fetch iteration"),

​So if the driver internally handle fetch size 0 == fetch size 100, that's what i call an hidden inconsistent behavior.

Don't get me wrong, it make sense to switch ​defaultRowFetchSize to "100", but a call to getFetchSize() should be == 100, not 0.

As I said 99% of the code out there will never use this as fetch size is totally useless in autocommit mode. Also an inconsistent behaviour. There a lots of them.. Setting it internally is fine IMO. I also think it should be reported as 0 unless the user explicitly sets it. What we do inside the driver is our business.




pgsql-jdbc by date:

Previous
From: Brad DeJong
Date:
Subject: Re: setCharacterStream(int, Reader)
Next
From: Mark Rotteveel
Date:
Subject: Re: [RFC] How about changing the default value ofdefaultRowFetchSize?