On Mon, 9 Mar 2026 at 17:08, Akshay Joshi <[email protected]> wrote: > > 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.
Hi! I noticed this in v13: DDLOptionDef is missing from typedefs.list. This results in pgident to incorrectly format sources. -- Best regards, Kirill Reshke
