|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.234 2007/10/12 18:55:12 tgl Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.235 2007/11/11 19:22:48 tgl Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -899,8 +899,7 @@ MergeAttributes(List *schema, List *supers, bool istemp,
|
899 | 899 | (errmsg("merging multiple inherited definitions of column \"%s\"",
|
900 | 900 | attributeName)));
|
901 | 901 | def= (ColumnDef*)list_nth(inhSchema,exist_attno-1);
|
902 |
| -defTypeId=typenameTypeId(NULL,def->typename); |
903 |
| -deftypmod=typenameTypeMod(NULL,def->typename,defTypeId); |
| 902 | +defTypeId=typenameTypeId(NULL,def->typename,&deftypmod); |
904 | 903 | if (defTypeId!=attribute->atttypid||
|
905 | 904 | deftypmod!=attribute->atttypmod)
|
906 | 905 | ereport(ERROR,
|
@@ -1044,10 +1043,8 @@ MergeAttributes(List *schema, List *supers, bool istemp,
|
1044 | 1043 | (errmsg("merging column \"%s\" with inherited definition",
|
1045 | 1044 | attributeName)));
|
1046 | 1045 | def= (ColumnDef*)list_nth(inhSchema,exist_attno-1);
|
1047 |
| -defTypeId=typenameTypeId(NULL,def->typename); |
1048 |
| -deftypmod=typenameTypeMod(NULL,def->typename,defTypeId); |
1049 |
| -newTypeId=typenameTypeId(NULL,newdef->typename); |
1050 |
| -newtypmod=typenameTypeMod(NULL,newdef->typename,newTypeId); |
| 1046 | +defTypeId=typenameTypeId(NULL,def->typename,&deftypmod); |
| 1047 | +newTypeId=typenameTypeId(NULL,newdef->typename,&newtypmod); |
1051 | 1048 | if (defTypeId!=newTypeId||deftypmod!=newtypmod)
|
1052 | 1049 | ereport(ERROR,
|
1053 | 1050 | (errcode(ERRCODE_DATATYPE_MISMATCH),
|
@@ -3018,8 +3015,7 @@ ATExecAddColumn(AlteredTableInfo *tab, Relation rel,
|
3018 | 3015 | int32ctypmod;
|
3019 | 3016 |
|
3020 | 3017 | /* Okay if child matches by type */
|
3021 |
| -ctypeId=typenameTypeId(NULL,colDef->typename); |
3022 |
| -ctypmod=typenameTypeMod(NULL,colDef->typename,ctypeId); |
| 3018 | +ctypeId=typenameTypeId(NULL,colDef->typename,&ctypmod); |
3023 | 3019 | if (ctypeId!=childatt->atttypid||
|
3024 | 3020 | ctypmod!=childatt->atttypmod)
|
3025 | 3021 | ereport(ERROR,
|
@@ -3074,10 +3070,9 @@ ATExecAddColumn(AlteredTableInfo *tab, Relation rel,
|
3074 | 3070 | MaxHeapAttributeNumber)));
|
3075 | 3071 | i=minattnum+1;
|
3076 | 3072 |
|
3077 |
| -typeTuple=typenameType(NULL,colDef->typename); |
| 3073 | +typeTuple=typenameType(NULL,colDef->typename,&typmod); |
3078 | 3074 | tform= (Form_pg_type)GETSTRUCT(typeTuple);
|
3079 | 3075 | typeOid=HeapTupleGetOid(typeTuple);
|
3080 |
| -typmod=typenameTypeMod(NULL,colDef->typename,typeOid); |
3081 | 3076 |
|
3082 | 3077 | /* make sure datatype is legal for a column */
|
3083 | 3078 | CheckAttributeType(colDef->colname,typeOid);
|
@@ -4777,8 +4772,7 @@ ATPrepAlterColumnType(List **wqueue,
|
4777 | 4772 | colName)));
|
4778 | 4773 |
|
4779 | 4774 | /* Look up the target type */
|
4780 |
| -targettype=typenameTypeId(NULL,typename); |
4781 |
| -targettypmod=typenameTypeMod(NULL,typename,targettype); |
| 4775 | +targettype=typenameTypeId(NULL,typename,&targettypmod); |
4782 | 4776 |
|
4783 | 4777 | /* make sure datatype is legal for a column */
|
4784 | 4778 | CheckAttributeType(colName,targettype);
|
@@ -4905,10 +4899,9 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
|
4905 | 4899 | colName)));
|
4906 | 4900 |
|
4907 | 4901 | /* Look up the target type (should not fail, since prep found it) */
|
4908 |
| -typeTuple=typenameType(NULL,typename); |
| 4902 | +typeTuple=typenameType(NULL,typename,&targettypmod); |
4909 | 4903 | tform= (Form_pg_type)GETSTRUCT(typeTuple);
|
4910 | 4904 | targettype=HeapTupleGetOid(typeTuple);
|
4911 |
| -targettypmod=typenameTypeMod(NULL,typename,targettype); |
4912 | 4905 |
|
4913 | 4906 | /*
|
4914 | 4907 | * If there is a default expression for the column, get it and ensure we
|
|