New pg_attribute.atttypmod for type-specific information like
authorBruce Momjian
Fri, 16 Jan 1998 23:21:07 +0000 (23:21 +0000)
committerBruce Momjian
Fri, 16 Jan 1998 23:21:07 +0000 (23:21 +0000)
varchar length.

Cleans up code so attlen is always length.

Removed varchar() hack added earlier.

Will fix bug in selecting varchar() fields, and varchar() can be
variable length.

27 files changed:
src/backend/access/common/tupdesc.c
src/backend/catalog/catalog.c
src/backend/catalog/index.c
src/backend/commands/command.c
src/backend/commands/copy.c
src/backend/commands/sequence.c
src/backend/executor/execAmi.c
src/backend/executor/execMain.c
src/backend/executor/execUtils.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/outfuncs.c
src/backend/optimizer/prep/preptlist.c
src/backend/parser/gram.y
src/backend/parser/parse_expr.c
src/backend/parser/parse_oper.c
src/backend/parser/parse_relation.c
src/backend/parser/parse_target.c
src/backend/parser/parse_type.c
src/backend/utils/adt/varchar.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.h
src/include/catalog/pg_attribute.h
src/include/catalog/pg_class.h
src/include/nodes/parsenodes.h
src/include/parser/parse_expr.h
src/include/parser/parse_type.h
src/include/utils/builtins.h

index 9324a95c7683c968a2d2c2f2e18e9aaef2e4e2e1..f23c8e8657260ef70e594d8183034cb5f0815df5 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.31 1998/01/07 21:00:45 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.32 1998/01/16 23:19:16 momjian Exp $
  *
  * NOTES
  *   some of the executor utility code such as "ExecTypeFromTL" should be
@@ -301,11 +301,12 @@ TupleDescInitEntry(TupleDesc desc,
 
    att->attdisbursion = 0;     /* dummy value */
    att->attcacheoff = -1;
+   att->atttypmod = 0;
 
    att->attnum = attributeNumber;
    att->attnelems = attdim;
    att->attisset = attisset;
-
+   
    att->attnotnull = false;
    att->atthasdef = false;
 
@@ -512,17 +513,7 @@ BuildDescForRelation(List *schema, char *relname)
                     typename);
        }
 
-       /*
-        * this is for char() and varchar(). When an entry is of type
-        * char() or varchar(), typlen is set to the appropriate length,
-        * which we'll use here instead. (The catalog lookup only returns
-        * the length of bpchar and varchar which is not what we want!) -
-        * ay 6/95
-        */
-       if (entry->typename->typlen > 0)
-       {
-           desc->attrs[attnum - 1]->attlen = entry->typename->typlen;
-       }
+       desc->attrs[attnum - 1]->atttypmod = entry->typename->typmod;
 
        /* This is for constraints */
        if (entry->is_not_null)
index 2669a4481fa6ce00c1bbe189cb6489301fc85482..f45685ea8a24261fceec0da02b3c9757b06a394a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.12 1998/01/06 19:42:26 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.13 1998/01/16 23:19:23 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -190,16 +190,9 @@ fillatt(TupleDesc tupleDesc)
             * and byval, since those were already set in
             * TupleDescInitEntry.  In fact, this seems redundant here,
             * but who knows what I'll break if I take it out...
-            *
-            * same for char() and varchar() stuff. I share the same
-            * sentiments. This function is poorly written anyway. -ay
-            * 6/95
             */
