@ -6,7 +6,7 @@
* Portions Copyright ( c ) 1996 - 2005 , PostgreSQL Global Development Group
* Portions Copyright ( c ) 1996 - 2005 , PostgreSQL Global Development Group
* Portions Copyright ( c ) 1994 , Regents of the University of California
* Portions Copyright ( c ) 1994 , Regents of the University of California
*
*
* $ PostgreSQL : pgsql / src / backend / parser / analyze . c , v 1.326 .2 .3 2006 / 10 / 11 20 : 03 : 11 tgl Exp $
* $ PostgreSQL : pgsql / src / backend / parser / analyze . c , v 1.326 .2 .4 2007 / 06 / 20 18 : 21 : 15 tgl Exp $
*
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
*/
@ -820,6 +820,7 @@ transformColumnDefinition(ParseState *pstate, CreateStmtContext *cxt,
{
{
bool is_serial ;
bool is_serial ;
bool saw_nullable ;
bool saw_nullable ;
bool saw_default ;
Constraint * constraint ;
Constraint * constraint ;
ListCell * clist ;
ListCell * clist ;
@ -938,6 +939,7 @@ transformColumnDefinition(ParseState *pstate, CreateStmtContext *cxt,
transformConstraintAttrs ( column - > constraints ) ;
transformConstraintAttrs ( column - > constraints ) ;
saw_nullable = false ;
saw_nullable = false ;
saw_default = false ;
foreach ( clist , column - > constraints )
foreach ( clist , column - > constraints )
{
{
@ -982,13 +984,15 @@ transformColumnDefinition(ParseState *pstate, CreateStmtContext *cxt,
break ;
break ;
case CONSTR_DEFAULT :
case CONSTR_DEFAULT :
if ( column - > r aw_default ! = NULL )
if ( s aw_default)
ereport ( ERROR ,
ereport ( ERROR ,
( errcode ( ERRCODE_SYNTAX_ERROR ) ,
( errcode ( ERRCODE_SYNTAX_ERROR ) ,
errmsg ( " multiple default values specified for column \" %s \" of table \" %s \" " ,
errmsg ( " multiple default values specified for column \" %s \" of table \" %s \" " ,
column - > colname , cxt - > relation - > relname ) ) ) ;
column - > colname , cxt - > relation - > relname ) ) ) ;
/* Note: DEFAULT NULL maps to constraint->raw_expr == NULL */
column - > raw_default = constraint - > raw_expr ;
column - > raw_default = constraint - > raw_expr ;
Assert ( constraint - > cooked_expr = = NULL ) ;
Assert ( constraint - > cooked_expr = = NULL ) ;
saw_default = true ;
break ;
break ;
case CONSTR_PRIMARY :
case CONSTR_PRIMARY :