diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index bab7d219db9f89c9ba169c607fb0cd0d3e119f2b..060d3e9f246581ade76323aad600a5bd6543161c 100644 --- a/src/backend/bootstrap/bootstrap.c +++ b/src/backend/bootstrap/bootstrap.c @@ -7,7 +7,7 @@ * Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.48 1998/08/19 02:01:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.49 1998/08/24 19:04:02 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -90,7 +90,7 @@ static AttributeTupleForm AllocateAttribute(void); static bool BootstrapAlreadySeen(Oid id); static int CompHash(char *str, int len); static hashnode *FindStr(char *str, int length, hashnode *mderef); -static int gettype(char *type); +static Oid gettype(char *type); static void cleanup(void); /* ---------------- @@ -571,7 +571,7 @@ void DefineAttr(char *name, char *type, int attnum) { int attlen; - int t; + Oid typeoid; if (reldesc != NULL) { @@ -579,7 +579,7 @@ DefineAttr(char *name, char *type, int attnum) closerel(relname); } - t = gettype(type); + typeoid = gettype(type); if (attrtypes[attnum] == (AttributeTupleForm) NULL) attrtypes[attnum] = AllocateAttribute(); if (Typ != (struct typmap **) NULL) @@ -591,16 +591,18 @@ DefineAttr(char *name, char *type, int attnum) attrtypes[attnum]->attnum = 1 + attnum; /* fillatt */ attlen = attrtypes[attnum]->attlen = Ap->am_typ.typlen; attrtypes[attnum]->attbyval = Ap->am_typ.typbyval; + attrtypes[attnum]->attalign = Ap->am_typ.typalign; } else { - attrtypes[attnum]->atttypid = Procid[t].oid; + attrtypes[attnum]->atttypid = Procid[typeoid].oid; namestrcpy(&attrtypes[attnum]->attname, name); if (!Quiet) printf("<%s %s> ", attrtypes[attnum]->attname.data, type); attrtypes[attnum]->attnum = 1 + attnum; /* fillatt */ - attlen = attrtypes[attnum]->attlen = Procid[t].len; - attrtypes[attnum]->attbyval = (attlen == 1) || (attlen == 2) || (attlen == 4); + attlen = attrtypes[attnum]->attlen = Procid[typeoid].len; + attrtypes[attnum]->attbyval = (attlen == 1) || (attlen == 2) ||(attlen == 4); + attrtypes[attnum]->attalign = 'i'; } attrtypes[attnum]->attcacheoff = -1; attrtypes[attnum]->atttypmod = -1; @@ -784,7 +786,7 @@ cleanup() * gettype * ---------------- */ -static int +static Oid gettype(char *type) { int i; diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index dd954c8b3082361d8fbd5ae33a8419f53c28476c..9a11e129eb8ecc075851daea689a5c5d1b74409a 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.52 1998/08/21 23:22:34 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.53 1998/08/24 19:04:04 momjian Exp $ * * * INTERFACE ROUTINES @@ -279,6 +279,7 @@ BuildFuncTupleDesc(FuncIndexInfo *funcInfo) funcTupDesc->attrs[0]->attbyval = ((TypeTupleForm) GETSTRUCT(tuple))->typbyval; funcTupDesc->attrs[0]->attcacheoff = -1; funcTupDesc->attrs[0]->atttypmod = -1; + funcTupDesc->attrs[0]->attalign = ((TypeTupleForm) GETSTRUCT(tuple))->typalign; /* * make the attributes name the same as the functions @@ -378,7 +379,6 @@ ConstructTupleDescriptor(Oid heapoid, * here we are indexing on a normal attribute (1...n) * ---------------- */ - heapTupDesc = RelationGetTupleDescriptor(heapRelation); atind = AttrNumberGetAttrOffset(atnum); @@ -400,6 +400,7 @@ ConstructTupleDescriptor(Oid heapoid, ((AttributeTupleForm) to)->atthasdef = false; ((AttributeTupleForm) to)->attcacheoff = -1; ((AttributeTupleForm) to)->atttypmod = -1; + ((AttributeTupleForm) to)->attalign = 'i'; /* * if the keytype is defined, we need to change the tuple form's @@ -417,11 +418,11 @@ ConstructTupleDescriptor(Oid heapoid, IndexKeyType->name); ((AttributeTupleForm) to)->atttypid = tup->t_oid; ((AttributeTupleForm) to)->attbyval = - ((TypeTupleForm) ((char *) tup + tup->t_hoff))->typbyval; - + ((TypeTupleForm) GETSTRUCT(tup))->typbyval; ((AttributeTupleForm) to)->attlen = - ((TypeTupleForm) ((char *) tup + tup->t_hoff))->typlen; - + ((TypeTupleForm) GETSTRUCT(tup))->typlen; + ((AttributeTupleForm) to)->attalign = + ((TypeTupleForm) GETSTRUCT(tup))->typalign; ((AttributeTupleForm) to)->atttypmod = IndexKeyType->typmod; }