mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
This adds to database objects the same version tracking that collation objects have. There is a new pg_database column datcollversion that stores the version, a new function pg_database_collation_actual_version() to get the version from the operating system, and a new subcommand ALTER DATABASE ... REFRESH COLLATION VERSION. This was not originally added together with pg_collation.collversion, since originally version tracking was only supported for ICU, and ICU on a database-level is not currently supported. But we now have version tracking for glibc (since PG13), FreeBSD (since PG14), and Windows (since PG13), so this is useful to have now. Reviewed-by: Julien Rouhaud <rjuju123@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/f0ff3190-29a3-5b39-a179-fa32eee57db6%40enterprisedb.com
37 lines
1.4 KiB
C
37 lines
1.4 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* dbcommands.h
|
|
* Database management commands (create/drop database).
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/commands/dbcommands.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef DBCOMMANDS_H
|
|
#define DBCOMMANDS_H
|
|
|
|
#include "access/xlogreader.h"
|
|
#include "catalog/objectaddress.h"
|
|
#include "lib/stringinfo.h"
|
|
#include "parser/parse_node.h"
|
|
|
|
extern Oid createdb(ParseState *pstate, const CreatedbStmt *stmt);
|
|
extern void dropdb(const char *dbname, bool missing_ok, bool force);
|
|
extern void DropDatabase(ParseState *pstate, DropdbStmt *stmt);
|
|
extern ObjectAddress RenameDatabase(const char *oldname, const char *newname);
|
|
extern Oid AlterDatabase(ParseState *pstate, AlterDatabaseStmt *stmt, bool isTopLevel);
|
|
extern ObjectAddress AlterDatabaseRefreshColl(AlterDatabaseRefreshCollStmt *stmt);
|
|
extern Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt);
|
|
extern ObjectAddress AlterDatabaseOwner(const char *dbname, Oid newOwnerId);
|
|
|
|
extern Oid get_database_oid(const char *dbname, bool missing_ok);
|
|
extern char *get_database_name(Oid dbid);
|
|
|
|
extern void check_encoding_locale_matches(int encoding, const char *collate, const char *ctype);
|
|
|
|
#endif /* DBCOMMANDS_H */
|