mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Support foreign keys that reference partitioned tables
Previously, while primary keys could be made on partitioned tables, it was not possible to define foreign keys that reference those primary keys. Now it is possible to do that. Author: Álvaro Herrera Reviewed-by: Amit Langote, Jesper Pedersen Discussion: https://postgr.es/m/20181102234158.735b3fevta63msbj@alvherre.pgsql
This commit is contained in:
@@ -76,10 +76,6 @@ extern void find_composite_type_dependencies(Oid typeOid,
|
||||
|
||||
extern void check_of_type(HeapTuple typetuple);
|
||||
|
||||
extern void createForeignKeyTriggers(Relation rel, Oid refRelOid,
|
||||
Constraint *fkconstraint, Oid constraintOid,
|
||||
Oid indexOid, bool create_action);
|
||||
|
||||
extern void register_on_commit_action(Oid relid, OnCommitAction action);
|
||||
extern void remove_on_commit_action(Oid relid);
|
||||
|
||||
|
@@ -263,6 +263,8 @@ extern bool RI_FKey_fk_upd_check_required(Trigger *trigger, Relation fk_rel,
|
||||
TupleTableSlot *old_slot, TupleTableSlot *new_slot);
|
||||
extern bool RI_Initial_Check(Trigger *trigger,
|
||||
Relation fk_rel, Relation pk_rel);
|
||||
extern void RI_PartitionRemove_Check(Trigger *trigger, Relation fk_rel,
|
||||
Relation pk_rel);
|
||||
|
||||
/* result values for RI_FKey_trigger_type: */
|
||||
#define RI_TRIGGER_PK 1 /* is a trigger on the PK relation */
|
||||
|
@@ -22,6 +22,7 @@ extern char *pg_get_indexdef_string(Oid indexrelid);
|
||||
extern char *pg_get_indexdef_columns(Oid indexrelid, bool pretty);
|
||||
|
||||
extern char *pg_get_partkeydef_columns(Oid relid, bool pretty);
|
||||
extern char *pg_get_partconstrdef_string(Oid partitionId, char *aliasname);
|
||||
|
||||
extern char *pg_get_constraintdef_command(Oid constraintId);
|
||||
extern char *deparse_expression(Node *expr, List *dpcontext,
|
||||
|
Reference in New Issue
Block a user