MCPcopy Create free account
hub / github.com/apache/cloudberry / setRuleCheckAsUser_Query

Function setRuleCheckAsUser_Query

src/backend/rewrite/rewriteDefine.c:868–899  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

866}
867
868static void
869setRuleCheckAsUser_Query(Query *qry, Oid userid)
870{
871 ListCell *l;
872
873 /* Set all the RTEs in this query node */
874 foreach(l, qry->rtable)
875 {
876 RangeTblEntry *rte = (RangeTblEntry *) lfirst(l);
877
878 if (rte->rtekind == RTE_SUBQUERY)
879 {
880 /* Recurse into subquery in FROM */
881 setRuleCheckAsUser_Query(rte->subquery, userid);
882 }
883 else
884 rte->checkAsUser = userid;
885 }
886
887 /* Recurse into subquery-in-WITH */
888 foreach(l, qry->cteList)
889 {
890 CommonTableExpr *cte = (CommonTableExpr *) lfirst(l);
891
892 setRuleCheckAsUser_Query(castNode(Query, cte->ctequery), userid);
893 }
894
895 /* If there are sublinks, search for them and process their RTEs */
896 if (qry->hasSubLinks)
897 query_tree_walker(qry, setRuleCheckAsUser_walker, (void *) &userid,
898 QTW_IGNORE_RC_SUBQUERIES);
899}
900
901
902/*

Callers 1

Calls 2

query_tree_walkerFunction · 0.85
foreachFunction · 0.50

Tested by

no test coverage detected