extension.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*-------------------------------------------------------------------------
  2. *
  3. * extension.h
  4. * Extension management commands (create/drop extension).
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
  8. * Portions Copyright (c) 1994, Regents of the University of California
  9. *
  10. * src/include/commands/extension.h
  11. *
  12. *-------------------------------------------------------------------------
  13. */
  14. #ifndef EXTENSION_H
  15. #define EXTENSION_H
  16. #include "catalog/objectaddress.h"
  17. #include "nodes/parsenodes.h"
  18. /*
  19. * creating_extension is only true while running a CREATE EXTENSION command.
  20. * It instructs recordDependencyOnCurrentExtension() to register a dependency
  21. * on the current pg_extension object for each SQL object created by its
  22. * installation script.
  23. */
  24. extern PGDLLIMPORT bool creating_extension;
  25. extern Oid CurrentExtensionObject;
  26. extern ObjectAddress CreateExtension(CreateExtensionStmt *stmt);
  27. extern void RemoveExtensionById(Oid extId);
  28. extern ObjectAddress InsertExtensionTuple(const char *extName, Oid extOwner,
  29. Oid schemaOid, bool relocatable, const char *extVersion,
  30. Datum extConfig, Datum extCondition,
  31. List *requiredExtensions);
  32. extern ObjectAddress ExecAlterExtensionStmt(AlterExtensionStmt *stmt);
  33. extern ObjectAddress ExecAlterExtensionContentsStmt(AlterExtensionContentsStmt *stmt,
  34. ObjectAddress *objAddress);
  35. extern Oid get_extension_oid(const char *extname, bool missing_ok);
  36. extern char *get_extension_name(Oid ext_oid);
  37. extern ObjectAddress AlterExtensionNamespace(List *names, const char *newschema,
  38. Oid *oldschema);
  39. extern void AlterExtensionOwner_oid(Oid extensionOid, Oid newOwnerId);
  40. #endif /* EXTENSION_H */