-           if (!(*attributeP)->attisset &&
-               (*attributeP)->atttypid != BPCHAROID &&
-               (*attributeP)->atttypid != VARCHAROID)
+           if (!(*attributeP)->attisset)
            {
-
                typp = (TypeTupleForm) GETSTRUCT(tuple);        /* XXX */
                (*attributeP)->attlen = typp->typlen;
                (*attributeP)->attbyval = typp->typbyval;
index c98c877d7d25c76f8460351a4ba056394f7b7ae6..6772f8b6658cd9a0fb68c9a1adbc064dcb9430ef 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.35 1998/01/15 19:42:27 pgsql Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.36 1998/01/16 23:19:27 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -107,6 +107,7 @@ DefaultBuild(Relation heapRelation, Relation indexRelation,
  *     AttrNumber      attnum;
  *     uint32          attnelems;
  *     int32           attcacheoff;
+ *     int16           atttypmod;
  *     bool            attbyval;
  *     bool            attisset;
  *     char            attalign;
@@ -117,12 +118,12 @@ DefaultBuild(Relation heapRelation, Relation indexRelation,
  * ----------------------------------------------------------------
  */
 static FormData_pg_attribute sysatts[] = {
-   {0l, {"ctid"}, 27l, 0l, 6, -1, 0, -1, '\0', '\0', 'i', '\0', '\0'},
-   {0l, {"oid"}, 26l, 0l, 4, -2, 0, -1, '\001', '\0', 'i', '\0', '\0'},
-   {0l, {"xmin"}, 28l, 0l, 4, -3, 0, -1, '\0', '\0', 'i', '\0', '\0'},
-   {0l, {"cmin"}, 29l, 0l, 4, -4, 0, -1, '\001', '\0', 'i', '\0', '\0'},
-   {0l, {"xmax"}, 28l, 0l, 4, -5, 0, -1, '\0', '\0', 'i', '\0', '\0'},
-   {0l, {"cmax"}, 29l, 0l, 4, -6, 0, -1, '\001', '\0', 'i', '\0', '\0'},
+   {0l, {"ctid"}, 27l, 0l, 6, -1, 0, -1, 0, '\0', '\0', 'i', '\0', '\0'},
+   {0l, {"oid"},  26l, 0l, 4, -2, 0, -1, 0, '\001', '\0', 'i', '\0', '\0'},
+   {0l, {"xmin"}, 28l, 0l, 4, -3, 0, -1, 0, '\0', '\0', 'i', '\0', '\0'},
+   {0l, {"cmin"}, 29l, 0l, 4, -4, 0, -1, 0, '\001', '\0', 'i', '\0', '\0'},
+   {0l, {"xmax"}, 28l, 0l, 4, -5, 0, -1, 0, '\0', '\0', 'i', '\0', '\0'},
+   {0l, {"cmax"}, 29l, 0l, 4, -6, 0, -1, 0, '\001', '\0', 'i', '\0', '\0'},
 };
 
 /* ----------------------------------------------------------------
@@ -436,6 +437,7 @@ ConstructTupleDescriptor(Oid heapoid,
 
        ((AttributeTupleForm) to)->attnotnull = false;
        ((AttributeTupleForm) to)->atthasdef = false;
+       ((AttributeTupleForm) to)->atttypmod = 0;
 
        /*
         * if the keytype is defined, we need to change the tuple form's
@@ -454,11 +456,11 @@ ConstructTupleDescriptor(Oid heapoid,
            ((AttributeTupleForm) to)->atttypid = tup->t_oid;
            ((AttributeTupleForm) to)->attbyval =
                ((TypeTupleForm) ((char *) tup + tup->t_hoff))->typbyval;
-           if (IndexKeyType->typlen > 0)
-               ((AttributeTupleForm) to)->attlen = IndexKeyType->typlen;
-           else
-               ((AttributeTupleForm) to)->attlen =
+
+           ((AttributeTupleForm) to)->attlen =
                    ((TypeTupleForm) ((char *) tup + tup->t_hoff))->typlen;
+
+           ((AttributeTupleForm) to)->atttypmod = IndexKeyType->typmod;
        }
 
 
index d9a4281ea12a16968640e08fc2727d4220a621a9..5f7bcd2d073d5c8b19f017db703049b52bb5078f 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.23 1998/01/05 16:38:44 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.24 1998/01/16 23:19:33 momjian Exp $
  *
  * NOTES
  *   The PortalExecutorHeapMemory crap needs to be eliminated
@@ -482,11 +482,8 @@ PerformAddAttribute(char *relationName,
        }
        namestrcpy(&(attribute->attname), (char *) key[1].sk_argument);
        attribute->atttypid = typeTuple->t_oid;
-       if (colDef->typename->typlen > 0)
-           attribute->attlen = colDef->typename->typlen;
-       else
-/* bpchar, varchar, text */
-           attribute->attlen = form->typlen;
+       attribute->attlen = form->typlen;
+       attribute->atttypmod = colDef->typename->typmod;
        attribute->attnum = i;
        attribute->attbyval = form->typbyval;
        attribute->attnelems = attnelems;
index 9b5fbda69e8bc18685189f110af75110eb45f7b0..b3017dcd74f4af1a7d07cfae4fc7be390557f16d 100644 (file)
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.38 1998/01/15 19:42:36 pgsql Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.39 1998/01/16 23:19:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -574,7 +574,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
                    values[i] =
                        (Datum) (*fmgr_faddr(&in_functions[i])) (string,
                                                   elements[i],
-                                                  attr[i]->attlen);
+                                                  attr[i]->atttypmod);
 
                    /*
                     * Sanity check - by reference attributes cannot
index bf7e79d3ed1bee7ab94976d1e6ae431d2644c81a..58008dd1382bbbbf268de1bd30032fb511cdc9df 100644 (file)
@@ -98,6 +98,7 @@ DefineSequence(CreateSeqStmt *seq)
        typnam = makeNode(TypeName);
        typnam->setof = FALSE;
        typnam->arrayBounds = NULL;
+       typnam->typmod = 0;
        coldef = makeNode(ColumnDef);
        coldef->typename = typnam;
        coldef->defval = NULL;
index 675a58d649f7c48bf5d69ad3e08b720916b2752e..2349f32411e0e63f0e747e7d1fb3d8c0a4162e08 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.15 1998/01/16 05:03:45 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.16 1998/01/16 23:19:47 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -42,7 +42,6 @@
 #include "access/genam.h"
 #include "access/heapam.h"
 #include "catalog/heap.h"
-#include "catalog/pg_type.h"
 
 static Pointer
 ExecBeginScan(Relation relation, int nkeys, ScanKey skeys,
@@ -125,31 +124,6 @@ ExecOpenR(Oid relationOid, bool isindex)
    if (relation == NULL)
        elog(DEBUG, "ExecOpenR: relation == NULL, heap_open failed.");
 
-   {
-       int i;
-       Relation trel = palloc(sizeof(RelationData));
-       TupleDesc tdesc = palloc(sizeof(struct tupleDesc));
-       AttributeTupleForm *tatt =
-               palloc(sizeof(AttributeTupleForm*)*relation->rd_att->natts);
-
-       memcpy(trel, relation, sizeof(RelationData));
-       memcpy(tdesc, relation->rd_att, sizeof(struct tupleDesc));
-       trel->rd_att = tdesc;
-       tdesc->attrs = tatt;
-       
-       for (i = 0; i < relation->rd_att->natts; i++)
-       {
-           if (relation->rd_att->attrs[i]->atttypid != VARCHAROID)
-               tdesc->attrs[i] = relation->rd_att->attrs[i];
-           else
-           {
-               tdesc->attrs[i] = palloc(sizeof(FormData_pg_attribute));
-               memcpy(tdesc->attrs[i], relation->rd_att->attrs[i],
-                                           sizeof(FormData_pg_attribute));
-               tdesc->attrs[i]->attlen = -1;
-           }
-       }
-   }
    return relation;
 }
 
index b4716cc2bb5fe6c6c12ab8b455d006e4e0bca676..ecfc4d9a952b8456410a5773aae615ed08b68841 100644 (file)
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.38 1998/01/14 15:48:09 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.39 1998/01/16 23:19:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -563,13 +563,8 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate)
                 */
                tupdesc = CreateTupleDescCopy(tupType);
 
-               /* fixup to prevent zero-length columns in create */
-               setVarAttrLenForCreateTable(tupdesc, targetList, rangeTable);
-
                intoRelationId = heap_create_with_catalog(intoName, tupdesc);
-#ifdef NOT_USED                    /* it's copy ... */
-               resetVarAttrLenForCreateTable(tupdesc);
-#endif
+
                FreeTupleDesc(tupdesc);
 
                /* ----------------
index 75f44e865ea8f48ed57e5e22c2db6ed9572b94ff..8d93ecf9cc07651c8cce7b0e65cae3d3493b6f72 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.23 1998/01/07 21:02:50 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.24 1998/01/16 23:19:52 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1177,76 +1177,3 @@ ExecInsertIndexTuples(TupleTableSlot *slot,
    if (econtext != NULL)
        pfree(econtext);
 }
-
-/* ----------------------------------------------------------------
- * setVarAttrLenForCreateTable -
- *   called when we do a SELECT * INTO TABLE tab
- *   needed for attributes that have a defined length, like bpchar and
- *   varchar
- * ----------------------------------------------------------------
- */
-void
-setVarAttrLenForCreateTable(TupleDesc tupType, List *targetList,
-                           List *rangeTable)
-{
-   List       *tl;
-   TargetEntry *tle;
-   Node       *expr;
-   int         varno;
-
-   tl = targetList;
-
-   for (varno = 0; varno < tupType->natts; varno++)
-   {
-       tle = lfirst(tl);
-
-       if (tupType->attrs[varno]->atttypid == BPCHAROID ||
-           tupType->attrs[varno]->atttypid == VARCHAROID)
-       {
-           expr = tle->expr;
-           if (expr && IsA(expr, Var))
-           {
-               Var        *var;
-               RangeTblEntry *rtentry;
-               Relation    rd;
-
-               var = (Var *) expr;
-               rtentry = rt_fetch(var->varnoold, rangeTable);
-               rd = heap_open(rtentry->relid);
-               /* set length to that defined in relation */
-               tupType->attrs[varno]->attlen =
-                   (*rd->rd_att->attrs[var->varoattno - 1]).attlen;
-               heap_close(rd);
-           }
-           else
-               elog(ERROR, "setVarAttrLenForCreateTable: can't get length for variable-length field");
-       }
-       tl = lnext(tl);
-   }
-}
-
-
-#ifdef NOT_USED                    /* look at execMain.c */
-/* ----------------------------------------------------------------
- * resetVarAttrLenForCreateTable -
- *   called when we do a SELECT * INTO TABLE tab
- *   needed for attributes that have a defined length, like bpchar and
- *   varchar
- *   resets length to -1 for those types
- * ----------------------------------------------------------------
- */
-void
-resetVarAttrLenForCreateTable(TupleDesc tupType)
-{
-   int         varno;
-
-   for (varno = 0; varno < tupType->natts; varno++)
-   {
-       if (tupType->attrs[varno]->atttypid == BPCHAROID ||
-           tupType->attrs[varno]->atttypid == VARCHAROID)
-           /* set length to original -1 */
-           tupType->attrs[varno]->attlen = -1;
-   }
-}
-
-#endif
index e0ccc63f3504c8dd4ea257d9816b2671f3f7d3ae..fe045539223572544678f039f322bce343330c1d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.30 1998/01/15 18:59:20 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.31 1998/01/16 23:19:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1480,8 +1480,8 @@ _copyTypeName(TypeName *from)
        newnode->name = pstrdup(from->name);
    newnode->timezone = from->timezone;
    newnode->setof = from->setof;
+   newnode->typmod = from->typmod;
    Node_Copy(from, newnode, arrayBounds);
-   newnode->typlen = from->typlen;
 
    return newnode;
 }
index ba4b27f822c41108bc391e8acf9b88a51c12c2fd..41f3022c135e2f92733459921d91e7dbf4edb126 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.21 1998/01/15 18:59:26 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.22 1998/01/16 23:19:59 momjian Exp $
  *
  * NOTES
  *   Every (plan) node in POSTGRES has an associated "out" routine which
@@ -137,11 +137,11 @@ _outTypeName(StringInfo str, TypeName *node)
    appendStringInfo(str, (node->timezone ? "true" : "false"));
    appendStringInfo(str, " :setof ");
    appendStringInfo(str, (node->setof ? "true" : "false"));
+   appendStringInfo(str, " :typmod ");
+   sprintf(buf," %d ", node->typmod);
+   appendStringInfo(str, buf);
    appendStringInfo(str, " :arrayBounds ");
    _outNode(str, node->arrayBounds);
-   appendStringInfo(str, " :typlen ");
-   sprintf(buf," %d ", node->typlen);
-   appendStringInfo(str, buf);
 }
 
 static void
