117 List *permissive_policies;
118 List *restrictive_policies;
122 *securityQuals =
NIL;
123 *withCheckOptions =
NIL;
124 *hasRowSecurity =
false;
125 *hasSubLinks =
false;
130 if (rte->
relkind != RELKIND_RELATION &&
131 rte->
relkind != RELKIND_PARTITIONED_TABLE)
159 *hasRowSecurity =
true;
175 commandType = rt_index == root->resultRelation ?
208 List *update_permissive_policies;
209 List *update_restrictive_policies;
212 &update_permissive_policies,
213 &update_restrictive_policies);
216 update_permissive_policies,
217 update_restrictive_policies,
230 &restrictive_policies);
237 restrictive_policies,
255 List *select_permissive_policies;
256 List *select_restrictive_policies;
259 &select_permissive_policies,
260 &select_restrictive_policies);
263 select_permissive_policies,
264 select_restrictive_policies,
278 Assert(rt_index == root->resultRelation);
284 restrictive_policies,
298 List *select_permissive_policies =
NIL;
299 List *select_restrictive_policies =
NIL;
302 &select_permissive_policies,
303 &select_restrictive_policies);
307 select_permissive_policies,
308 select_restrictive_policies,
321 List *conflict_permissive_policies;
322 List *conflict_restrictive_policies;
323 List *conflict_select_permissive_policies =
NIL;
324 List *conflict_select_restrictive_policies =
NIL;
328 &conflict_permissive_policies,
329 &conflict_restrictive_policies);
339 conflict_permissive_policies,
340 conflict_restrictive_policies,
355 &conflict_select_permissive_policies,
356 &conflict_select_restrictive_policies);
359 conflict_select_permissive_policies,
360 conflict_select_restrictive_policies,
369 conflict_permissive_policies,
370 conflict_restrictive_policies,
384 conflict_select_permissive_policies,
385 conflict_select_restrictive_policies,
413 List *merge_permissive_policies;
414 List *merge_restrictive_policies;
421 &merge_permissive_policies,
422 &merge_restrictive_policies);
430 merge_permissive_policies,
431 merge_restrictive_policies,
440 &merge_permissive_policies,
441 &merge_restrictive_policies);
445 merge_permissive_policies,
446 merge_restrictive_policies,
457 &merge_permissive_policies,
458 &merge_restrictive_policies);
462 merge_permissive_policies,
463 merge_restrictive_policies,
471 merge_permissive_policies,
472 merge_restrictive_policies,
491 *hasRowSecurity =
true;
#define OidIsValid(objectId)
Assert(fmt[strlen(fmt) - 1] !='\n')
RTEPermissionInfo * getRTEPermissionInfo(List *rteperminfos, RangeTblEntry *rte)
@ WCO_RLS_MERGE_UPDATE_CHECK
@ WCO_RLS_MERGE_DELETE_CHECK
void setRuleCheckAsUser(Node *node, Oid userid)
int check_enable_rls(Oid relid, Oid checkAsUser, bool noError)
static void add_with_check_options(Relation rel, int rt_index, WCOKind kind, List *permissive_policies, List *restrictive_policies, List **withCheckOptions, bool *hasSubLinks, bool force_using)
static void get_policies_for_relation(Relation relation, CmdType cmd, Oid user_id, List **permissive_policies, List **restrictive_policies)
static void add_security_quals(int rt_index, List *permissive_policies, List *restrictive_policies, List **securityQuals, bool *hasSubLinks)
OnConflictExpr * onConflict
void table_close(Relation relation, LOCKMODE lockmode)
Relation table_open(Oid relationId, LOCKMODE lockmode)