Need your suggestions.
initially_valid flag is added to make column constraint valid. (commit : 

IFAICU, initially_valid and skip_validation values are mutually exclusive at 
constraint creation(ref: gram.y), unless it set explicitly.

Can we pass initially_valid instead of !skip_validation to StoreRelCheck() in 
AddRelationNewConstraints(), as shown below?

diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 7d7d062..04c4f8f 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -2349,7 +2349,7 @@ AddRelationNewConstraints(Relation rel,
* OK, store it.
constrOid =
-        StoreRelCheck(rel, ccname, expr, !cdef->skip_validation, is_local,
+        StoreRelCheck(rel, ccname, expr, cdef->initially_valid, is_local,
is_local ? 0 : 1, cdef->is_no_inherit, is_internal);



This will make code more readable & in my case this could enable to skip 
validation of existing data as well as mark check constraint valid, when we 
have assurance that modified/added constraint are valid.

Comments? Thoughts? 

Amul Sul

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to