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,
417 List *merge_update_permissive_policies;
418 List *merge_update_restrictive_policies;
419 List *merge_delete_permissive_policies;
420 List *merge_delete_restrictive_policies;
421 List *merge_insert_permissive_policies;
422 List *merge_insert_restrictive_policies;
429 &merge_update_permissive_policies,
430 &merge_update_restrictive_policies);
438 merge_update_permissive_policies,
439 merge_update_restrictive_policies,
447 merge_update_permissive_policies,
448 merge_update_restrictive_policies,
460 List *merge_select_permissive_policies;
461 List *merge_select_restrictive_policies;
464 &merge_select_permissive_policies,
465 &merge_select_restrictive_policies);
468 merge_select_permissive_policies,
469 merge_select_restrictive_policies,
480 &merge_delete_permissive_policies,
481 &merge_delete_restrictive_policies);
489 merge_delete_permissive_policies,
490 merge_delete_restrictive_policies,
501 &merge_insert_permissive_policies,
502 &merge_insert_restrictive_policies);
506 merge_insert_permissive_policies,
507 merge_insert_restrictive_policies,
526 *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)