Re: [PATCH] Add pg_get_database_ddl() function to reconstruct CREATE DATABASE statement - Mailing list pgsql-hackers
| From | Akshay Joshi |
|---|---|
| Subject | Re: [PATCH] Add pg_get_database_ddl() function to reconstruct CREATE DATABASE statement |
| Date | |
| Msg-id | CANxoLDf+Ak=S+V1Rx25Eqh7r6cuWZtHYiEo_AZsn9eqiWbVGEg@mail.gmail.com Whole thread |
| In response to | Re: [PATCH] Add pg_get_database_ddl() function to reconstruct CREATE DATABASE statement (Japin Li <japinli@hotmail.com>) |
| Responses |
Re: [PATCH] Add pg_get_database_ddl() function to reconstruct CREATE DATABASE statement
|
| List | pgsql-hackers |
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
Attached is the v13 patch, now ready for further review.
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 <japinli@hotmail.com> wrote:
Hi, Akshay
On Fri, 06 Mar 2026 at 17:21, Akshay Joshi <akshay.joshi@enterprisedb.com> 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.
Attachment
pgsql-hackers by date: