@@ -87,37 +87,36 @@ TypeShellMake(const char *typeName, Oid typeNamespace, Oid ownerId)
8787 * give it typtype = TYPTYPE_PSEUDO as extra insurance that it won't be
8888 * mistaken for a usable type.
8989 */
90- i = 0 ;
9190namestrcpy (& name ,typeName );
92- values [i ++ ]= NameGetDatum (& name );/* typname */
93- values [i ++ ]= ObjectIdGetDatum (typeNamespace );/* typnamespace */
94- values [i ++ ]= ObjectIdGetDatum (ownerId );/* typowner */
95- values [i ++ ]= Int16GetDatum (sizeof (int4 ));/* typlen */
96- values [i ++ ]= BoolGetDatum (true);/* typbyval */
97- values [i ++ ]= CharGetDatum (TYPTYPE_PSEUDO );/* typtype */
98- values [i ++ ]= CharGetDatum (TYPCATEGORY_PSEUDOTYPE );/* typcategory */
99- values [i ++ ]= BoolGetDatum (false);/* typispreferred */
100- values [i ++ ]= BoolGetDatum (false);/* typisdefined */
101- values [i ++ ]= CharGetDatum (DEFAULT_TYPDELIM );/* typdelim */
102- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typrelid */
103- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typelem */
104- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typarray */
105- values [i ++ ]= ObjectIdGetDatum (F_SHELL_IN );/* typinput */
106- values [i ++ ]= ObjectIdGetDatum (F_SHELL_OUT );/* typoutput */
107- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typreceive */
108- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typsend */
109- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typmodin */
110- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typmodout */
111- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typanalyze */
112- values [i ++ ]= CharGetDatum ('i' );/* typalign */
113- values [i ++ ]= CharGetDatum ('p' );/* typstorage */
114- values [i ++ ]= BoolGetDatum (false);/* typnotnull */
115- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typbasetype */
116- values [i ++ ]= Int32GetDatum (-1 );/* typtypmod */
117- values [i ++ ]= Int32GetDatum (0 );/* typndims */
118- values [i ++ ]= ObjectIdGetDatum (InvalidOid );/* typcollation */
119- nulls [i ++ ]= true;/* typdefaultbin */
120- nulls [i ++ ]= true;/* typdefault */
91+ values [Anum_pg_type_typname - 1 ]= NameGetDatum (& name );
92+ values [Anum_pg_type_typnamespace - 1 ]= ObjectIdGetDatum (typeNamespace );
93+ values [Anum_pg_type_typowner - 1 ]= ObjectIdGetDatum (ownerId );
94+ values [Anum_pg_type_typlen - 1 ]= Int16GetDatum (sizeof (int4 ));
95+ values [Anum_pg_type_typbyval - 1 ]= BoolGetDatum (true);
96+ values [Anum_pg_type_typtype - 1 ]= CharGetDatum (TYPTYPE_PSEUDO );
97+ values [Anum_pg_type_typcategory - 1 ]= CharGetDatum (TYPCATEGORY_PSEUDOTYPE );
98+ values [Anum_pg_type_typispreferred - 1 ]= BoolGetDatum (false);
99+ values [Anum_pg_type_typisdefined - 1 ]= BoolGetDatum (false);
100+ values [Anum_pg_type_typdelim - 1 ]= CharGetDatum (DEFAULT_TYPDELIM );
101+ values [Anum_pg_type_typrelid - 1 ]= ObjectIdGetDatum (InvalidOid );
102+ values [Anum_pg_type_typelem - 1 ]= ObjectIdGetDatum (InvalidOid );
103+ values [Anum_pg_type_typarray - 1 ]= ObjectIdGetDatum (InvalidOid );
104+ values [Anum_pg_type_typinput - 1 ]= ObjectIdGetDatum (F_SHELL_IN );
105+ values [Anum_pg_type_typoutput - 1 ]= ObjectIdGetDatum (F_SHELL_OUT );
106+ values [Anum_pg_type_typreceive - 1 ]= ObjectIdGetDatum (InvalidOid );
107+ values [Anum_pg_type_typsend - 1 ]= ObjectIdGetDatum (InvalidOid );
108+ values [Anum_pg_type_typmodin - 1 ]= ObjectIdGetDatum (InvalidOid );
109+ values [Anum_pg_type_typmodout - 1 ]= ObjectIdGetDatum (InvalidOid );
110+ values [Anum_pg_type_typanalyze - 1 ]= ObjectIdGetDatum (InvalidOid );
111+ values [Anum_pg_type_typalign - 1 ]= CharGetDatum ('i' );
112+ values [Anum_pg_type_typstorage - 1 ]= CharGetDatum ('p' );
113+ values [Anum_pg_type_typnotnull - 1 ]= BoolGetDatum (false);
114+ values [Anum_pg_type_typbasetype - 1 ]= ObjectIdGetDatum (InvalidOid );
115+ values [Anum_pg_type_typtypmod - 1 ]= Int32GetDatum (-1 );
116+ values [Anum_pg_type_typndims - 1 ]= Int32GetDatum (0 );
117+ values [Anum_pg_type_typcollation - 1 ]= ObjectIdGetDatum (InvalidOid );
118+ nulls [Anum_pg_type_typdefaultbin - 1 ]= true;
119+ nulls [Anum_pg_type_typdefault - 1 ]= true;
121120
122121/*
123122 * create a new type tuple
@@ -322,56 +321,53 @@ TypeCreate(Oid newTypeOid,
322321}
323322
324323/*
325- *initialize the * values information
324+ *insert data values
326325 */
327- i = 0 ;
328326namestrcpy (& name ,typeName );
329- values [i ++ ]= NameGetDatum (& name );/* typname */
330- values [i ++ ]= ObjectIdGetDatum (typeNamespace );/* typnamespace */
331- values [i ++ ]= ObjectIdGetDatum (ownerId );/* typowner */
332- values [i ++ ]= Int16GetDatum (internalSize );/* typlen */
333- values [i ++ ]= BoolGetDatum (passedByValue );/* typbyval */
334- values [i ++ ]= CharGetDatum (typeType );/* typtype */
335- values [i ++ ]= CharGetDatum (typeCategory );/* typcategory */
336- values [i ++ ]= BoolGetDatum (typePreferred );/* typispreferred */
337- values [i ++ ]= BoolGetDatum (true);/* typisdefined */
338- values [i ++ ]= CharGetDatum (typDelim );/* typdelim */
339- values [i ++ ]= ObjectIdGetDatum (relationOid );/* typrelid */
340- values [i ++ ]= ObjectIdGetDatum (elementType );/* typelem */
341- values [i ++ ]= ObjectIdGetDatum (arrayType );/* typarray */
342- values [i ++ ]= ObjectIdGetDatum (inputProcedure );/* typinput */
343- values [i ++ ]= ObjectIdGetDatum (outputProcedure );/* typoutput */
344- values [i ++ ]= ObjectIdGetDatum (receiveProcedure );/* typreceive */
345- values [i ++ ]= ObjectIdGetDatum (sendProcedure );/* typsend */
346- values [i ++ ]= ObjectIdGetDatum (typmodinProcedure );/* typmodin */
347- values [i ++ ]= ObjectIdGetDatum (typmodoutProcedure );/* typmodout */
348- values [i ++ ]= ObjectIdGetDatum (analyzeProcedure );/* typanalyze */
349- values [i ++ ]= CharGetDatum (alignment );/* typalign */
350- values [i ++ ]= CharGetDatum (storage );/* typstorage */
351- values [i ++ ]= BoolGetDatum (typeNotNull );/* typnotnull */
352- values [i ++ ]= ObjectIdGetDatum (baseType );/* typbasetype */
353- values [i ++ ]= Int32GetDatum (typeMod );/* typtypmod */
354- values [i ++ ]= Int32GetDatum (typNDims );/* typndims */
355- values [i ++ ]= ObjectIdGetDatum (typeCollation );/* typcollation */
327+ values [Anum_pg_type_typname - 1 ]= NameGetDatum (& name );
328+ values [Anum_pg_type_typnamespace - 1 ]= ObjectIdGetDatum (typeNamespace );
329+ values [Anum_pg_type_typowner - 1 ]= ObjectIdGetDatum (ownerId );
330+ values [Anum_pg_type_typlen - 1 ]= Int16GetDatum (internalSize );
331+ values [Anum_pg_type_typbyval - 1 ]= BoolGetDatum (passedByValue );
332+ values [Anum_pg_type_typtype - 1 ]= CharGetDatum (typeType );
333+ values [Anum_pg_type_typcategory - 1 ]= CharGetDatum (typeCategory );
334+ values [Anum_pg_type_typispreferred - 1 ]= BoolGetDatum (typePreferred );
335+ values [Anum_pg_type_typisdefined - 1 ]= BoolGetDatum (true);
336+ values [Anum_pg_type_typdelim - 1 ]= CharGetDatum (typDelim );
337+ values [Anum_pg_type_typrelid - 1 ]= ObjectIdGetDatum (relationOid );
338+ values [Anum_pg_type_typelem - 1 ]= ObjectIdGetDatum (elementType );
339+ values [Anum_pg_type_typarray - 1 ]= ObjectIdGetDatum (arrayType );
340+ values [Anum_pg_type_typinput - 1 ]= ObjectIdGetDatum (inputProcedure );
341+ values [Anum_pg_type_typoutput - 1 ]= ObjectIdGetDatum (outputProcedure );
342+ values [Anum_pg_type_typreceive - 1 ]= ObjectIdGetDatum (receiveProcedure );
343+ values [Anum_pg_type_typsend - 1 ]= ObjectIdGetDatum (sendProcedure );
344+ values [Anum_pg_type_typmodin - 1 ]= ObjectIdGetDatum (typmodinProcedure );
345+ values [Anum_pg_type_typmodout - 1 ]= ObjectIdGetDatum (typmodoutProcedure );
346+ values [Anum_pg_type_typanalyze - 1 ]= ObjectIdGetDatum (analyzeProcedure );
347+ values [Anum_pg_type_typalign - 1 ]= CharGetDatum (alignment );
348+ values [Anum_pg_type_typstorage - 1 ]= CharGetDatum (storage );
349+ values [Anum_pg_type_typnotnull - 1 ]= BoolGetDatum (typeNotNull );
350+ values [Anum_pg_type_typbasetype - 1 ]= ObjectIdGetDatum (baseType );
351+ values [Anum_pg_type_typtypmod - 1 ]= Int32GetDatum (typeMod );
352+ values [Anum_pg_type_typndims - 1 ]= Int32GetDatum (typNDims );
353+ values [Anum_pg_type_typcollation - 1 ]= ObjectIdGetDatum (typeCollation );
356354
357355/*
358356 * initialize the default binary value for this type. Check for nulls of
359357 * course.
360358 */
361359if (defaultTypeBin )
362- values [i ]= CStringGetTextDatum (defaultTypeBin );
360+ values [Anum_pg_type_typdefaultbin - 1 ]= CStringGetTextDatum (defaultTypeBin );
363361else
364- nulls [i ]= true;
365- i ++ ;/* typdefaultbin */
362+ nulls [Anum_pg_type_typdefaultbin - 1 ]= true;
366363
367364/*
368365 * initialize the default value for this type.
369366 */
370367if (defaultTypeValue )
371- values [i ]= CStringGetTextDatum (defaultTypeValue );
368+ values [Anum_pg_type_typdefault - 1 ]= CStringGetTextDatum (defaultTypeValue );
372369else
373- nulls [i ]= true;
374- i ++ ;/* typdefault */
370+ nulls [Anum_pg_type_typdefault - 1 ]= true;
375371
376372/*
377373 * open pg_type and prepare to insert or update a row.