On Thu, Oct 26, 2023 at 04:17:19PM -0700, David G. Johnston wrote:
> On Thu, Oct 26, 2023 at 4:13 PM David G. Johnston <[email protected]>
> wrote:
>
> On Thu, Oct 26, 2023 at 4:08 PM Tom Lane <[email protected]> wrote:
>
> Bruce Momjian <[email protected]> writes:
> > Ah, I was confused. I documented both in the attached patch.
>
> The function one should have the same annotation as some others:
>
> <entry>can be increased by recompiling <productname>PostgreSQL</
> productname></entry>
>
>
>
> I'd like to see a comment on the parameter count one too.
>
> "Alternatives include using a temporary table or passing them in as a
> single array parameter."
>
> About the only time this is likely to come up is with many parameters of
> the same type and meaning, pointing that out with the array option seems
> excessively wordy for the comment area.
>
> Needs a comma: 65,535
>
> Kinda think both should be tacked on to the end of the table. I'd also
> put
> function arguments first so it appears under the compile time partition
> keys limit.
>
>
>
> Cleanups for consistency:
>
> Move "identifier length" after "partition keys" (before the new "function
> arguments")
>
> Add commas to: 1,600 and 1,664 and 8,192
Okay, I made all the suggested changes in ordering and adding commas,
plus the text about the ability to change function arguments via
recompiling.
I didn't put commas in 8192 since that is a power-of-two and kind of a
magic number used in many places.
I am not sure where to put text about using arrays to handle many
function arguments. I just don't see it fitting in the table, or the
paragraph below the table.
Patch attached.
--
Bruce Momjian <[email protected]> https://momjian.us
EDB https://enterprisedb.com
Only you can decide what is important to you.
diff --git a/doc/src/sgml/limits.sgml b/doc/src/sgml/limits.sgml
index d5b2b627dd..c549447013 100644
--- a/doc/src/sgml/limits.sgml
+++ b/doc/src/sgml/limits.sgml
@@ -57,14 +57,14 @@
<row>
<entry>columns per table</entry>
- <entry>1600</entry>
+ <entry>1,600</entry>
<entry>further limited by tuple size fitting on a single page; see note
below</entry>
</row>
<row>
<entry>columns in a result set</entry>
- <entry>1664</entry>
+ <entry>1,664</entry>
<entry></entry>
</row>
@@ -74,12 +74,6 @@
<entry></entry>
</row>
- <row>
- <entry>identifier length</entry>
- <entry>63 bytes</entry>
- <entry>can be increased by recompiling <productname>PostgreSQL</productname></entry>
- </row>
-
<row>
<entry>indexes per table</entry>
<entry>unlimited</entry>
@@ -92,11 +86,29 @@
<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>
+
+ <row>
+ <entry>identifier length</entry>
+ <entry>63 bytes</entry>
+ <entry>can be increased by recompiling <productname>PostgreSQL</productname></entry>
+ </row>
+
+ <row>
+ <entry>function arguments</entry>
+ <entry>100</entry>
+ <entry>can be increased by recompiling <productname>PostgreSQL</productname></entry>
+ </row>
+
+ <row>
+ <entry>query parameters</entry>
+ <entry>65,535</entry>
+ <entry></entry>
+ </row>
</tbody>
</tgroup>
</table>
@@ -104,9 +116,9 @@
<para>
The maximum number of columns for a table is further reduced as the tuple
being stored must fit in a single 8192-byte heap page. For example,
- excluding the tuple header, a tuple made up of 1600 <type>int</type> columns
+ excluding the tuple header, a tuple made up of 1,600 <type>int</type> columns
would consume 6400 bytes and could be stored in a heap page, but a tuple of
- 1600 <type>bigint</type> columns would consume 12800 bytes and would
+ 1,600 <type>bigint</type> columns would consume 12800 bytes and would
therefore not fit inside a heap page.
Variable-length fields of
types such as <type>text</type>, <type>varchar</type>, and <type>char</type>