1/*
2 * seclabel.h
3 *
4 * Prototypes for functions in commands/seclabel.c
5 *
6 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 */
9#ifndef SECLABEL_H
10#define SECLABEL_H
11
12#include "catalog/objectaddress.h"
13
14/*
15 * Internal APIs
16 */
17extern char *GetSecurityLabel(const ObjectAddress *object,
18 const char *provider);
19extern void SetSecurityLabel(const ObjectAddress *object,
20 const char *provider, const char *label);
21extern void DeleteSecurityLabel(const ObjectAddress *object);
22extern void DeleteSharedSecurityLabel(Oid objectId, Oid classId);
23
24/*
25 * Statement and ESP hook support
26 */
27extern ObjectAddress ExecSecLabelStmt(SecLabelStmt *stmt);
28
29typedef void (*check_object_relabel_type) (const ObjectAddress *object,
30 const char *seclabel);
31extern void register_label_provider(const char *provider,
32 check_object_relabel_type hook);
33
34#endif /* SECLABEL_H */
35