diff --git a/src/backend/distributed/commands/database.c b/src/backend/distributed/commands/database.c index b3d54689b..17f45ec10 100644 --- a/src/backend/distributed/commands/database.c +++ b/src/backend/distributed/commands/database.c @@ -182,24 +182,30 @@ PreprocessAlterDatabaseStmt(Node *node, const char *queryString, char *sql = DeparseTreeNode((Node *) stmt); - if (strstr(sql, "SET TABLESPACE") != NULL) { - if (IsCoordinatorNode()){ - ereport(NOTICE, (errmsg("Citus partially supports ALTER DATABASE SET TABLESPACE for " - "distributed databases"), - errdetail("Citus does not propagate ALTER DATABASE SET TABLESPACE " - "command to workers"), - errhint("You can manually alter a tablespace for a database and its " - "extensions on workers."))); + if (strstr(sql, "SET TABLESPACE") != NULL) + { + if (IsCoordinatorNode()) + { + ereport(NOTICE, (errmsg( + "Citus partially supports ALTER DATABASE SET TABLESPACE for " + "distributed databases"), + errdetail( + "Citus does not propagate ALTER DATABASE SET TABLESPACE " + "command to workers"), + errhint( + "You can manually alter a tablespace for a database and its " + "extensions on workers."))); } - }else{ + } + else + { List *commands = list_make3(DISABLE_DDL_PROPAGATION, - (void *) sql, - ENABLE_DDL_PROPAGATION); + (void *) sql, + ENABLE_DDL_PROPAGATION); return NodeDDLTaskList(NON_COORDINATOR_NODES, commands); } return NIL; - } @@ -422,7 +428,7 @@ citus_internal_database_command(PG_FUNCTION_ARGS) if (OidIsValid(databaseOid)) { - AlterDatabase(NULL, (AlterDatabaseStmt *) parseTree,true); + AlterDatabase(NULL, (AlterDatabaseStmt *) parseTree, true); } } else diff --git a/src/backend/distributed/deparser/deparse_database_stmts.c b/src/backend/distributed/deparser/deparse_database_stmts.c index 0a48bd515..ae8a37e87 100644 --- a/src/backend/distributed/deparser/deparse_database_stmts.c +++ b/src/backend/distributed/deparser/deparse_database_stmts.c @@ -112,22 +112,29 @@ AppendGrantOnDatabaseStmt(StringInfo buf, GrantStmt *stmt) AppendGrantSharedSuffix(buf, stmt); } + static void -AppendBasicAlterDatabaseOptions(StringInfo buf,DefElem *def, bool prefix_appended_for_basic_options, char *dbname ){ - if(!prefix_appended_for_basic_options){ +AppendBasicAlterDatabaseOptions(StringInfo buf, DefElem *def, bool + prefix_appended_for_basic_options, char *dbname) +{ + if (!prefix_appended_for_basic_options) + { appendStringInfo(buf, "ALTER DATABASE %s WITH ", quote_identifier(dbname)); prefix_appended_for_basic_options = true; } optionToStatement(buf, def, alter_database_option_formats, lengthof( - alter_database_option_formats)); + alter_database_option_formats)); } + static void -AppendAlterDatabaseSetTablespace(StringInfo buf,DefElem *def, char *dbname ){ - appendStringInfo(buf,"ALTER DATABASE %s SET TABLESPACE %s", - quote_identifier(dbname),quote_identifier(defGetString(def))); +AppendAlterDatabaseSetTablespace(StringInfo buf, DefElem *def, char *dbname) +{ + appendStringInfo(buf, "ALTER DATABASE %s SET TABLESPACE %s", + quote_identifier(dbname), quote_identifier(defGetString(def))); } + static void AppendAlterDatabaseStmt(StringInfo buf, AlterDatabaseStmt *stmt) { @@ -138,13 +145,16 @@ AppendAlterDatabaseStmt(StringInfo buf, AlterDatabaseStmt *stmt) foreach(cell, stmt->options) { DefElem *def = castNode(DefElem, lfirst(cell)); - if (strcmp(def->defname,"tablespace") == 0) + if (strcmp(def->defname, "tablespace") == 0) { - AppendAlterDatabaseSetTablespace(buf,def,stmt->dbname); + AppendAlterDatabaseSetTablespace(buf, def, stmt->dbname); break; } - else{ - AppendBasicAlterDatabaseOptions(buf,def,prefix_appended_for_basic_options,stmt->dbname); + else + { + AppendBasicAlterDatabaseOptions(buf, def, + prefix_appended_for_basic_options, + stmt->dbname); } } }