Re: [HACKERS] Serial and NULL values - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [HACKERS] Serial and NULL values
Date
Msg-id 199910300020.UAA25008@candle.pha.pa.us
Whole thread Raw
In response to Re: [HACKERS] Serial and NULL values  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] Serial and NULL values  (Brian Hirt <bhirt@mobygames.com>)
Re: [HACKERS] Serial and NULL values  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
> Bruce Momjian <maillist@candle.pha.pa.us> writes:
> >     test=> create table test (x int, y serial);
> >     CREATE
> >     test=> insert into test  values (100, null);
> >     ERROR:  ExecAppend: Fail to add null value in not null attribute y
> 
> gram.y thinks SERIAL is defined to mean NOT NULL:
> 
>             | ColId SERIAL ColPrimaryKey
>                 {
>                     ColumnDef *n = makeNode(ColumnDef);
>                     n->colname = $1;
>                     n->typename = makeNode(TypeName);
>                     n->typename->name = xlateSqlType("integer");
>                     n->raw_default = NULL;
>                     n->cooked_default = NULL;
> =================>  n->is_not_null = TRUE;
>                     n->is_sequence = TRUE;
>                     n->constraints = $3;
> 
>                     $$ = (Node *)n;
>                 }
> 
> Offhand I don't see any fundamental reason why serial columns should
> be restricted to be nonnull, but evidently someone did at some point.

The actual null is not the issue.  The issue is that if we have a
SERIAL column, and we try to put a NULL in there, shouldn't it put the
default sequence number in there?

--  Bruce Momjian                        |  http://www.op.net/~candle maillist@candle.pha.pa.us            |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Serial and NULL values
Next
From: Brian Hirt
Date:
Subject: Re: [HACKERS] Serial and NULL values