Re: Doc limitation update proposal: include out-of-line OID usage per TOAST-ed columns
John Naylor <john.naylor@enterprisedb.com>
From: John Naylor <john.naylor@enterprisedb.com>
To: Jakub Wartak <jakub.wartak@enterprisedb.com>
Cc: Nikita Malakhov <hukutoc@gmail.com>, Gurjeet Singh <gurjeet@singh.im>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2023-08-08T07:31:42Z
Lists: pgsql-hackers
On Wed, Jul 5, 2023 at 9:45 PM Jakub Wartak <jakub.wartak@enterprisedb.com>
wrote:
> [v3]
--- a/doc/src/sgml/limits.sgml
+++ b/doc/src/sgml/limits.sgml
@@ -10,6 +10,7 @@
hard limits are reached.
</para>
+
<table id="limits-table">
@@ -92,11 +93,25 @@
<entry>can be increased by recompiling
<productname>PostgreSQL</productname></entry>
</row>
- <row>
- <entry>partition keys</entry>
- <entry>32</entry>
- <entry>can be increased by recompiling
<productname>PostgreSQL</productname></entry>
- </row>
+ <row>
+ <entry>partition keys</entry>
+ <entry>32</entry>
+ <entry>can be increased by recompiling
<productname>PostgreSQL</productname></entry>
+ </row>
Ahem.
> > Also, perhaps the LO entries should be split into a separate patch.
Since they are a special case and documented elsewhere, it's not clear
their limits fit well here. Maybe they could.
>
> Well, but those are *limits* of the engine and they seem to be pretty
widely chosen especially in migration scenarios (because they are the only
ones allowed to store over 1GB). I think we should warn the dangers of
using pg_largeobjects.
I see no argument here against splitting into a separate patch for later.
> > Also the shared counter is the cause of the slowdown, but not the
reason for the numeric limit.
>
> Isn't it both? typedef Oid is unsigned int = 2^32, and according to
GetNewOidWithIndex() logic if we exhaust the whole OID space it will hang
indefinitely which has the same semantics as "being impossible"/permanent
hang (?)
Looking again, I'm thinking the OID type size is more relevant for the
first paragraph, and the shared/global aspect is more relevant for the
second.
The last issue is how to separate the notes at the bottom, since there are
now two topics.
--
John Naylor
EDB: http://www.enterprisedb.com
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Document limit on the number of out-of-line values per table
- e51160fa0bab 15.9 landed
- dda341b32c88 14.14 landed
- c9aa6f4f86fc 13.17 landed
- 667401dd40c8 17.0 landed
- 5ff394503ce2 12.21 landed
- 4d93bbd4e0d4 18.0 landed
- 409be33c3136 16.5 landed
-
Log when GetNewOidWithIndex() fails to find unused OID many times.
- 7fbcee1b2d5f 14.0 cited