Thread
-
Re: [PATCH] Add pg_get_tablespace_ddl() function to reconstruct CREATE TABLESPACE statement
Manni Wood <manni.wood@enterprisedb.com> — 2025-11-18T14:15:03Z
On Thu, Nov 13, 2025 at 12:07 AM Chao Li <li.evan.chao@gmail.com> wrote: > Hi Manni, > > I just reviewed and tested the patch, just got a few small comments: > > > On Nov 13, 2025, at 00:15, Álvaro Herrera <alvherre@kurilemu.de> wrote: > > > > On 2025-Nov-12, Manni Wood wrote: > > > >> Thanks, Álvaro, for your continued help with this. > >> > >> I have attached v11 patches that use all of the fixes from your > >> review.patch.txt. > > > > OK, thanks, I pushed 0001 now. > > > > I think you could claim that some routines currently in > > src/backend/commands/tablespace.c logically belong in the new file, but > > unless you want to take on the task of moving a lot of other routines > > under commands/ to their respective catalog/ file, then I think it's > > more or less fine as is. > > > > To be clear, I do not intend to do anything with your 0002 patch [for > > now]. I'm going to let Andrew take these DDL-producing functions in his > > hands. Here I'm just posting your 0002 again, to make the cfbot happy. > > > > Thanks > > > > -- > > Álvaro Herrera 48°01'N 7°57'E — > https://www.EnterpriseDB.com/ > > "Nunca se desea ardientemente lo que solo se desea por razón" (F. > Alexandre) > > <v12-0002-Adds-pg_get_tablespace_ddl-function.patch> > > > 1. > ``` > + errmsg("tablespace with oid %d does not > exist", > ``` > > Existing code all use “%u” to format oid. You may search for “oid %” to > see that. > > 2. > ``` > + /* Add the options in WITH clause */ > + appendStringInfoString(&buf, > TextDatumGetCString(optdatums[i])); > + appendStringInfoString(&buf, ", “); > ``` > > This two statements can be combined into one: > > appendStringInfoString(&buf, “%s, “, TextDatumGetCString(optdatums[i])); > > 3 > ``` > + if (strncmp(PG_TBLSPC_DIR_SLASH, path, > strlen(PG_TBLSPC_DIR_SLASH)) == 0) > + appendStringInfoString(&buf, " LOCATION ''"); > + else > + appendStringInfo(&buf, " LOCATION '%s'", path); > + } > ``` > > Instead of hardcoding single-quotes, we can use quote_literal_cstr(). > > Best regards, > -- > Chao Li (Evan) > HighGo Software Co., Ltd. > https://www.highgo.com/ > > > > > Hello, Chao Li! Thank you for the improvements to my patch, helping it follow more of Postgres's coding conventions. Much appreciated. I have attached v13 of the patch. Now that Álvaro has merged the contents of the 0001 patch, I assume this v13 patch can be 0001 and not 0002. -- -- Manni Wood EDB: https://www.enterprisedb.com