index faf281985e4332810c9a6520451672394e341da4..e92fbb333220622046f544f20705d2674bac033d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.6 1997/11/25 22:00:06 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/optimizer/prep/preptlist.c,v 1.7 1998/01/16 23:20:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -278,13 +278,9 @@ new_relation_targetlist(Oid relid, Index rt_index, NodeTag node_type)
         */
        attisset = get_attisset( /* type_id, */ relid, attname);
        if (attisset)
-       {
            typlen = typeLen(typeidType(OIDOID));
-       }
        else
-       {
            typlen = get_typlen(atttype);
-       }
 
        switch (node_type)
        {
index d2ed0d2633f5470bb647006b21381f3664861a87..77a2e0b7c2911718ba35c5a2fde6faa566e2f0a2 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.90 1998/01/11 20:01:59 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.91 1998/01/16 23:20:14 momjian Exp $
  *
  * HISTORY
  *   AUTHOR            DATE            MAJOR EVENT
@@ -2754,7 +2754,7 @@ Character:  character '(' Iconst ')'
                     * between this and "text" is that we blank-pad and
                     * truncate where necessary
                     */
-                   $$->typlen = VARHDRSZ + $3;
+                   $$->typmod = VARHDRSZ + $3;
                }
        | character
                {
index c17c3e9d48ec17802ac298722612cb0ffd48fe26..00efc044dcdf7a4188b4cf3806343f19fa9a232a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.6 1998/01/05 03:32:27 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.7 1998/01/16 23:20:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -30,7 +30,7 @@
 #include "parser/parse_target.h"
 #include "utils/builtins.h"
 
-static Node *parser_typecast(Value *expr, TypeName *typename, int typlen);
+static Node *parser_typecast(Value *expr, TypeName *typename, int atttypmod);
 
 /*
  * transformExpr -
@@ -403,7 +403,7 @@ handleNestedDots(ParseState *pstate, Attr *attr, int *curr_resno, int precedence
 }
 
 static Node       *
-parser_typecast(Value *expr, TypeName *typename, int typlen)
+parser_typecast(Value *expr, TypeName *typename, int atttypmod)
 {
    /* check for passing non-ints */
    Const      *adt;
@@ -492,7 +492,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen)
    }
 #endif
 
-   cp = stringTypeString(tp, const_string, typlen);
+   cp = stringTypeString(tp, const_string, atttypmod);
 
    if (!typeByVal(tp))
    {
@@ -540,7 +540,7 @@ parser_typecast(Value *expr, TypeName *typename, int typlen)
 }
 
 Node      *
-parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen)
+parser_typecast2(Node *expr, Oid exprType, Type tp, int atttypmod)
 {
    /* check for passing non-ints */
    Const      *adt;
@@ -627,8 +627,7 @@ parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen)
        return ((Node *) adt);
    }
 
