Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc2fa275

Browse files
committed
Correct hardwired type information in bootstrap.
1 parent7bc1fbe commitc2fa275

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

‎src/backend/bootstrap/bootstrap.c

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Copyright (c) 1994, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.75 2000/01/10 16:13:11 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.76 2000/01/11 04:00:30 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -37,7 +37,6 @@
3737
#include"utils/portal.h"
3838

3939
#defineALLOC(t,c)(t *)calloc((unsigned)(c), sizeof(t))
40-
#defineFIRST_TYPE_OID 16/* OID of the first type */
4140

4241
externvoidBaseInit(void);
4342
externvoidStartupXLOG(void);
@@ -102,24 +101,22 @@ struct typinfo
102101
};
103102

104103
staticstructtypinfoProcid[]= {
105-
{"bool",16,0,1,F_BOOLIN,F_BOOLOUT},
106-
{"bytea",17,0,-1,F_BYTEAIN,F_BYTEAOUT},
107-
{"char",18,0,1,F_CHARIN,F_CHAROUT},
108-
{"name",19,0,NAMEDATALEN,F_NAMEIN,F_NAMEOUT},
109-
{"dummy",20,0,16,0,0},
110-
/* { "dt", 20, 0, 4, F_DTIN,F_DTOUT}, */
111-
{"int2",21,0,2,F_INT2IN,F_INT2OUT},
112-
{"int2vector",22,0,16,F_INT2VECTORIN,F_INT2VECTOROUT},
113-
{"int4",23,0,4,F_INT4IN,F_INT4OUT},
114-
{"regproc",24,0,4,F_REGPROCIN,F_REGPROCOUT},
115-
{"text",25,0,-1,F_TEXTIN,F_TEXTOUT},
116-
{"oid",26,0,4,F_INT4IN,F_INT4OUT},
117-
{"tid",27,0,6,F_TIDIN,F_TIDOUT},
118-
{"xid",28,0,5,F_XIDIN,F_XIDOUT},
119-
{"iid",29,0,1,F_CIDIN,F_CIDOUT},
120-
{"oidvector",30,0,32,F_OIDVECTORIN,F_OIDVECTOROUT},
104+
{"bool",BOOLOID,0,1,F_BOOLIN,F_BOOLOUT},
105+
{"bytea",BYTEAOID,0,-1,F_BYTEAIN,F_BYTEAOUT},
106+
{"char",CHAROID,0,1,F_CHARIN,F_CHAROUT},
107+
{"name",NAMEOID,0,NAMEDATALEN,F_NAMEIN,F_NAMEOUT},
108+
{"int2",INT2OID,0,2,F_INT2IN,F_INT2OUT},
109+
{"int2vector",INT2VECTOROID,0,INDEX_MAX_KEYS*2,F_INT2VECTORIN,F_INT2VECTOROUT},
110+
{"int4",INT4OID,0,4,F_INT4IN,F_INT4OUT},
111+
{"regproc",REGPROCOID,0,4,F_REGPROCIN,F_REGPROCOUT},
112+
{"text",TEXTOID,0,-1,F_TEXTIN,F_TEXTOUT},
113+
{"oid",OIDOID,0,4,F_INT4IN,F_INT4OUT},
114+
{"tid",TIDOID,0,6,F_TIDIN,F_TIDOUT},
115+
{"xid",XIDOID,0,4,F_XIDIN,F_XIDOUT},
116+
{"cid",CIDOID,0,4,F_CIDIN,F_CIDOUT},
117+
{"oidvector",30,0,INDEX_MAX_KEYS*4,F_OIDVECTORIN,F_OIDVECTOROUT},
121118
{"smgr",210,0,2,F_SMGRIN,F_SMGROUT},
122-
{"_int4",1007,23,-1,F_ARRAY_IN,F_ARRAY_OUT},
119+
{"_int4",1007,INT4OID,-1,F_ARRAY_IN,F_ARRAY_OUT},
123120
{"_aclitem",1034,1033,-1,F_ARRAY_IN,F_ARRAY_OUT}
124121
};
125122

@@ -694,7 +691,13 @@ InsertOneValue(Oid objectid, char *value, int i)
694691
}
695692
else
696693
{
697-
typeindex=attrtypes[i]->atttypid-FIRST_TYPE_OID;
694+
for (typeindex=0;typeindex<n_types;typeindex++)
695+
{
696+
if (Procid[typeindex].oid==attrtypes[i]->atttypid)
697+
break;
698+
}
699+
if (typeindex >=n_types)
700+
elog(ERROR,"can't find type OID %u",attrtypes[i]->atttypid);
698701
if (DebugMode)
699702
printf("Typ == NULL, typeindex = %u idx = %d\n",typeindex,i);
700703
values[i]=fmgr(Procid[typeindex].inproc,value,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp