Subject: MS-ACCESS 2010, ODBC 12.01, Out of Memory

From: "Stefan Wolf" <[email-masked]>
Date: Mon, 2 Mar 2020 15:41:05 +0100

Win10-Client:  MS-ACCESS 2010 (32-Bit),  ODBC-Driver:  12.01

Linux-Server (1):  PostgreSQL 12.2

Linux-Server (2):  PostgreSQL  9.6

We are currently migrating from PG 9.6. to 12.x.

We've created System-DSNs (PostgreSQL Unicode) with [Defaults] for both
Server.

In MS-ACCESS our biggest Server-Tables (>14.000.000 Rows) can be opened (on
both Servers).

But it takes a lot of time and uses a lot of memory - more than 450MB on the
client and some GB on the server.

The indexes are recognized an filtering is fast.

Trying to open more than one "big table" will result in MS-ACCESS "Out of
memory".

Best regards

-Stefan Wolf-

---

From: "Pavlo Golub" <[email-masked]>
Date: Mon, 02 Mar 2020 14:43:32 +0000

------ Original Message ------
From: "Stefan Wolf" <[email-masked]>
To: [email-masked]
Sent: 2020-03-02 15:41:05
Subject: MS-ACCESS 2010, ODBC 12.01, Out of Memory

>We’ve created System-DSNs (PostgreSQL Unicode) with [Defaults] for both 
>Server.
>
>
>
>In MS-ACCESS our biggest Server-Tables (>14.000.000 Rows) can be opened 
>(on both Servers).
>
>But it takes a lot of time and uses a lot of memory - more than 450MBon 
>the client and some GB on the server.
>
>
>
This is for sure MsAcess problem, and not a bug of PostgreSQL.

>Trying to open more than one “big table” will result in MS-ACCESS “Out 
>of memory”.
>

Sounds like msAccess fetches all rows and put them into memory which is 
weird and unwise. Not a bug of PostgreSQL

---

From: "Jonah H. Harris" <[email-masked]>
Date: Mon, 2 Mar 2020 10:23:19 -0500

On Mon, Mar 2, 2020 at 9:43 AM Pavlo Golub <[email-masked]> wrote:

> But it takes a lot of time and uses a lot of memory - more than 450MB on

Is it?

> Trying to open more than one “big table” will result in MS-ACCESS “Out of
> memory”.
>
>

Sounds like the ODBC driver configuration isn't using UseDeclareFetch=1
and, as such, is defaulting to Postgres' crappy default
buffer-all-results-on-the-client-at-once protocol - a problem that would
exist in any client software not overriding that behavior.

-- 
Jonah H. Harris