Skip to content

Commit b99f300

Browse files
committed
Move INDEX_MAX_KEYS to postgres.h, and make it configurable for users.
1 parent 8cc9d84 commit b99f300

File tree

3 files changed

+26
-30
lines changed

3 files changed

+26
-30
lines changed

src/backend/utils/adt/oid.c

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.28 1999/07/17 20:17:58 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.29 2000/01/10 04:36:34 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -30,26 +30,23 @@ Oid *
3030
oid8in(char *oidString)
3131
{
3232
Oid *result;
33-
int nums;
33+
int slot;
3434

3535
if (oidString == NULL)
3636
return NULL;
3737

38-
result = (Oid *) palloc(sizeof(Oid[8]));
39-
if ((nums = sscanf(oidString, "%u%u%u%u%u%u%u%u",
40-
&result[0],
41-
&result[1],
42-
&result[2],
43-
&result[3],
44-
&result[4],
45-
&result[5],
46-
&result[6],
47-
&result[7])) != 8)
38+
result = (Oid *) palloc(sizeof(Oid[INDEX_MAX_KEYS]));
39+
40+
for (slot=0; *oidString && slot < INDEX_MAX_KEYS; slot++)
4841
{
49-
do
50-
result[nums++] = 0;
51-
while (nums < 8);
42+
if (sscanf(oidString, "%u", &result[slot]) != 1)
43+
break;
44+
while (*oidString && *oidString != ' ')
45+
oidString++;
5246
}
47+
while (slot < INDEX_MAX_KEYS)
48+
result[slot++] = 0;
49+
5350
return result;
5451
}
5552

@@ -73,9 +70,9 @@ oid8out(Oid *oidArray)
7370
}
7471

7572
/* assumes sign, 10 digits, ' ' */
76-
rp = result = (char *) palloc(8 * 12);
73+
rp = result = (char *) palloc(INDEX_MAX_KEYS * 12);
7774
sp = oidArray;
78-
for (num = 8; num != 0; num--)
75+
for (num = INDEX_MAX_KEYS; num != 0; num--)
7976
{
8077
ltoa(*sp++, rp);
8178
while (*++rp != '\0')
@@ -121,21 +118,21 @@ oidne(Oid arg1, Oid arg2)
121118
bool
122119
oid8eq(Oid *arg1, Oid *arg2)
123120
{
124-
return (bool) (memcmp(arg1, arg2, 8 * sizeof(Oid)) == 0);
121+
return (bool) (memcmp(arg1, arg2, INDEX_MAX_KEYS * sizeof(Oid)) == 0);
125122
}
126123

127124
bool
128125
oid8ne(Oid *arg1, Oid *arg2)
129126
{
130-
return (bool) (memcmp(arg1, arg2, 8 * sizeof(Oid)) != 0);
127+
return (bool) (memcmp(arg1, arg2, INDEX_MAX_KEYS * sizeof(Oid)) != 0);
131128
}
132129

133130
bool
134131
oid8lt(Oid *arg1, Oid *arg2)
135132
{
136133
int i;
137134

138-
for (i = 0; i < 8; i++)
135+
for (i = 0; i < INDEX_MAX_KEYS; i++)
139136
if (!int4eq(arg1[i], arg2[i]))
140137
return int4lt(arg1[i], arg2[i]);
141138
return false;
@@ -146,7 +143,7 @@ oid8le(Oid *arg1, Oid *arg2)
146143
{
147144
int i;
148145

149-
for (i = 0; i < 8; i++)
146+
for (i = 0; i < INDEX_MAX_KEYS; i++)
150147
if (!int4eq(arg1[i], arg2[i]))
151148
return int4le(arg1[i], arg2[i]);
152149
return true;
@@ -157,7 +154,7 @@ oid8ge(Oid *arg1, Oid *arg2)
157154
{
158155
int i;
159156

160-
for (i = 0; i < 8; i++)
157+
for (i = 0; i < INDEX_MAX_KEYS; i++)
161158
if (!int4eq(arg1[i], arg2[i]))
162159
return int4ge(arg1[i], arg2[i]);
163160
return true;
@@ -168,7 +165,7 @@ oid8gt(Oid *arg1, Oid *arg2)
168165
{
169166
int i;
170167

171-
for (i = 0; i < 8; i++)
168+
for (i = 0; i < INDEX_MAX_KEYS; i++)
172169
if (!int4eq(arg1[i], arg2[i]))
173170
return int4gt(arg1[i], arg2[i]);
174171
return false;

src/include/catalog/pg_index.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: pg_index.h,v 1.12 1999/05/25 16:13:45 momjian Exp $
10+
* $Id: pg_index.h,v 1.13 2000/01/10 04:36:37 momjian Exp $
1111
*
1212
* NOTES
1313
* the genbki.sh script reads this file and generates .bki
@@ -58,9 +58,6 @@ CATALOG(pg_index)
5858
text indpred; /* query plan for partial index predicate */
5959
} FormData_pg_index;
6060

61-
#define INDEX_MAX_KEYS 8 /* maximum number of keys in an index
62-
* definition */
63-
6461
/* ----------------
6562
* Form_pg_index corresponds to a pointer to a tuple with
6663
* the format of pg_index relation.

src/include/postgres.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* Copyright (c) 1995, Regents of the University of California
88
*
9-
* $Id: postgres.h,v 1.31 1999/12/21 00:06:41 wieck Exp $
9+
* $Id: postgres.h,v 1.32 2000/01/10 04:36:36 momjian Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -101,8 +101,10 @@ struct varlena
101101
typedef struct varlena bytea;
102102
typedef struct varlena text;
103103

104-
typedef int2 int28[8];
105-
typedef Oid oid8[8];
104+
#define INDEX_MAX_KEYS 8 /* maximum number of keys in an index
105+
* definition */
106+
typedef int2 int28[INDEX_MAX_KEYS];
107+
typedef Oid oid8[INDEX_MAX_KEYS];
106108

107109

108110
/*

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy