|
9 | 9 | *
|
10 | 10 | *
|
11 | 11 | * IDENTIFICATION
|
12 |
| - * $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.44 2000/07/22 11:18:45 wieck Exp $ |
| 12 | + * $Header: /cvsroot/pgsql/src/backend/access/common/indextuple.c,v 1.45 2000/09/23 22:40:12 tgl Exp $ |
13 | 13 | *
|
14 | 14 | *-------------------------------------------------------------------------
|
15 | 15 | */
|
@@ -46,8 +46,8 @@ index_formtuple(TupleDesc tupleDescriptor,
|
46 | 46 | uint16tupmask=0;
|
47 | 47 | intnumberOfAttributes=tupleDescriptor->natts;
|
48 | 48 | #ifdefTOAST_INDEX_HACK
|
49 |
| -Datumuntoasted_value[MaxHeapAttributeNumber]; |
50 |
| -booluntoasted_free[MaxHeapAttributeNumber]; |
| 49 | +Datumuntoasted_value[INDEX_MAX_KEYS]; |
| 50 | +booluntoasted_free[INDEX_MAX_KEYS]; |
51 | 51 | #endif
|
52 | 52 |
|
53 | 53 | if (numberOfAttributes>INDEX_MAX_KEYS)
|
@@ -79,10 +79,14 @@ index_formtuple(TupleDesc tupleDescriptor,
|
79 | 79 | }
|
80 | 80 | }
|
81 | 81 | #endif
|
82 |
| -for (i=0;i<numberOfAttributes&& !hasnull;i++) |
| 82 | + |
| 83 | +for (i=0;i<numberOfAttributes;i++) |
83 | 84 | {
|
84 | 85 | if (null[i]!=' ')
|
| 86 | +{ |
85 | 87 | hasnull= true;
|
| 88 | +break; |
| 89 | +} |
86 | 90 | }
|
87 | 91 |
|
88 | 92 | if (hasnull)
|
@@ -122,23 +126,21 @@ index_formtuple(TupleDesc tupleDescriptor,
|
122 | 126 | /*
|
123 | 127 | * We do this because DataFill wants to initialize a "tupmask" which
|
124 | 128 | * is used for HeapTuples, but we want an indextuple infomask.The
|
125 |
| - * only"relevent" info is the "has variable attributes" field, which |
126 |
| - *is in mask position 0x02.We have already set thenull mask above. |
| 129 | + * onlyrelevant info is the "has variable attributes" field. |
| 130 | + * We have already set thehasnull bit above. |
127 | 131 | */
|
128 | 132 |
|
129 |
| -if (tupmask&0x02) |
| 133 | +if (tupmask&HEAP_HASVARLENA) |
130 | 134 | infomask |=INDEX_VAR_MASK;
|
131 | 135 |
|
132 | 136 | /*
|
133 |
| - * Here we make sure that we can actually hold the size. We also want |
134 |
| - * to make sure that size is not aligned oddly. This actually is a |
135 |
| - * rather odd way to make sure the size is not too large overall. |
| 137 | + * Here we make sure that the size will fit in the field reserved for |
| 138 | + * it in t_info. |
136 | 139 | */
|
137 | 140 |
|
138 |
| -if (size&0xE000) |
| 141 | +if ((size&INDEX_SIZE_MASK)!=size) |
139 | 142 | elog(ERROR,"index_formtuple: data takes %d bytes: too big",size);
|
140 | 143 |
|
141 |
| - |
142 | 144 | infomask |=size;
|
143 | 145 |
|
144 | 146 | /* ----------------
|
|