let me put it in other words, is there any harm use of initially_valid instead 
of !skip_validation?

Earlier to commit I mentioned in my first post, there is only one flag, IMO 
i.e. skip_validation, which are serving both purpose, setting 
pg_constraint.convalidated & decide to skip or validate existing data.

Now, if we have two flag, which can separately use for there respective 
purpose, then why do you think that it is not readable? 

>As Marko points out that would be actually a new
>SQL-level feature that requires much more than changing that line.

May be yes.

Regards, Amul Sul



On Friday, 4 December 2015 6:21 AM, Amit Langote 
<langote_amit...@lab.ntt.co.jp> wrote:
On 2015/12/03 20:44, amul sul wrote:
>> On Thursday, 3 December 2015 4:36 PM, Amit Langote 
>> <langote_amit...@lab.ntt.co.jp> wrote:
>> Especially from a readability standpoint, I think using skip_validation may 
>> be more apt. 
>> Why - the corresponding parameter of StoreRelCheck() dictates what's stored 
>> in pg_constraint.convalidated.
> 
> Why not? won't initially_valid flag serve same purpose ?

Yes it could, but IMO, it wouldn't be a readability improvement. As I
said, you could think of the variable/argument as delivering whether the
clause is marked NOT VALID or not. Also, see below.

> 
>> So, if skip_validation is 'true' because user specified the constraint NOT 
>> VALID,
>> StoreRelCheck() will store the constraint with convalidated as 'false'
> 
> I guess thats was added before initially_valid flag. As I said, in normal 
> case gram.y take care of skip_validation & initially_valid values, if one is 
> 'true' other will be 'false'. 
> 
>> The user will have to separately validate the constraint by issuing a ALTER 
>> TABLE VALIDATE CONSTRAINT
>> command at a time of their choosing.
> 
> 
> This could be time consuming operation for big table, If I am pretty much 
> sure that my constraint will be valid, simply I could set both 
> flag(initially_valid & skip_validation) to true.

There is currently no support for adding a constraint after-the-fact (that
is, using ALTER TABLE) and marking it valid  without actually verifying it
by scanning the table. As Marko points out that would be actually a new
SQL-level feature that requires much more than changing that line.


Thanks,
Amit




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


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

Reply via email to