Fixes alter database set errorss

pull/7181/head
gindibay 2023-09-07 18:14:50 +03:00
parent 2210e5d892
commit 961510bfcf
3 changed files with 35 additions and 38 deletions

View File

@ -12,6 +12,7 @@
#include "commands/defrem.h"
#include "distributed/log_utils.h"
#include "parser/parse_type.h"
#include "nodes/print.h"
void AppendVarSetValue(StringInfo buf, VariableSetStmt *setStmt);
@ -76,7 +77,7 @@ AppendVarSetValue(StringInfo buf, VariableSetStmt *setStmt)
case T_Float:
{
appendStringInfo(buf, " %s", strVal(value));
appendStringInfo(buf, " %s", nodeToString(value));
break;
}

View File

@ -89,7 +89,7 @@ AppendGrantOnDatabaseStmt(StringInfo buf, GrantStmt *stmt)
static void
AppendDefElemIsTemplate(StringInfo buf, DefElem *def)
{
appendStringInfo(buf, "WITH %s %s", quote_identifier(def->defname),
appendStringInfo(buf, " %s %s", quote_identifier(def->defname),
quote_literal_cstr(strVal(def->arg)));
}
@ -97,7 +97,7 @@ AppendDefElemIsTemplate(StringInfo buf, DefElem *def)
static void
AppendDefElemConnLimit(StringInfo buf, DefElem *def)
{
appendStringInfo(buf, "WITH CONNECTION LIMIT %ld", (long int) defGetNumeric(def));
appendStringInfo(buf, " CONNECTION LIMIT %ld", (long int) defGetNumeric(def));
}
@ -109,9 +109,10 @@ AppendAlterDatabaseStmt(StringInfo buf, AlterDatabaseStmt *stmt)
if (stmt->options)
{
ListCell *cell = NULL;
appendStringInfo(buf, "WITH ");
appendStringInfo(buf, "WITH");
foreach(cell, stmt->options)
{
DefElem *def = castNode(DefElem, lfirst(cell));
if (strcmp(def->defname, "is_template") == 0)
{
@ -121,11 +122,6 @@ AppendAlterDatabaseStmt(StringInfo buf, AlterDatabaseStmt *stmt)
{
AppendDefElemConnLimit(buf, def);
}
else if (strcmp(def->defname, "tablespace") == 0)
{
ereport(ERROR,
errmsg("SET tablespace is not supported"));
}
else if (strcmp(def->defname, "allow_connections") == 0)
{
ereport(ERROR,

View File

@ -15,45 +15,45 @@ alter database regression with IS_TEMPLATE false;
-- this statement will get error since we don't have a multiple database support for now
alter database regression rename to regression2;
alter database regression set archive_mode to on;
alter database regression set default_transaction_read_only = true;
set archive_mode to off;
alter database regression set archive_mode from current;
alter database regression set archive_mode to DEFAULT;
alter database regression set RESET archive_mode;
set default_transaction_read_only = false;
alter database regression set archive_timeout to 100;
set archive_timeout to 50;
alter database regression set archive_timeout from current;
alter database regression set archive_timeout to DEFAULT;
alter database regression set RESET archive_timeout;
ALTER DATABASE regression SET checkpoint_completion_target TO 0.9;
set checkpoint_completion_target to 0.5;
alter database regression set checkpoint_completion_target from current;
alter database regression set checkpoint_completion_target to DEFAULT;
alter database regression set RESET checkpoint_completion_target;
alter database regression set default_transaction_read_only from current;
alter database regression set default_transaction_read_only to DEFAULT;
alter database regression RESET default_transaction_read_only;
alter database regression SET TIME ZONE '-7';
set TIME ZONE '-8';
alter database regression set TIME ZONE from current;
alter database regression set TIME ZONE to DEFAULT;
alter database regression set RESET TIME ZONE;
alter database regression set TIME ZONE LOCAL;
alter database regression set TIME ZONE DEFAULT;
alter database regression RESET TIME ZONE;
alter database regression set SET TIME ZONE INTERVAL '-08:00' HOUR TO MINUTE;
alter database regression SET TIME ZONE INTERVAL '-08:00' HOUR TO MINUTE;
set TIME ZONE INTERVAL '-07:00' HOUR TO MINUTE;
alter database regression set TIME ZONE INTERVAL from current;
alter database regression set TIME ZONE INTERVAL to DEFAULT;
alter database regression set RESET TIME ZONE INTERVAL;
alter database regression RESET TIME ZONE;
alter database regression set default_transaction_isolation = 'serializable';
set default_transaction_isolation = 'read committed';
alter database regression set default_transaction_isolation from current;
alter database regression set default_transaction_isolation to DEFAULT;
alter database regression RESET default_transaction_isolation;
alter database regression set statement_timeout = 1000;
set statement_timeout = 2000;
alter database regression set statement_timeout from current;
alter database regression set statement_timeout to DEFAULT;
alter database regression RESET statement_timeout;
alter database regression set lock_timeout = 1201.5;
set lock_timeout = 1202.5;
alter database regression set lock_timeout from current;
alter database regression set lock_timeout to DEFAULT;
alter database regression RESET lock_timeout;