@@ -87,37 +87,36 @@ TypeShellMake(const char *typeName, Oid typeNamespace, Oid ownerId)
87
87
* give it typtype = TYPTYPE_PSEUDO as extra insurance that it won't be
88
88
* mistaken for a usable type.
89
89
*/
90
- i = 0 ;
91
90
namestrcpy (& 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;
121
120
122
121
/*
123
122
* create a new type tuple
@@ -322,56 +321,53 @@ TypeCreate(Oid newTypeOid,
322
321
}
323
322
324
323
/*
325
- *initialize the * values information
324
+ *insert data values
326
325
*/
327
- i = 0 ;
328
326
namestrcpy (& 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 );
356
354
357
355
/*
358
356
* initialize the default binary value for this type. Check for nulls of
359
357
* course.
360
358
*/
361
359
if (defaultTypeBin )
362
- values [i ]= CStringGetTextDatum (defaultTypeBin );
360
+ values [Anum_pg_type_typdefaultbin - 1 ]= CStringGetTextDatum (defaultTypeBin );
363
361
else
364
- nulls [i ]= true;
365
- i ++ ;/* typdefaultbin */
362
+ nulls [Anum_pg_type_typdefaultbin - 1 ]= true;
366
363
367
364
/*
368
365
* initialize the default value for this type.
369
366
*/
370
367
if (defaultTypeValue )
371
- values [i ]= CStringGetTextDatum (defaultTypeValue );
368
+ values [Anum_pg_type_typdefault - 1 ]= CStringGetTextDatum (defaultTypeValue );
372
369
else
373
- nulls [i ]= true;
374
- i ++ ;/* typdefault */
370
+ nulls [Anum_pg_type_typdefault - 1 ]= true;
375
371
376
372
/*
377
373
* open pg_type and prepare to insert or update a row.