| From: | Jeevan Chalke <jeevan(dot)chalke(at)enterprisedb(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)2ndquadrant(dot)com> | 
| Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: NOT NULL markings for BKI columns | 
| Date: | 2015-04-08 06:49:46 | 
| Message-ID: | CAM2+6=VPoow5PqgqiTjPX4QNeokb7op8aD_8Zg3QnHZMvvU0GQ@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Hi Andres,
Following commit (related to this discussion),
added a bug when we use BKI_FORCE_NULL.
commit eb68379c38202180bc8e33fb9987284e314b7fc8
Author: Andres Freund <andres(at)anarazel(dot)de>
Date:   Sat Feb 21 22:25:49 2015 +0100
Allow forcing nullness of columns during bootstrap.
    Bootstrap determines whether a column is null based on simple builtin
    rules. Those work surprisingly well, but nonetheless a few existing
    columns aren't set correctly. Additionally there is at least one patch
    sent to hackers where forcing the nullness of a column would be helpful.
    The boostrap format has gained FORCE [NOT] NULL for this, which will be
    emitted by genbki.pl when BKI_FORCE_(NOT_)?NULL is specified for a
    column in a catalog header.
This patch doesn't change the marking of any existing columns.
Discussion: 20150215170014(dot)GE15326(at)awork2(dot)anarazel(dot)de
Specifically, this code chunk:
+                   if (defined $attopt)
+                   {
+                       if ($attopt eq 'PG_FORCE_NULL')
+                       {
+                           $row{'forcenull'} = 1;
+                       }
+                       elsif ($attopt eq 'BKI_FORCE_NOT_NULL')
+                       {
+                           $row{'forcenotnull'} = 1;
+                       }
+                       else
+                       {
+                           die "unknown column option $attopt on column
$attname"
+                       }
+                   }
In case of BKI_FORCE_NULL, it is ending up in else part and throwing an
error.
We should have BKI_FORCE_NULL instead of PG_FORCE_NULL in the comparison.
Attached patch which does that.
Thanks
-- 
Jeevan B Chalke
Principal Software Engineer, Product Development
EnterpriseDB Corporation
The Enterprise PostgreSQL Company
| Attachment | Content-Type | Size | 
|---|---|---|
| fix_make_error_with_BKI_FORCE_NULL.patch | application/x-download | 379 bytes | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dmitry Voronin | 2015-04-08 07:32:02 | ConfigData in postgresql.conf | 
| Previous Message | Max Filippov | 2015-04-08 06:31:55 | Re: configure can't detect proper pthread flags |