Hi Pavel, I took a quick look through the patch, I'll try to build and test it tomorrow.
--- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -3145,6 +3145,7 @@ typedef struct DropdbStmt NodeTag type; char *dbname; /* database to drop */ bool missing_ok; /* skip error if db is missing? */ + List *options; /* currently only FORCE is supported */ } DropdbStmt; Why put FORCE as the single item in an options list? A bool var seems like it would be more clear and consistent. - * DROP DATABASE [ IF EXISTS ] + * DROP DATABASE [ ( FORCE ) ] [ IF EXISTS ] Why is it `[ ( FORCE ) ]` instead of `[ FORCE ]`? There are also places in the code that seem like extra () are around FORCE. Like here: + appendPQExpBuffer(&sql, "DROP DATABASE %s%s%s;", + (force ? " (FORCE) " : ""), + (if_exists ? "IF EXISTS " : ""), fmtId(dbname)); And here: +$node->safe_psql('postgres', 'CREATE DATABASE foobar2'); +$node->issues_sql_like( + [ 'dropdb', '--force', 'foobar2' ], + qr/statement: DROP DATABASE (FORCE) foobar2/, + 'SQL DROP DATABASE (FORCE) run'); + I'll try to build and test the patch tomorrow. Thanks, *Ryan Lambert* > >>