I have resolved the review comments. Removed the hardcoded 'utf-8' encoding, the logic now retrieves the encoding dynamically. This ensures accuracy because the default encoding for CREATE DATABASE is derived from the template database (template1) rather than being a static value.
Attached is the *v13 patch*, now ready for further review. On Fri, Mar 6, 2026 at 8:13 PM Japin Li <[email protected]> wrote: > > Hi, Akshay > > On Fri, 06 Mar 2026 at 17:21, Akshay Joshi <[email protected]> > wrote: > > I have updated the documentation. > > Attached is the v12 patch, now ready for further review. > > > > Thanks for updating the patch. > > I might not have expressed myself clearly in my last email — apologies. > Here's a diff that should make it clearer. > > diff --git a/src/backend/utils/adt/ruleutils.c > b/src/backend/utils/adt/ruleutils.c > index bbf82c1d6c0..1ed56ee71ab 100644 > --- a/src/backend/utils/adt/ruleutils.c > +++ b/src/backend/utils/adt/ruleutils.c > @@ -13859,7 +13859,6 @@ parse_ddl_options(FunctionCallInfo fcinfo, int > variadic_start) > bool *nulls; > Oid *types; > int nargs; > - bool found = false; > > /* Extract variadic arguments */ > nargs = extract_variadic_args(fcinfo, variadic_start, true, > @@ -13887,8 +13886,7 @@ parse_ddl_options(FunctionCallInfo fcinfo, int > variadic_start) > { > char *name; > bool bval; > - > - found = false; > + bool found = false; > > /* Key must not be null */ > if (nulls[i]) > @@ -13925,8 +13923,8 @@ parse_ddl_options(FunctionCallInfo fcinfo, int > variadic_start) > if (!parse_bool(valstr, &bval)) > ereport(ERROR, > > (errcode(ERRCODE_INVALID_PARAMETER_VALUE), > - errmsg("argument %d: > invalid value \"%s\" for key \"%s\"", > - i + 2, > valstr, name), > + errmsg("value for option > \"%s\" at position %d has invalid value \"%s\"", > + name, i + > 2, valstr), > errhint("Valid values > are: true, false, yes, no, 1, 0, on, off."))); > pfree(valstr); > } > @@ -13934,8 +13932,8 @@ parse_ddl_options(FunctionCallInfo fcinfo, int > variadic_start) > { > ereport(ERROR, > > (errcode(ERRCODE_INVALID_PARAMETER_VALUE), > - errmsg("argument %d: value for > key \"%s\" must be boolean or text type", > - i + 2, name))); > + errmsg("value for option \"%s\" > at position %d has type %s, expected type boolean or text", > + name, i + 2, > format_type_be(types[i + 1])))); > } > > /* > @@ -13983,7 +13981,7 @@ parse_ddl_options(FunctionCallInfo fcinfo, int > variadic_start) > /* > * pg_get_database_ddl > * > - * Generate a CREATE DATABASE statement for the specified database name > or oid. > + * Generate a CREATE DATABASE statement for the specified database oid. > * > * db_oid - OID of the database for which to generate the DDL. > * options - Variadic name/value pairs to modify the output. > > -- > Regards, > Japin Li > ChengDu WenWu Information Technology Co., Ltd. >
v13-0001-Add-pg_get_database_ddl-function-to-reconstruct-ddl.patch
Description: Binary data
