diff --git a/src/backend/distributed/commands/database.c b/src/backend/distributed/commands/database.c index ce429825e..ce9467779 100644 --- a/src/backend/distributed/commands/database.c +++ b/src/backend/distributed/commands/database.c @@ -574,66 +574,64 @@ GenerateCreateDatabaseStatementFromPgDatabase(Form_pg_database databaseForm) StringInfoData str; initStringInfo(&str); - appendStringInfo(&str, "CREATE DATABASE %s", quote_identifier(NameStr( - databaseForm-> - datname))); + appendStringInfo(&str, "CREATE DATABASE %s", + quote_identifier(NameStr(databaseForm->datname))); if (databaseForm->datdba != InvalidOid) { - appendStringInfo(&str, " OWNER = %s", GetUserNameFromId(databaseForm->datdba, - false)); + appendStringInfo(&str, " OWNER = %s", + quote_literal_cstr(GetUserNameFromId(databaseForm->datdba,false))); } if (databaseForm->encoding != -1) { - appendStringInfo(&str, " ENCODING = '%s'", pg_encoding_to_char( - databaseForm->encoding)); + appendStringInfo(&str, " ENCODING = %s", + quote_literal_cstr(pg_encoding_to_char(databaseForm->encoding))); } if (collInfo.collation != NULL) { - appendStringInfo(&str, " LC_COLLATE = '%s'", collInfo.collation); + appendStringInfo(&str, " LC_COLLATE = %s", quote_literal_cstr(collInfo.collation)); } if (collInfo.ctype != NULL) { - appendStringInfo(&str, " LC_CTYPE = '%s'", collInfo.ctype); + appendStringInfo(&str, " LC_CTYPE = %s", quote_literal_cstr(collInfo.ctype)); } #if PG_VERSION_NUM >= PG_VERSION_15 if (collInfo.icu_locale != NULL) { - appendStringInfo(&str, " ICU_LOCALE = '%s'", collInfo.icu_locale); + appendStringInfo(&str, " ICU_LOCALE = %s", quote_literal_cstr(collInfo.icu_locale)); } if (databaseForm->datlocprovider != 0) { - appendStringInfo(&str, " LOCALE_PROVIDER = '%s'", GetLocaleProviderString( - databaseForm->datlocprovider)); + appendStringInfo(&str, " LOCALE_PROVIDER = %s", + quote_literal_cstr(GetLocaleProviderString(databaseForm->datlocprovider))); } if (collInfo.collversion != NULL) { - appendStringInfo(&str, " COLLATION_VERSION = '%s'", collInfo.collversion); + appendStringInfo(&str, " COLLATION_VERSION = %s", quote_literal_cstr(collInfo.collversion)); } #endif if (databaseForm->dattablespace != InvalidOid) { - appendStringInfo(&str, " TABLESPACE = %s", quote_identifier(GetTablespaceName( - databaseForm-> - dattablespace))); + appendStringInfo(&str, " TABLESPACE = %s", + quote_identifier(GetTablespaceName(databaseForm->dattablespace))); } - appendStringInfo(&str, " ALLOW_CONNECTIONS = '%s'", databaseForm->datallowconn ? - "true" : "false"); + appendStringInfo(&str, " ALLOW_CONNECTIONS = %s", + quote_literal_cstr(databaseForm->datallowconn ?"true" : "false")); if (databaseForm->datconnlimit >= 0) { appendStringInfo(&str, " CONNECTION LIMIT %d", databaseForm->datconnlimit); } - appendStringInfo(&str, " IS_TEMPLATE = '%s'", databaseForm->datistemplate ? "true" : - "false"); + appendStringInfo(&str, " IS_TEMPLATE = %s", + quote_literal_cstr(databaseForm->datistemplate ? "true" :"false")); FreeDatabaseCollationInfo(collInfo); diff --git a/src/backend/distributed/sql/udfs/citus_internal_database_command/latest.sql b/src/backend/distributed/sql/udfs/citus_internal_database_command/latest.sql index f6aaa4642..b20f6278e 100644 --- a/src/backend/distributed/sql/udfs/citus_internal_database_command/latest.sql +++ b/src/backend/distributed/sql/udfs/citus_internal_database_command/latest.sql @@ -5,7 +5,6 @@ CREATE OR REPLACE FUNCTION pg_catalog.citus_internal_database_command(command te RETURNS void LANGUAGE C VOLATILE - STRICT AS 'MODULE_PATHNAME', $$citus_internal_database_command$$; COMMENT ON FUNCTION pg_catalog.citus_internal_database_command(text) IS 'run a database command without transaction block restrictions';