PostgreSQL Source Code
git master
|
Go to the source code of this file.
Macros | |
#define | RULE_FIRES_ON_ORIGIN 'O' |
#define | RULE_FIRES_ALWAYS 'A' |
#define | RULE_FIRES_ON_REPLICA 'R' |
#define | RULE_DISABLED 'D' |
Functions | |
ObjectAddress | DefineRule (RuleStmt *stmt, const char *queryString) |
ObjectAddress | DefineQueryRewrite (const char *rulename, Oid event_relid, Node *event_qual, CmdType event_type, bool is_instead, bool replace, List *action) |
ObjectAddress | RenameRewriteRule (RangeVar *relation, const char *oldName, const char *newName) |
void | setRuleCheckAsUser (Node *node, Oid userid) |
void | EnableDisableRule (Relation rel, const char *rulename, char fires_when) |
#define RULE_DISABLED 'D' |
Definition at line 24 of file rewriteDefine.h.
#define RULE_FIRES_ALWAYS 'A' |
Definition at line 22 of file rewriteDefine.h.
#define RULE_FIRES_ON_ORIGIN 'O' |
Definition at line 21 of file rewriteDefine.h.
#define RULE_FIRES_ON_REPLICA 'R' |
Definition at line 23 of file rewriteDefine.h.
ObjectAddress DefineQueryRewrite | ( | const char * | rulename, |
Oid | event_relid, | ||
Node * | event_qual, | ||
CmdType | event_type, | ||
bool | is_instead, | ||
bool | replace, | ||
List * | action | ||
) |
Definition at line 233 of file rewriteDefine.c.
References AccessExclusiveLock, aclcheck_error(), ACLCHECK_NOT_OWNER, generate_unaccent_rules::action, allowSystemTableMods, Assert(), CatalogTupleUpdate(), checkRuleResultList(), ObjectAddress::classId, CMD_SELECT, CommandCounterIncrement(), Query::commandType, deleteDependencyRecordsFor(), DeleteSystemAttributeTuples(), DROP_RESTRICT, elog(), ereport, errcode(), errdetail_relkind_not_supported(), errhint(), errmsg(), ERROR, ExecDropSingleTupleTableSlot(), ForwardScanDirection, get_relkind_objtype(), getInsertSelectQuery(), GetLatestSnapshot(), GETSTRUCT, GetUserId(), has_superclass(), Query::hasModifyingCTE, heap_freetuple(), HeapTupleIsValid, i, InsertRule(), InvalidMultiXactId, InvalidOid, InvalidTransactionId, IsSystemRelation(), lfirst_node, linitial_node, list_length(), NAMEDATALEN, NIL, NoLock, RuleLock::numLocks, ObjectAddressSet, ObjectAddress::objectId, ObjectIdGetDatum, ObjectAddress::objectSubId, OidIsValid, PERFORM_DELETION_INTERNAL, performDeletion(), pg_class_ownercheck(), PRS2_NEW_VARNO, PRS2_OLD_VARNO, pstrdup(), RelationData::rd_rel, RelationData::rd_rules, RegisterSnapshot(), relation_has_policies(), RelationDropStorage(), RelationGetDescr, RelationGetRelationName, RelationGetRelid, RELOID, Query::resultRelation, Query::returningList, RowExclusiveLock, RuleLock::rules, SearchSysCacheCopy1, SetRelationRuleStatus(), HeapTupleData::t_self, table_beginscan(), table_close(), table_endscan(), table_open(), table_scan_getnextslot(), table_slot_create(), Query::targetList, UnregisterSnapshot(), and ViewSelectRuleName.
Referenced by DefineRule(), and DefineViewRules().
ObjectAddress DefineRule | ( | RuleStmt * | stmt, |
const char * | queryString | ||
) |
Definition at line 199 of file rewriteDefine.c.
References AccessExclusiveLock, DefineQueryRewrite(), RuleStmt::event, RuleStmt::instead, RangeVarGetRelid, RuleStmt::relation, RuleStmt::replace, RuleStmt::rulename, and transformRuleStmt().
Referenced by ProcessUtilitySlow().
void EnableDisableRule | ( | Relation | rel, |
const char * | rulename, | ||
char | fires_when | ||
) |
Definition at line 857 of file rewriteDefine.c.
References aclcheck_error(), ACLCHECK_NOT_OWNER, Assert(), CacheInvalidateRelcache(), CatalogTupleUpdate(), CharGetDatum, DatumGetChar, ereport, errcode(), errmsg(), ERROR, get_rel_name(), get_rel_relkind(), get_relkind_objtype(), GETSTRUCT, GetUserId(), heap_freetuple(), HeapTupleIsValid, InvokeObjectPostAlterHook, ObjectIdGetDatum, pg_class_ownercheck(), PointerGetDatum, RelationGetRelid, RowExclusiveLock, RULERELNAME, SearchSysCacheCopy2, HeapTupleData::t_self, table_close(), and table_open().
Referenced by ATExecEnableDisableRule().
ObjectAddress RenameRewriteRule | ( | RangeVar * | relation, |
const char * | oldName, | ||
const char * | newName | ||
) |
Definition at line 959 of file rewriteDefine.c.
References AccessExclusiveLock, CacheInvalidateRelcache(), CatalogTupleUpdate(), CMD_SELECT, ereport, errcode(), ERRCODE_DUPLICATE_OBJECT, errmsg(), ERROR, GETSTRUCT, heap_freetuple(), HeapTupleIsValid, InvokeObjectPostAlterHook, IsDefinedRewriteRule(), namestrcpy(), NoLock, ObjectAddressSet, ObjectIdGetDatum, PointerGetDatum, RangeVarCallbackForRenameRule(), RangeVarGetRelidExtended(), relation_close(), relation_open(), RelationGetRelationName, RowExclusiveLock, RULERELNAME, SearchSysCacheCopy2, HeapTupleData::t_self, table_close(), and table_open().
Referenced by ExecRenameStmt().
Definition at line 800 of file rewriteDefine.c.
References setRuleCheckAsUser_walker().
Referenced by get_row_security_policies(), and RelationBuildRuleLock().