init
This commit is contained in:
49
db_include/rewrite/rowsecurity.h
Executable file
49
db_include/rewrite/rowsecurity.h
Executable file
@@ -0,0 +1,49 @@
|
||||
/* -------------------------------------------------------------------------
|
||||
*
|
||||
* rowsecurity.h
|
||||
*
|
||||
* prototypes for rewrite/rowsecurity.c and the structures for managing
|
||||
* the row security policies for relations in relcache.
|
||||
*
|
||||
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* -------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef ROWSECURITY_H
|
||||
#define ROWSECURITY_H
|
||||
|
||||
#include "nodes/parsenodes.h"
|
||||
#include "utils/array.h"
|
||||
#include "utils/relcache.h"
|
||||
|
||||
typedef struct RowSecurityPolicy
|
||||
{
|
||||
char *policy_name; /* Name of the policy */
|
||||
char polcmd; /* Type of command policy is for */
|
||||
ArrayType *roles; /* Array of roles policy is for */
|
||||
bool permissive; /* restrictive or permissive policy */
|
||||
Expr *qual; /* Expression to filter rows */
|
||||
Expr *with_check_qual; /* Expression to limit rows allowed */
|
||||
bool hassublinks; /* If either expression has sublinks */
|
||||
} RowSecurityPolicy;
|
||||
|
||||
typedef struct RowSecurityDesc
|
||||
{
|
||||
MemoryContext rscxt; /* row security memory context */
|
||||
List *policies; /* list of row security policies */
|
||||
} RowSecurityDesc;
|
||||
|
||||
typedef List *(*row_security_policy_hook_type) (CmdType cmdtype,
|
||||
Relation relation);
|
||||
|
||||
extern PGDLLIMPORT row_security_policy_hook_type row_security_policy_hook_permissive;
|
||||
|
||||
extern PGDLLIMPORT row_security_policy_hook_type row_security_policy_hook_restrictive;
|
||||
|
||||
extern void get_row_security_policies(Query *root,
|
||||
RangeTblEntry *rte, int rt_index,
|
||||
List **securityQuals, List **withCheckOptions,
|
||||
bool *hasRowSecurity, bool *hasSubLinks);
|
||||
|
||||
#endif /* ROWSECURITY_H */
|
||||
Reference in New Issue
Block a user