On Wed, Nov 1, 2023 at 07:34:59PM -0400, Bruce Momjian wrote: > On Wed, Nov 1, 2023 at 07:12:48PM -0400, Tom Lane wrote: > > Bruce Momjian <br...@momjian.us> writes: > > > On Wed, Nov 1, 2023 at 06:32:37PM -0400, Tom Lane wrote: > > >> But it *is* permissible, unless we add code to reject it during > > >> SET as Bruce mentioned. Which seems fairly pointless to me. It's not > > >> like there is anything unclear about the CREATE TABLE error message. > > > > > Yeah, from the report I thought something bad happened if you tried to > > > use it and that is why we had to document it. By documenting it we are > > > just giving the user advice before they get the error. I wrote up this > > > minimal patch which might have the right level of detail to avoid > > > errors, if people think this is useful. > > > > I think this will lead to just as much confusion, because people > > will read it and expect that SET will fail. > > > > If we need to document any more than we have now, we should point > > out in the CREATE TABLE man page that you can't create a table in > > the pg_global tablespace. That will cover both this case and the > > case of trying to select pg_global explicitly in the CREATE. > > > > Another idea could be to adjust this bit in manage-ag.sgml: > > > > Two tablespaces are automatically created when the database cluster > > is initialized. The > > - <literal>pg_global</literal> tablespace is used for shared system > > catalogs. The > > + <literal>pg_global</literal> tablespace is used for shared system > > catalogs, > > + and cannot be used for user-defined tables. The > > <literal>pg_default</literal> tablespace is the default tablespace of the > > I like the manage-ag.sgml change myself.
I found a cleaner improvement, attached. -- Bruce Momjian <br...@momjian.us> https://momjian.us EDB https://enterprisedb.com Only you can decide what is important to you.
diff --git a/doc/src/sgml/manage-ag.sgml b/doc/src/sgml/manage-ag.sgml index 192c500994..a02ef632c3 100644 --- a/doc/src/sgml/manage-ag.sgml +++ b/doc/src/sgml/manage-ag.sgml @@ -498,7 +498,7 @@ CREATE TABLE foo(i int); <para> Two tablespaces are automatically created when the database cluster is initialized. The - <literal>pg_global</literal> tablespace is used for shared system catalogs. The + <literal>pg_global</literal> tablespace is used only for shared system catalogs. The <literal>pg_default</literal> tablespace is the default tablespace of the <literal>template1</literal> and <literal>template0</literal> databases (and, therefore, will be the default tablespace for other databases as well, unless