mirror of
https://github.com/postgres/postgres.git
synced 2025-12-19 17:02:53 +03:00
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.GE15326@awork2.anarazel.de
This commit is contained in:
@@ -23,6 +23,10 @@
|
||||
*/
|
||||
#define MAXATTR 40
|
||||
|
||||
#define BOOTCOL_NULL_AUTO 1
|
||||
#define BOOTCOL_NULL_FORCE_NULL 2
|
||||
#define BOOTCOL_NULL_FORCE_NOT_NULL 3
|
||||
|
||||
extern Relation boot_reldesc;
|
||||
extern Form_pg_attribute attrtypes[MAXATTR];
|
||||
extern int numattr;
|
||||
@@ -35,7 +39,7 @@ extern void err_out(void);
|
||||
extern void closerel(char *name);
|
||||
extern void boot_openrel(char *name);
|
||||
|
||||
extern void DefineAttr(char *name, char *type, int attnum);
|
||||
extern void DefineAttr(char *name, char *type, int attnum, int nullness);
|
||||
extern void InsertOneTuple(Oid objectid);
|
||||
extern void InsertOneValue(char *value, int i);
|
||||
extern void InsertOneNull(int i);
|
||||
|
||||
Reference in New Issue
Block a user