From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Cristiano Ansaloni
Sent: 08 November 2005 15:35
To: pgsql-bugs@postgresql.org
Subject: [BUGS] Psql odbc driver version 8.01.01.00 doesn't remember "Cache size" option if it is set to 0 (to set "unlimited").Psql odbc driver version 8.01.01.00 doesn't remember "Cache size" option if it is set to 0 (to set "unlimited").
Cache size of 0/unlimited makes no sense. The cache is only used in declare/fetch mode, so if you want to fetch all rows at once, just turn off use declare/fetch.
Instead, the "Maximum rows to retrieve" option in the Tab 3 of pgAdmin options works good.
pgAdmin III doesn't use ODBC, and besides, that option is not analagous to psqlODBC's cache size setting in the slightest. I would suggest reading the appropriate doc pages for each product.
I have read the documentation:
Use Declare/Fetch: If true, the driver
automatically uses declare cursor/fetch to handle SELECT statements and keeps
100 rows in a cache. This is mostly a great advantage, especially if you are
only interested in reading and not updating. It results in the driver not
sucking down lots of memory to buffer the entire result set. If set to false,
cursors will not be used and the driver will retrieve the entire result set. For
very large tables, this is very inefficient and may use up all the Windows
memory/resources. However, it may handle updates better since the tables are not
kept open, as they are when using cursors. This was the style of the old podbc32
driver. However, the behavior of the memory allocation is much improved so even
when not using cursors, performance should at least be better than the old
podbc32.
The problem is that this documentation says the opposite of true: with this option false (the default) there is the 100 rows limit, with this option true the cursor is "free". I have tested it.
Moreover, this "new" default change the "old" default and so all "old configurations" odbc are wrong.
Sorry for my english.
Regards,
Ans.