-   cp = stringTypeString(tp, const_string, typlen);
-
+   cp = stringTypeString(tp, const_string, atttypmod);
 
    if (!typeByVal(tp))
    {
index 66961ca79ac6bcf6b2b4b100372374d97bc564f7..253fed7ced4af44a7365ef26bc41c672e4220421 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.6 1998/01/15 20:54:28 scrappy Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.7 1998/01/16 23:20:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -401,9 +401,9 @@ unary_oper_get_candidates(char *op,
 
    *candidates = NULL;
 
-   fmgr_info(NameEqualRegProcedure, (func_ptr *) &opKey[0].sk_func);
+   fmgr_info(NameEqualRegProcedure, (FmgrInfo *) &opKey[0].sk_func);
    opKey[0].sk_argument = NameGetDatum(op);
-   fmgr_info(CharacterEqualRegProcedure, (func_ptr *) &opKey[1].sk_func);
+   fmgr_info(CharacterEqualRegProcedure, (FmgrInfo *) &opKey[1].sk_func);
    opKey[1].sk_argument = CharGetDatum(rightleft);
 
    /* currently, only "unknown" can be coerced */
index dc5a11a8df5a44a054f9072deb54dbc472e241af..692b1eb116ee4febef9d0748415575d68062a056 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.5 1998/01/05 03:32:30 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v 1.6 1998/01/16 23:20:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -430,10 +430,15 @@ checkTargetTypes(ParseState *pstate, char *target_colname,
        elog(ERROR, "Type of %s does not match target column %s",
             colname, target_colname);
 
-   if ((attrtype_id == BPCHAROID || attrtype_id == VARCHAROID) &&
-       rd->rd_att->attrs[resdomno_id - 1]->attlen !=
-   pstate->p_target_relation->rd_att->attrs[resdomno_target - 1]->attlen)
-       elog(ERROR, "Length of %s does not match length of target column %s",
+   if (attrtype_id == BPCHAROID &&
+       rd->rd_att->attrs[resdomno_id - 1]->atttypmod !=
+   pstate->p_target_relation->rd_att->attrs[resdomno_target - 1]->atttypmod)
+       elog(ERROR, "Length of %s is longer than length of target column %s",
+            colname, target_colname);
+   if (attrtype_id == VARCHAROID &&
+       rd->rd_att->attrs[resdomno_id - 1]->atttypmod >
+   pstate->p_target_relation->rd_att->attrs[resdomno_target - 1]->atttypmod)
+       elog(ERROR, "Length of %s is longer than length of target column %s",
             colname, target_colname);
 
    heap_close(rd);
index eccdbda6b4e1507d6ad886fc0ba44c42f8e59853..895411aa1da3edb677a8ef83df10d0a15cb06658 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.5 1998/01/05 03:32:31 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.6 1998/01/16 23:20:22 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -326,7 +326,8 @@ make_targetlist_expr(ParseState *pstate,
    Oid         type_id,
                attrtype;
    int         type_len,
-               attrlen;
+               attrlen,
+               attrtypmod;
    int         resdomno;
    Relation    rd;
    bool        attrisset;
@@ -360,14 +361,8 @@ make_targetlist_expr(ParseState *pstate,
        attrtype = attnumTypeId(rd, resdomno);
        if ((arrayRef != NIL) && (lfirst(arrayRef) == NIL))
            attrtype = GetArrayElementType(attrtype);
-       if (attrtype == BPCHAROID || attrtype == VARCHAROID)
-       {
-           attrlen = rd->rd_att->attrs[resdomno - 1]->attlen;
-       }
-       else
-       {
-           attrlen = typeLen(typeidType(attrtype));
-       }
+       attrlen = typeLen(typeidType(attrtype));
+       attrtypmod = rd->rd_att->attrs[resdomno - 1]->atttypmod;
 #if 0
        if (Input_is_string && Typecast_ok)
        {
@@ -438,13 +433,13 @@ make_targetlist_expr(ParseState *pstate,
                    expr = (Node *) parser_typecast2(expr,
                                                     type_id,
                                                     typeidType(typelem),
-                                                    attrlen);
+                                                    attrtypmod);
                }
                else
                    expr = (Node *) parser_typecast2(expr,
                                                     type_id,
                                                   typeidType(attrtype),
-                                                    attrlen);
+                                                    attrtypmod);
            }
            else
            {
index ef238f9fd07eb12dbf1aef837ff72fa888a88187..4562623808edb3f24d18110be8c55ebade5eb703 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/parser/parse_type.c,v 1.3 1998/01/05 03:32:33 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/parser/parse_type.c,v 1.4 1998/01/16 23:20:23 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -136,15 +136,14 @@ typeTypeFlag(Type t)
 /* Given a type structure and a string, returns the internal form of
    that string */
 char *
-stringTypeString(Type tp, char *string, int typlen)
+stringTypeString(Type tp, char *string, int atttypmod)
 {
    Oid         op;
    Oid         typelem;
 
    op = ((TypeTupleForm) GETSTRUCT(tp))->typinput;
    typelem = ((TypeTupleForm) GETSTRUCT(tp))->typelem; /* XXX - used for array_in */
-   /* typlen is for bpcharin() and varcharin() */
-   return ((char *) fmgr(op, string, typelem, typlen));
+   return ((char *) fmgr(op, string, typelem, atttypmod));
 }
 
 /* Given a type id, returns the out-conversion function of the type */
index 2aaf0a58b8bd1f057856bec4211fe741071dbf31..cb17194e252eedbcc5cc96557d5df495ed6d099c 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.23 1998/01/08 06:18:18 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.24 1998/01/16 23:20:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -50,7 +50,7 @@
  *   because we pass typelem as the second argument for array_in.)
  */
 char *
-bpcharin(char *s, int dummy, int typlen)
+bpcharin(char *s, int dummy, int atttypmod)
 {
    char       *result,
               *r;
@@ -60,23 +60,23 @@ bpcharin(char *s, int dummy, int typlen)
    if (s == NULL)
        return ((char *) NULL);
 
-   if (typlen == -1)
+   if (atttypmod == -1)
    {
 
        /*
-        * this is here because some functions can't supply the typlen
+        * this is here because some functions can't supply the atttypmod
         */
        len = strlen(s);
-       typlen = len + VARHDRSZ;
+       atttypmod = len + VARHDRSZ;
    }
    else
-       len = typlen - VARHDRSZ;
+       len = atttypmod - VARHDRSZ;
 
    if (len > 4096)
        elog(ERROR, "bpcharin: length of char() must be less than 4096");
 
-   result = (char *) palloc(typlen);
-   VARSIZE(result) = typlen;
+   result = (char *) palloc(atttypmod);
+   VARSIZE(result) = atttypmod;
    r = VARDATA(result);
    for (i = 0; i < len; i++, r++, s++)
    {
@@ -124,7 +124,7 @@ bpcharout(char *s)
  *   because we pass typelem as the second argument for array_in.)
  */
 char *
-varcharin(char *s, int dummy, int typlen)
+varcharin(char *s, int dummy, int atttypmod)
 {
    char       *result;
    int         len;
@@ -133,8 +133,8 @@ varcharin(char *s, int dummy, int typlen)
        return ((char *) NULL);
 
    len = strlen(s) + VARHDRSZ;
-   if (typlen != -1 && len > typlen)
-       len = typlen;   /* clip the string at max length */
+   if (atttypmod != -1 && len > atttypmod)
+       len = atttypmod;    /* clip the string at max length */
 
    if (len > 4096)
        elog(ERROR, "varcharin: length of char() must be less than 4096");
index ea463e32c6544a9ca8231fd406851a8cc86f7206..1e465b5296c7aaa65a44c114906f7a140eada013 100644 (file)
@@ -21,7 +21,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.59 1997/12/26 08:45:27 vadim Exp $
+ *   $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.60 1998/01/16 23:20:39 momjian Exp $
  *
  * Modifications - 6/10/96 - [email protected] - version 1.13.dhb
  *
@@ -924,8 +924,8 @@ clearTableInfo(TableInfo *tblinfo, int numTables)
            if (tblinfo[i].typnames[j])
                free(tblinfo[i].typnames[j]);
        }
-       if (tblinfo[i].attlen)
-           free((int *) tblinfo[i].attlen);
+       if (tblinfo[i].atttypmod)
+           free((int *) tblinfo[i].atttypmod);
        if (tblinfo[i].inhAttrs)
            free((int *) tblinfo[i].inhAttrs);
        if (tblinfo[i].attnames)
@@ -1613,7 +1613,7 @@ getTableAttrs(TableInfo *tblinfo, int numTables)
    char        q[MAXQUERYLEN];
    int         i_attname;
    int         i_typname;
-   int         i_attlen;
+   int         i_atttypmod;
    int         i_attnotnull;
    int         i_atthasdef;
    PGresult   *res;
@@ -1638,7 +1638,7 @@ getTableAttrs(TableInfo *tblinfo, int numTables)
                    tblinfo[i].relname,
                    g_comment_end);
 
-       sprintf(q, "SELECT a.attnum, a.attname, t.typname, a.attlen, "
+       sprintf(q, "SELECT a.attnum, a.attname, t.typname, a.atttypmod, "
                "a.attnotnull, a.atthasdef "
                "from pg_attribute a, pg_type t "
                "where a.attrelid = '%s'::oid and a.atttypid = t.oid "
@@ -1656,14 +1656,14 @@ getTableAttrs(TableInfo *tblinfo, int numTables)
 
        i_attname = PQfnumber(res, "attname");
        i_typname = PQfnumber(res, "typname");
-       i_attlen = PQfnumber(res, "attlen");
+       i_atttypmod = PQfnumber(res, "atttypmod");
        i_attnotnull = PQfnumber(res, "attnotnull");
        i_atthasdef = PQfnumber(res, "atthasdef");
 
        tblinfo[i].numatts = ntups;
        tblinfo[i].attnames = (char **) malloc(ntups * sizeof(char *));
        tblinfo[i].typnames = (char **) malloc(ntups * sizeof(char *));
-       tblinfo[i].attlen = (int *) malloc(ntups * sizeof(int));
+       tblinfo[i].atttypmod = (int *) malloc(ntups * sizeof(int));
        tblinfo[i].inhAttrs = (int *) malloc(ntups * sizeof(int));
        tblinfo[i].notnull = (bool *) malloc(ntups * sizeof(bool));
        tblinfo[i].adef_expr = (char **) malloc(ntups * sizeof(char *));
@@ -1673,9 +1673,7 @@ getTableAttrs(TableInfo *tblinfo, int numTables)
        {
            tblinfo[i].attnames[j] = strdup(PQgetvalue(res, j, i_attname));
            tblinfo[i].typnames[j] = strdup(PQgetvalue(res, j, i_typname));
-           tblinfo[i].attlen[j] = atoi(PQgetvalue(res, j, i_attlen));
-           if (tblinfo[i].attlen[j] > 0)
-               tblinfo[i].attlen[j] = tblinfo[i].attlen[j] - VARHDRSZ;
+           tblinfo[i].atttypmod[j] = atoi(PQgetvalue(res, j, i_atttypmod));
            tblinfo[i].inhAttrs[j] = 0; /* this flag is set in
                                         * flagInhAttrs() */
            tblinfo[i].notnull[j] = (PQgetvalue(res, j, i_attnotnull)[0] == 't') ? true : false;
@@ -2321,11 +2319,9 @@ dumpTables(FILE *fout, TableInfo *tblinfo, int numTables,
                                (actual_atts > 0) ? ", " : "",
                                fmtId(tblinfo[i].attnames[j]));
 
-                       /* stored length can be -1 (variable) */
-                       if (tblinfo[i].attlen[j] > 0)
-                           sprintf(q, "%s(%d)",
-                                   q,
-                                   tblinfo[i].attlen[j]);
+                       sprintf(q, "%s(%d)",
+                               q,
+                               tblinfo[i].atttypmod[j]-VARHDRSZ);
                        actual_atts++;
                    }
                    else if (!strcmp(tblinfo[i].typnames[j], "varchar"))
@@ -2336,11 +2332,9 @@ dumpTables(FILE *fout, TableInfo *tblinfo, int numTables,
                                fmtId(tblinfo[i].attnames[j]),
                                tblinfo[i].typnames[j]);
 
-                       /* stored length can be -1 (variable) */
-                       if (tblinfo[i].attlen[j] > 0)
-                           sprintf(q, "%s(%d)",
-                                   q,
-                                   tblinfo[i].attlen[j]);
+                       sprintf(q, "%s(%d)",
+                               q,
+                               tblinfo[i].atttypmod[j]-VARHDRSZ);
                        actual_atts++;
                    }
                    else
index 2e687105447891e5c96937c2642406e10fa6c1b6..9aed251ce92d1dbf753a34adcb5f40cc2c554c16 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_dump.h,v 1.28 1997/12/04 01:31:28 scrappy Exp $
+ * $Id: pg_dump.h,v 1.29 1998/01/16 23:20:43 momjian Exp $
  *
  * Modifications - 6/12/96 - [email protected] - version 1.13.dhb.2
  *
@@ -86,7 +86,7 @@ typedef struct _tableInfo
                                 * needed because the SQL tables will not
                                 * have the same order of attributes as
                                 * the POSTQUEL tables */
-   int        *attlen;         /* attribute lengths */
+   int        *atttypmod;      /* type-specific type modifier */
    char       *usename;
    int         ncheck;         /* # of CHECK expressions */
    char      **check_expr;     /* [CONSTRAINT name] CHECK expressions */
index 9be5e6ba23b1b1100ee29d5e7100bea0738ce74d..0c43065b8e1426f518b750fc9b12855773bb83d6 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_attribute.h,v 1.21 1997/12/04 00:27:47 scrappy Exp $
+ * $Id: pg_attribute.h,v 1.22 1998/01/16 23:20:49 momjian Exp $
  *
  * NOTES
  *   the genbki.sh script reads this file and generates .bki
@@ -75,8 +75,8 @@ CATALOG(pg_attribute) BOOTSTRAP
     * Note that (attnum - 1) is often used as the index to an array.
     */
    int4        attnelems;
-   int4        attcacheoff;
 
+   int4        attcacheoff;
    /*
     * fastgetattr() uses attcacheoff to cache byte offsets of attributes
     * in heap tuples.  The data actually stored in pg_attribute (-1)
@@ -84,8 +84,14 @@ CATALOG(pg_attribute) BOOTSTRAP
     * tuple descriptor, we may then update attcacheoff in the copies.
     * This speeds up the attribute walking process.
     */
-   bool        attbyval;
 
+   int2        atttypmod;
+   /*
+    * atttypmod records type-specific modifications supplied at table
+     * creation time.
+    */
+
+   bool        attbyval;
    /*
     * attbyval is a copy of the typbyval field from pg_type for this
     * attribute.  See atttypid above.  See struct TypeTupleFormData for
@@ -126,25 +132,21 @@ typedef FormData_pg_attribute *AttributeTupleForm;
  * ----------------
  */
 
-#define Natts_pg_attribute             13
+#define Natts_pg_attribute             14
 #define Anum_pg_attribute_attrelid     1
 #define Anum_pg_attribute_attname      2
 #define Anum_pg_attribute_atttypid     3
-
 #define Anum_pg_attribute_attdisbursion 4
-
 #define Anum_pg_attribute_attlen       5
 #define Anum_pg_attribute_attnum       6
-
-
-
 #define Anum_pg_attribute_attnelems        7
 #define Anum_pg_attribute_attcacheoff  8
-#define Anum_pg_attribute_attbyval     9
-#define Anum_pg_attribute_attisset     10
-#define Anum_pg_attribute_attalign     11
-#define Anum_pg_attribute_attnotnull   12
-#define Anum_pg_attribute_atthasdef        13
+#define Anum_pg_attribute_atttypmod        9
+#define Anum_pg_attribute_attbyval     10
+#define Anum_pg_attribute_attisset     11
+#define Anum_pg_attribute_attalign     12
+#define Anum_pg_attribute_attnotnull   13
+#define Anum_pg_attribute_atthasdef        14
 
 
 /* ----------------
@@ -172,265 +174,267 @@ typedef FormData_pg_attribute *AttributeTupleForm;
  * ----------------
  */
 #define Schema_pg_type \
-{ 1247l, {"typname"},     19l, 0l, NAMEDATALEN,  1, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typowner"},    26l, 0l,  4,  2, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typlen"},      21l, 0l,  2,  3, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1247l, {"typprtlen"},    21l, 0l,  2,  4, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1247l, {"typbyval"},    16l, 0l,  1,  5, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1247l, {"typtype"},     18l, 0l,  1,  6, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1247l, {"typisdefined"}, 16l, 0l,  1,  7, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1247l, {"typdelim"},    18l, 0l,  1,  8, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1247l, {"typrelid"},    26l, 0l,  4,  9, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typelem"},     26l, 0l,  4, 10, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typinput"},    24l, 0l,  4, 11, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typoutput"},    24l, 0l,  4, 12, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typreceive"},   24l, 0l,  4, 13, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typsend"},     24l, 0l,  4, 14, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1247l, {"typalign"},    18l, 0l,  1, 15, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1247l, {"typdefault"},   25l, 0l, -1, 16, 0l, -1l, '\0'  , '\0', 'i', '\0', '\0' }
-
-DATA(insert OID = 0 ( 1247 typname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1247 typowner            26 0  4   2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 typlen          21 0  2   3 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1247 typprtlen       21 0  2   4 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1247 typbyval            16 0  1   5 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1247 typtype         18 0  1   6 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1247 typisdefined        16 0  1   7 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1247 typdelim            18 0  1   8 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1247 typrelid            26 0  4   9 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 typelem         26 0  4  10 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 typinput            24 0  4  11 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 typoutput       24 0  4  12 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 typreceive      24 0  4  13 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 typsend         24 0  4  14 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 typalign            18 0  1  15 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1247 typdefault      25 0 -1  16 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1247 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1247 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1247 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1247 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1247 cmax                29 0  4  -6 0 -1 t f i f f));
+{ 1247l, {"typname"},     19l, 0l, NAMEDATALEN,  1, 0l, -1l, 0, '\0', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typowner"},    26l, 0l,  4,  2, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typlen"},      21l, 0l,  2,  3, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1247l, {"typprtlen"},    21l, 0l,  2,  4, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1247l, {"typbyval"},    16l, 0l,  1,  5, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1247l, {"typtype"},     18l, 0l,  1,  6, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1247l, {"typisdefined"}, 16l, 0l,  1,  7, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1247l, {"typdelim"},    18l, 0l,  1,  8, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1247l, {"typrelid"},    26l, 0l,  4,  9, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typelem"},     26l, 0l,  4, 10, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typinput"},    24l, 0l,  4, 11, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typoutput"},    24l, 0l,  4, 12, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typreceive"},   24l, 0l,  4, 13, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typsend"},     24l, 0l,  4, 14, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1247l, {"typalign"},    18l, 0l,  1, 15, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1247l, {"typdefault"},   25l, 0l, -1, 16, 0l, -1l, 0, '\0'  , '\0', 'i', '\0', '\0' }
+
+DATA(insert OID = 0 ( 1247 typname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1247 typowner            26 0  4   2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 typlen          21 0  2   3 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1247 typprtlen       21 0  2   4 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1247 typbyval            16 0  1   5 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1247 typtype         18 0  1   6 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1247 typisdefined        16 0  1   7 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1247 typdelim            18 0  1   8 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1247 typrelid            26 0  4   9 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 typelem         26 0  4  10 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 typinput            24 0  4  11 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 typoutput       24 0  4  12 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 typreceive      24 0  4  13 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 typsend         24 0  4  14 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 typalign            18 0  1  15 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1247 typdefault      25 0 -1  16 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1247 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1247 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1247 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1247 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1247 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_database
  * ----------------
  */
-DATA(insert OID = 0 ( 1262 datname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1262 datdba          23 0  4   2 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1262 datpath         25 0 -1   3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1262 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1262 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1262 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1262 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1262 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1262 cmax                29 0  4  -6 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1262 datname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1262 datdba          23 0  4   2 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1262 datpath         25 0 -1   3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1262 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1262 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1262 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1262 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1262 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1262 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_proc
  * ----------------
  */
 #define Schema_pg_proc \
-{ 1255l, {"proname"},      19l, 0l, NAMEDATALEN,  1, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"proowner"},     26l, 0l,  4,  2, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"prolang"},      26l, 0l,  4,  3, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"proisinh"},     16l, 0l,  1,  4, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1255l, {"proistrusted"}, 16l, 0l,  1,  5, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1255l, {"proiscachable"}, 16l, 0l,  1,  6, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1255l, {"pronargs"},     21l, 0l,  2,  7, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1255l, {"proretset"},        16l, 0l,  1,  8, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1255l, {"prorettype"},   26l, 0l,  4,  9, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"proargtypes"},  30l, 0l, 32, 10, 0l, -1l,   '\0', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"probyte_pct"},  23l, 0l,  4, 11, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"properbyte_cpu"},   23l, 0l,  4, 12, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"propercall_cpu"},   23l, 0l,  4, 13, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"prooutin_ratio"},   23l, 0l,  4, 14, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"prosrc"},       25l, 0l, -1,  15,   0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
-{ 1255l, {"probin"},       17l, 0l, -1,  16,   0l, -1l, '\0', '\0', 'i', '\0', '\0' }
-
-DATA(insert OID = 0 ( 1255 proname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1255 proowner            26 0  4   2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 prolang         26 0  4   3 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 proisinh            16 0  1   4 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1255 proistrusted        16 0  1   5 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1255 proiscachable   16 0  1   6 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1255 pronargs            21 0  2   7 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1255 proretset       16 0  1   8 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1255 prorettype      26 0  4   9 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 proargtypes     30 0 32  10 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1255 probyte_pct     23 0  4  11 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 properbyte_cpu  23 0  4  12 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 propercall_cpu  23 0  4  13 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 prooutin_ratio  23 0  4  14 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 prosrc          25 0 -1  15 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1255 probin          17 0 -1  16 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1255 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1255 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1255 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1255 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1255 cmax                29 0  4  -6 0 -1 t f i f f));
+{ 1255l, {"proname"},          19l, 0l, NAMEDATALEN,  1, 0l, -1l, 0, '\0', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"proowner"},         26l, 0l,  4,  2, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"prolang"},          26l, 0l,  4,  3, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"proisinh"},         16l, 0l,  1,  4, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1255l, {"proistrusted"},     16l, 0l,  1,  5, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1255l, {"proiscachable"},        16l, 0l,  1,  6, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1255l, {"pronargs"},         21l, 0l,  2,  7, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1255l, {"proretset"},            16l, 0l,  1,  8, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1255l, {"prorettype"},       26l, 0l,  4,  9, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"proargtypes"},      30l, 0l, 32, 10, 0l, -1l, 0,    '\0', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"probyte_pct"},      23l, 0l,  4, 11, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"properbyte_cpu"},   23l, 0l,  4, 12, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"propercall_cpu"},   23l, 0l,  4, 13, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"prooutin_ratio"},   23l, 0l,  4, 14, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"prosrc"},           25l, 0l, -1,  15,   0l, -1l, 0, '\0', '\0', 'i', '\0', '\0' }, \
+{ 1255l, {"probin"},           17l, 0l, -1,  16,   0l, -1l, 0, '\0', '\0', 'i', '\0', '\0' }
+
+DATA(insert OID = 0 ( 1255 proname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1255 proowner            26 0  4   2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 prolang         26 0  4   3 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 proisinh            16 0  1   4 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1255 proistrusted        16 0  1   5 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1255 proiscachable   16 0  1   6 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1255 pronargs            21 0  2   7 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1255 proretset       16 0  1   8 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1255 prorettype      26 0  4   9 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 proargtypes     30 0 32  10 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1255 probyte_pct     23 0  4  11 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 properbyte_cpu  23 0  4  12 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 propercall_cpu  23 0  4  13 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 prooutin_ratio  23 0  4  14 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 prosrc          25 0 -1  15 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1255 probin          17 0 -1  16 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1255 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1255 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1255 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1255 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1255 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_user
  * ----------------
  */
-DATA(insert OID = 0 ( 1260 usename     19  0 NAMEDATALEN   1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1260 usesysid        23  0   4   2 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1260 usecreatedb     16  0   1   3 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1260 usetrace        16  0   1   4 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1260 usesuper        16  0   1   5 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1260 usecatupd       16  0   1   6 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1260 passwd      25  0  -1   7 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1260 valuntil        702 0   4   8 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1260 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1260 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1260 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1260 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1260 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1260 cmax                29 0  4  -6 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1260 usename     19  0 NAMEDATALEN   1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1260 usesysid        23  0   4   2 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1260 usecreatedb 16  0   1   3 0 -1 0 t f c f f));
+DATA(insert OID = 0 ( 1260 usetrace        16  0   1   4 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1260 usesuper        16  0   1   5 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1260 usecatupd   16  0   1   6 0 -1 0 t f c f f));
+DATA(insert OID = 0 ( 1260 passwd      25  0  -1   7 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1260 valuntil        702 0   4   8 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1260 ctid            27 0  6  -1 0 -1 0 f f i f f));
+DATA(insert OID = 0 ( 1260 oid         26 0  4  -2 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1260 xmin            28 0  4  -3 0 -1 0 f f i f f));
+DATA(insert OID = 0 ( 1260 cmin            29 0  4  -4 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1260 xmax            28 0  4  -5 0 -1 0 f f i f f));
+DATA(insert OID = 0 ( 1260 cmax            29 0  4  -6 0 -1 0 t f i f f));
 
 /* ----------------
  *     pg_group
  * ----------------
  */
-DATA(insert OID = 0 ( 1261 groname         19 0 NAMEDATALEN  1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1261 grosysid            23 0  4   2 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1261 grolist       1007 0 -1   3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1261 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1261 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1261 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1261 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1261 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1261 cmax                29 0  4  -6 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1261 groname         19 0 NAMEDATALEN  1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1261 grosysid            23 0  4   2 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1261 grolist       1007 0 -1   3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1261 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1261 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1261 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1261 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1261 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1261 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_attribute
  * ----------------
  */
 #define Schema_pg_attribute \
-{ 1249l, {"attrelid"},   26l, 0l,  4,  1, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1249l, {"attname"},    19l, 0l, NAMEDATALEN,  2, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
-{ 1249l, {"atttypid"},   26l, 0l,  4,  3, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1249l, {"attdisbursion"},   700l, 0l,  4,  4, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
-{ 1249l, {"attlen"},     21l, 0l,  2,  5, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1249l, {"attnum"},     21l, 0l,  2,  6, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1249l, {"attnelems"},   23l, 0l, 4,  7, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1249l, {"attcacheoff"}, 23l, 0l, 4,  8, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1249l, {"attbyval"},   16l, 0l,  1,  9, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1249l, {"attisset"},   16l, 0l,  1, 10, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1249l, {"attalign"},   18l, 0l,  1, 11, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 12491, {"attnotnull"},  16l, 0l, 1, 12, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 12491, {"atthasdef"},   16l, 0l, 1, 13, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }
-
-DATA(insert OID = 0 ( 1249 attrelid            26 0  4   1 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1249 attname         19 0 NAMEDATALEN  2 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1249 atttypid            26 0  4   3 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1249 attdisbursion   700 0  4   4 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1249 attlen          21 0  2   5 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1249 attnum          21 0  2   6 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1249 attnelems       23 0  4   7 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1249 attcacheoff     23 0  4   8 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1249 attbyval            16 0  1   9 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1249 attisset            16 0  1  10 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1249 attalign            18 0  1  11 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1249 attnotnull      16 0  1  12 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1249 atthasdef       16 0  1  13 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1249 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1249 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1249 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1249 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1249 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1249 cmax                29 0  4  -6 0 -1 t f i f f));
+{ 1249l, {"attrelid"},   26l, 0l,  4,  1, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1249l, {"attname"},    19l, 0l, NAMEDATALEN,  2, 0l, -1l, 0, '\0', '\0', 'i', '\0', '\0' }, \
+{ 1249l, {"atttypid"},   26l, 0l,  4,  3, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1249l, {"attdisbursion"},   700l, 0l,  4,  4, 0l, -1l, 0, '\0', '\0', 'i', '\0', '\0' }, \
+{ 1249l, {"attlen"},     21l, 0l,  2,  5, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1249l, {"attnum"},     21l, 0l,  2,  6, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1249l, {"attnelems"},   23l, 0l, 4,  7, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1249l, {"attcacheoff"}, 23l, 0l, 4,  8, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1249l, {"atttypmod"},      21l, 0l,  2,  9, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1249l, {"attbyval"},   16l, 0l,  1, 10, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1249l, {"attisset"},   16l, 0l,  1, 11, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1249l, {"attalign"},   18l, 0l,  1, 12, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 12491, {"attnotnull"},  16l, 0l, 1, 13, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 12491, {"atthasdef"},   16l, 0l, 1, 14, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }
+
+DATA(insert OID = 0 ( 1249 attrelid            26 0  4   1 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1249 attname         19 0 NAMEDATALEN  2 0 -1 0 f f i f f));
+DATA(insert OID = 0 ( 1249 atttypid            26 0  4   3 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1249 attdisbursion   700 0  4   4 0 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1249 attlen          21 0  2   5 0 -1 0 t f s f f));
+DATA(insert OID = 0 ( 1249 attnum          21 0  2   6 0 -1 0 t f s f f));
+DATA(insert OID = 0 ( 1249 attnelems       23 0  4   7 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1249 attcacheoff     23 0  4   8 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1249 atttypmod       21 0  2   9 0 -1 0 t f s f f));
+DATA(insert OID = 0 ( 1249 attbyval            16 0  1  10 0 -1 0 t f c f f));
+DATA(insert OID = 0 ( 1249 attisset            16 0  1  11 0 -1 0 t f c f f));
+DATA(insert OID = 0 ( 1249 attalign            18 0  1  12 0 -1 0 t f c f f));
+DATA(insert OID = 0 ( 1249 attnotnull      16 0  1  13 0 -1 0 t f c f f));
+DATA(insert OID = 0 ( 1249 atthasdef       16 0  1  14 0 -1 0 t f c f f));
+DATA(insert OID = 0 ( 1249 ctid                27 0  6  -1 0 -1 0 f f i f f));
+DATA(insert OID = 0 ( 1249 oid             26 0  4  -2 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1249 xmin                28 0  4  -3 0 -1 0 f f i f f));
+DATA(insert OID = 0 ( 1249 cmin                29 0  4  -4 0 -1 0 t f i f f));
+DATA(insert OID = 0 ( 1249 xmax                28 0  4  -5 0 -1 0 f f i f f));
+DATA(insert OID = 0 ( 1249 cmax                29 0  4  -6 0 -1 0 t f i f f));
 
 /* ----------------
  *     pg_class
  * ----------------
  */
 #define Schema_pg_class \
-{ 1259l, {"relname"},     19l, 0l, NAMEDATALEN,  1, 0l, -1l, '\0', '\0', 'i', '\0', '\0' }, \
-{ 1259l, {"reltype"},     26l, 0l,  4,  2, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1259l, {"relowner"},    26l, 0l,  4,  3, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1259l, {"relam"},           26l, 0l,  4,  4, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1259l, {"relpages"},    23,  0l,  4,  5, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1259l, {"reltuples"},    23, 0l,  4,  6, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }, \
-{ 1259l, {"relhasindex"},  16, 0l,  1,  7, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1259l, {"relisshared"},  16, 0l,  1,  8, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1259l, {"relkind"},     18,  0l,  1,  9, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1259l, {"relnatts"},    21,  0l,  2, 10, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1259l, {"relchecks"},    21l, 0l,  2, 11, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1259l, {"reltriggers"},  21l, 0l,  2, 12, 0l, -1l, '\001', '\0', 's', '\0', '\0' }, \
-{ 1259l, {"relhasrules"},  16, 0l,  1, 13, 0l, -1l, '\001', '\0', 'c', '\0', '\0' }, \
-{ 1259l, {"relacl"},    1034l, 0l, -1, 14, 0l, -1l,   '\0', '\0', 'i', '\0', '\0' }
-
-DATA(insert OID = 0 ( 1259 relname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1259 reltype         26 0  4   2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1259 relowner            26 0  4   3 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1259 relam           26 0  4   4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1259 relpages            23 0  4   5 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1259 reltuples       23 0  4   6 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1259 relhasindex     16 0  1   7 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1259 relisshared     16 0  1   8 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1259 relkind         18 0  1   9 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1259 relnatts            21 0  2  10 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1259 relchecks       21 0  2  11 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1259 reltriggers     21 0  2  12 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1259 relhasrules     16 0  1  13 0 -1 t f c f f));
-DATA(insert OID = 0 ( 1259 relacl        1034 0 -1  14 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1259 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1259 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1259 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1259 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1259 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1259 cmax                29 0  4  -6 0 -1 t f i f f));
+{ 1259l, {"relname"},     19l, 0l, NAMEDATALEN,  1, 0l, -1l, 0, '\0', '\0', 'i', '\0', '\0' }, \
+{ 1259l, {"reltype"},     26l, 0l,  4,  2, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1259l, {"relowner"},    26l, 0l,  4,  3, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1259l, {"relam"},           26l, 0l,  4,  4, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1259l, {"relpages"},    23,  0l,  4,  5, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1259l, {"reltuples"},    23, 0l,  4,  6, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }, \
+{ 1259l, {"relhasindex"},  16, 0l,  1,  7, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1259l, {"relisshared"},  16, 0l,  1,  8, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1259l, {"relkind"},     18,  0l,  1,  9, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1259l, {"relnatts"},    21,  0l,  2, 10, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1259l, {"relchecks"},    21l, 0l,  2, 11, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1259l, {"reltriggers"},  21l, 0l,  2, 12, 0l, -1l, 0, '\001', '\0', 's', '\0', '\0' }, \
+{ 1259l, {"relhasrules"},  16, 0l,  1, 13, 0l, -1l, 0, '\001', '\0', 'c', '\0', '\0' }, \
+{ 1259l, {"relacl"},    1034l, 0l, -1, 14, 0l, -1l, 0,   '\0', '\0', 'i', '\0', '\0' }
+
+DATA(insert OID = 0 ( 1259 relname         19 0 NAMEDATALEN   1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1259 reltype         26 0  4   2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1259 relowner            26 0  4   3 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1259 relam           26 0  4   4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1259 relpages            23 0  4   5 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1259 reltuples       23 0  4   6 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1259 relhasindex     16 0  1   7 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1259 relisshared     16 0  1   8 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1259 relkind         18 0  1   9 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1259 relnatts            21 0  2  10 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1259 relchecks       21 0  2  11 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1259 reltriggers     21 0  2  12 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1259 relhasrules     16 0  1  13 0 -1 t f c f f));
+DATA(insert OID = 0 ( 1259 relacl        1034 0 -1  14 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1259 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1259 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1259 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1259 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1259 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1259 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_attrdef
  * ----------------
  */
-DATA(insert OID = 0 ( 1215 adrelid         26 0  4   1 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1215 adnum           21 0  2   2 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1215 adbin           25 0 -1   3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1215 adsrc           25 0 -1   4 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1215 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1215 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1215 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1215 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1215 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1215 cmax                29 0  4  -6 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1215 adrelid         26 0  4   1 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1215 adnum           21 0  2   2 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1215 adbin           25 0 -1   3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1215 adsrc           25 0 -1   4 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1215 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1215 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1215 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1215 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1215 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1215 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_relcheck
  * ----------------
  */
-DATA(insert OID = 0 ( 1216 rcrelid         26 0  4   1 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1216 rcname          19 0  NAMEDATALEN  2 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1216 rcbin           25 0 -1   3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1216 rcsrc           25 0 -1   4 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1216 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1216 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1216 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1216 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1216 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1216 cmax                29 0  4  -6 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1216 rcrelid         26 0  4   1 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1216 rcname          19 0  NAMEDATALEN  2 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1216 rcbin           25 0 -1   3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1216 rcsrc           25 0 -1   4 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1216 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1216 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1216 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1216 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1216 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1216 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_trigger
  * ----------------
  */
-DATA(insert OID = 0 ( 1219 tgrelid         26 0  4   1 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1219 tgname          19 0  NAMEDATALEN  2 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1219 tgfoid          26 0  4   3 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1219 tgtype          21 0  2   4 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1219 tgnargs         21 0  2   5 0 -1 t f s f f));
-DATA(insert OID = 0 ( 1219 tgattr          22 0 16   6 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1219 tgargs          17 0 -1   7 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1219 ctid                27 0  6  -1 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1219 oid             26 0  4  -2 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1219 xmin                28 0  4  -3 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1219 cmin                29 0  4  -4 0 -1 t f i f f));
-DATA(insert OID = 0 ( 1219 xmax                28 0  4  -5 0 -1 f f i f f));
-DATA(insert OID = 0 ( 1219 cmax                29 0  4  -6 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1219 tgrelid         26 0  4   1 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1219 tgname          19 0  NAMEDATALEN  2 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1219 tgfoid          26 0  4   3 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1219 tgtype          21 0  2   4 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1219 tgnargs         21 0  2   5 0 -1 t f s f f));
+DATA(insert OID = 0 ( 1219 tgattr          22 0 16   6 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1219 tgargs          17 0 -1   7 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1219 ctid                27 0  6  -1 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1219 oid             26 0  4  -2 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1219 xmin                28 0  4  -3 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1219 cmin                29 0  4  -4 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1219 xmax                28 0  4  -5 0 -1 f f i f f));
+DATA(insert OID = 0 ( 1219 cmax                29 0  4  -6 0 -1 t f i f f));
 
 /* ----------------
  *     pg_variable - this relation is modified by special purpose access
@@ -439,9 +443,9 @@ DATA(insert OID = 0 ( 1219 cmax             29 0  4  -6 0 -1 t f i f f));
  * ----------------
  */
 #define Schema_pg_variable \
-{ 1264l, {"varfoo"},  26l, 0l, 4, 1, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }
+{ 1264l, {"varfoo"},  26l, 0l, 4, 1, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }
 
-DATA(insert OID = 0 ( 1264 varfoo          26 0  4   1 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1264 varfoo          26 0  4   1 0 -1 t f i f f));
 
 /* ----------------
  *     pg_log - this relation is modified by special purpose access
@@ -450,8 +454,8 @@ DATA(insert OID = 0 ( 1264 varfoo           26 0  4   1 0 -1 t f i f f));
  * ----------------
  */
 #define Schema_pg_log \
-{ 1269l, {"logfoo"},  26l, 0l, 4, 1, 0l, -1l, '\001', '\0', 'i', '\0', '\0' }
+{ 1269l, {"logfoo"},  26l, 0l, 4, 1, 0l, -1l, 0, '\001', '\0', 'i', '\0', '\0' }
 
-DATA(insert OID = 0 ( 1269 logfoo          26 0  4   1 0 -1 t f i f f));
+DATA(insert OID = 0 ( 1269 logfoo          26 0  4   1 0 -1 t f i f f));
 
 #endif                         /* PG_ATTRIBUTE_H */
index 7c0ee50fec9c8fad3fd465452ef98b6dc42f8566..b70ceba2cee91125083104ff5d663feb8bef0cfa 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pg_class.h,v 1.17 1997/12/04 00:27:50 scrappy Exp $
+ * $Id: pg_class.h,v 1.18 1998/01/16 23:20:52 momjian Exp $
  *
  * NOTES
  *   ``pg_relation'' is being replaced by ``pg_class''.  currently
@@ -119,11 +119,11 @@ typedef FormData_pg_class *Form_pg_class;
 
 DATA(insert OID = 1247 (  pg_type 71         PGUID 0 0 0 f f r 16 0 0 f _null_ ));
 DESCR("");
-DATA(insert OID = 1249 (  pg_attribute 75    PGUID 0 0 0 f f r 16 0 0 f _null_ ));
+DATA(insert OID = 1249 (  pg_attribute 75    PGUID 0 0 0 f f r 14 0 0 f _null_ ));
 DESCR("");
 DATA(insert OID = 1255 (  pg_proc 81         PGUID 0 0 0 f f r 16 0 0 f _null_ ));
 DESCR("");
-DATA(insert OID = 1259 (  pg_class 83        PGUID 0 0 0 f f r 18 0 0 f _null_ ));
+DATA(insert OID = 1259 (  pg_class 83        PGUID 0 0 0 f f r 14 0 0 f _null_ ));
 DESCR("");
 DATA(insert OID = 1260 (  pg_user 86         PGUID 0 0 0 f t r 8  0 0 f _null_ ));
 DESCR("");
index c56363ddf0c8a80fe679529f742c8afdb174de01..02fa069df61d483c7e724540c4ab5d08e6808b42 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parsenodes.h,v 1.44 1998/01/15 19:00:11 momjian Exp $
+ * $Id: parsenodes.h,v 1.45 1998/01/16 23:20:55 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -642,8 +642,8 @@ typedef struct TypeName
    char       *name;           /* name of the type */
    bool        timezone;       /* timezone specified? */
    bool        setof;          /* is a set? */
+   int2        typmod;         /* type modifier */
    List       *arrayBounds;    /* array bounds */
-   int         typlen;         /* length for char() and varchar() */
 } TypeName;
 
 /*
index ba8eed9c814b7d33ec4106e184f5349c52d92106..42cbe9c46161ad759048962528cfc126f454ce48 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_expr.h,v 1.4 1998/01/04 04:31:41 momjian Exp $
+ * $Id: parse_expr.h,v 1.5 1998/01/16 23:21:01 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -23,7 +23,7 @@ extern Node *transformIdent(ParseState *pstate, Node *expr, int precedence);
 extern Oid exprType(Node *expr);
 extern Node *handleNestedDots(ParseState *pstate, Attr *attr,
        int *curr_resno, int precedence);
-extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen);
+extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int attypmod);
 
 #endif                         /* PARSE_EXPR_H */
 
index fa2025994c75fee3bc505342a920a0453b6abe8b..22a81c4994f3eeb7802d5688f8ee1e8547473627 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_type.h,v 1.2 1997/11/26 01:14:14 momjian Exp $
+ * $Id: parse_type.h,v 1.3 1998/01/16 23:21:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -26,7 +26,7 @@ extern int16 typeLen(Type t);
 extern bool typeByVal(Type t);
 extern char *typeTypeName(Type t);
 extern char typeTypeFlag(Type t);
-extern char *stringTypeString(Type tp, char *string, int typlen);
+extern char *stringTypeString(Type tp, char *string, int atttypmod);
 extern Oid typeidRetoutfunc(Oid type_id);
 extern Oid typeidTypeRelid(Oid type_id);
 extern Oid typeTypeRelid(Type typ);
index 0c8e5554cb6d085b789eb58ec92e947bd5dc1b0f..b10769ee7d5fd8830024e1793b160655a5748275 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: builtins.h,v 1.33 1998/01/01 05:42:40 thomas Exp $
+ * $Id: builtins.h,v 1.34 1998/01/16 23:21:07 momjian Exp $
  *
  * NOTES
  *   This should normally only be included by fmgr.h.
@@ -445,7 +445,7 @@ DateTime   *timestamp_datetime(time_t timestamp);
 time_t     datetime_timestamp(DateTime *datetime);
 
 /* varchar.c */
-extern char *bpcharin(char *s, int dummy, int typlen);
+extern char *bpcharin(char *s, int dummy, int atttypmod);
 extern char *bpcharout(char *s);
 extern bool bpchareq(char *arg1, char *arg2);
 extern bool bpcharne(char *arg1, char *arg2);
@@ -457,7 +457,7 @@ extern int32 bpcharcmp(char *arg1, char *arg2);
 extern int32 bpcharlen(char *arg);
 extern uint32 hashbpchar(struct varlena * key);
 
-extern char *varcharin(char *s, int dummy, int typlen);
+extern char *varcharin(char *s, int dummy, int atttypmod);
 extern char *varcharout(char *s);
 extern bool varchareq(char *arg1, char *arg2);
 extern bool varcharne(char *arg1, char *arg2);