* initialize values[] with the operator name and input data types. Note
* that oprcode is set to InvalidOid, indicating it's a shell.
*/
- i = 0;
namestrcpy(&oname, operatorName);
- values[i++] = NameGetDatum(&oname); /* oprname */
- values[i++] = ObjectIdGetDatum(operatorNamespace); /* oprnamespace */
- values[i++] = ObjectIdGetDatum(GetUserId()); /* oprowner */
- values[i++] = CharGetDatum(leftTypeId ? (rightTypeId ? 'b' : 'r') : 'l'); /* oprkind */
- values[i++] = BoolGetDatum(false); /* oprcanmerge */
- values[i++] = BoolGetDatum(false); /* oprcanhash */
- values[i++] = ObjectIdGetDatum(leftTypeId); /* oprleft */
- values[i++] = ObjectIdGetDatum(rightTypeId); /* oprright */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* oprresult */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* oprcom */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* oprnegate */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* oprcode */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* oprrest */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* oprjoin */
+ values[Anum_pg_operator_oprname - 1] = NameGetDatum(&oname);
+ values[Anum_pg_operator_oprnamespace - 1] = ObjectIdGetDatum(operatorNamespace);
+ values[Anum_pg_operator_oprowner - 1] = ObjectIdGetDatum(GetUserId());
+ values[Anum_pg_operator_oprkind - 1] = CharGetDatum(leftTypeId ? (rightTypeId ? 'b' : 'r') : 'l');
+ values[Anum_pg_operator_oprcanmerge - 1] = BoolGetDatum(false);
+ values[Anum_pg_operator_oprcanhash - 1] = BoolGetDatum(false);
+ values[Anum_pg_operator_oprleft - 1] = ObjectIdGetDatum(leftTypeId);
+ values[Anum_pg_operator_oprright - 1] = ObjectIdGetDatum(rightTypeId);
+ values[Anum_pg_operator_oprresult - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_operator_oprcom - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_operator_oprnegate - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_operator_oprcode - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_operator_oprrest - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_operator_oprjoin - 1] = ObjectIdGetDatum(InvalidOid);
/*
* open pg_operator
nulls[i] = false;
}
- i = 0;
namestrcpy(&oname, operatorName);
- values[i++] = NameGetDatum(&oname); /* oprname */
- values[i++] = ObjectIdGetDatum(operatorNamespace); /* oprnamespace */
- values[i++] = ObjectIdGetDatum(GetUserId()); /* oprowner */
- values[i++] = CharGetDatum(leftTypeId ? (rightTypeId ? 'b' : 'r') : 'l'); /* oprkind */
- values[i++] = BoolGetDatum(canMerge); /* oprcanmerge */
- values[i++] = BoolGetDatum(canHash); /* oprcanhash */
- values[i++] = ObjectIdGetDatum(leftTypeId); /* oprleft */
- values[i++] = ObjectIdGetDatum(rightTypeId); /* oprright */
- values[i++] = ObjectIdGetDatum(operResultType); /* oprresult */
- values[i++] = ObjectIdGetDatum(commutatorId); /* oprcom */
- values[i++] = ObjectIdGetDatum(negatorId); /* oprnegate */
- values[i++] = ObjectIdGetDatum(procedureId); /* oprcode */
- values[i++] = ObjectIdGetDatum(restrictionId); /* oprrest */
- values[i++] = ObjectIdGetDatum(joinId); /* oprjoin */
+ values[Anum_pg_operator_oprname - 1] = NameGetDatum(&oname);
+ values[Anum_pg_operator_oprnamespace - 1] = ObjectIdGetDatum(operatorNamespace);
+ values[Anum_pg_operator_oprowner - 1] = ObjectIdGetDatum(GetUserId());
+ values[Anum_pg_operator_oprkind - 1] = CharGetDatum(leftTypeId ? (rightTypeId ? 'b' : 'r') : 'l');
+ values[Anum_pg_operator_oprcanmerge - 1] = BoolGetDatum(canMerge);
+ values[Anum_pg_operator_oprcanhash - 1] = BoolGetDatum(canHash);
+ values[Anum_pg_operator_oprleft - 1] = ObjectIdGetDatum(leftTypeId);
+ values[Anum_pg_operator_oprright - 1] = ObjectIdGetDatum(rightTypeId);
+ values[Anum_pg_operator_oprresult - 1] = ObjectIdGetDatum(operResultType);
+ values[Anum_pg_operator_oprcom - 1] = ObjectIdGetDatum(commutatorId);
+ values[Anum_pg_operator_oprnegate - 1] = ObjectIdGetDatum(negatorId);
+ values[Anum_pg_operator_oprcode - 1] = ObjectIdGetDatum(procedureId);
+ values[Anum_pg_operator_oprrest - 1] = ObjectIdGetDatum(restrictionId);
+ values[Anum_pg_operator_oprjoin - 1] = ObjectIdGetDatum(joinId);
pg_operator_desc = heap_open(OperatorRelationId, RowExclusiveLock);
* give it typtype = TYPTYPE_PSEUDO as extra insurance that it won't be
* mistaken for a usable type.
*/
- i = 0;
namestrcpy(&name, typeName);
- values[i++] = NameGetDatum(&name); /* typname */
- values[i++] = ObjectIdGetDatum(typeNamespace); /* typnamespace */
- values[i++] = ObjectIdGetDatum(ownerId); /* typowner */
- values[i++] = Int16GetDatum(sizeof(int4)); /* typlen */
- values[i++] = BoolGetDatum(true); /* typbyval */
- values[i++] = CharGetDatum(TYPTYPE_PSEUDO); /* typtype */
- values[i++] = CharGetDatum(TYPCATEGORY_PSEUDOTYPE); /* typcategory */
- values[i++] = BoolGetDatum(false); /* typispreferred */
- values[i++] = BoolGetDatum(false); /* typisdefined */
- values[i++] = CharGetDatum(DEFAULT_TYPDELIM); /* typdelim */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typrelid */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typelem */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typarray */
- values[i++] = ObjectIdGetDatum(F_SHELL_IN); /* typinput */
- values[i++] = ObjectIdGetDatum(F_SHELL_OUT); /* typoutput */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typreceive */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typsend */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typmodin */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typmodout */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typanalyze */
- values[i++] = CharGetDatum('i'); /* typalign */
- values[i++] = CharGetDatum('p'); /* typstorage */
- values[i++] = BoolGetDatum(false); /* typnotnull */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typbasetype */
- values[i++] = Int32GetDatum(-1); /* typtypmod */
- values[i++] = Int32GetDatum(0); /* typndims */
- values[i++] = ObjectIdGetDatum(InvalidOid); /* typcollation */
- nulls[i++] = true; /* typdefaultbin */
- nulls[i++] = true; /* typdefault */
+ values[Anum_pg_type_typname - 1] = NameGetDatum(&name);
+ values[Anum_pg_type_typnamespace - 1] = ObjectIdGetDatum(typeNamespace);
+ values[Anum_pg_type_typowner - 1] = ObjectIdGetDatum(ownerId);
+ values[Anum_pg_type_typlen - 1] = Int16GetDatum(sizeof(int4));
+ values[Anum_pg_type_typbyval - 1] = BoolGetDatum(true);
+ values[Anum_pg_type_typtype - 1] = CharGetDatum(TYPTYPE_PSEUDO);
+ values[Anum_pg_type_typcategory - 1] = CharGetDatum(TYPCATEGORY_PSEUDOTYPE);
+ values[Anum_pg_type_typispreferred - 1] = BoolGetDatum(false);
+ values[Anum_pg_type_typisdefined - 1] = BoolGetDatum(false);
+ values[Anum_pg_type_typdelim - 1] = CharGetDatum(DEFAULT_TYPDELIM);
+ values[Anum_pg_type_typrelid - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typelem - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typarray - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typinput - 1] = ObjectIdGetDatum(F_SHELL_IN);
+ values[Anum_pg_type_typoutput - 1] = ObjectIdGetDatum(F_SHELL_OUT);
+ values[Anum_pg_type_typreceive - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typsend - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typmodin - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typmodout - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typanalyze - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typalign - 1] = CharGetDatum('i');
+ values[Anum_pg_type_typstorage - 1] = CharGetDatum('p');
+ values[Anum_pg_type_typnotnull - 1] = BoolGetDatum(false);
+ values[Anum_pg_type_typbasetype - 1] = ObjectIdGetDatum(InvalidOid);
+ values[Anum_pg_type_typtypmod - 1] = Int32GetDatum(-1);
+ values[Anum_pg_type_typndims - 1] = Int32GetDatum(0);
+ values[Anum_pg_type_typcollation - 1] = ObjectIdGetDatum(InvalidOid);
+ nulls[Anum_pg_type_typdefaultbin - 1] = true;
+ nulls[Anum_pg_type_typdefault - 1] = true;
/*
* create a new type tuple
}
/*
- * initialize the *values information
+ * insert data values
*/
- i = 0;
namestrcpy(&name, typeName);
- values[i++] = NameGetDatum(&name); /* typname */
- values[i++] = ObjectIdGetDatum(typeNamespace); /* typnamespace */
- values[i++] = ObjectIdGetDatum(ownerId); /* typowner */
- values[i++] = Int16GetDatum(internalSize); /* typlen */
- values[i++] = BoolGetDatum(passedByValue); /* typbyval */
- values[i++] = CharGetDatum(typeType); /* typtype */
- values[i++] = CharGetDatum(typeCategory); /* typcategory */
- values[i++] = BoolGetDatum(typePreferred); /* typispreferred */
- values[i++] = BoolGetDatum(true); /* typisdefined */
- values[i++] = CharGetDatum(typDelim); /* typdelim */
- values[i++] = ObjectIdGetDatum(relationOid); /* typrelid */
- values[i++] = ObjectIdGetDatum(elementType); /* typelem */
- values[i++] = ObjectIdGetDatum(arrayType); /* typarray */
- values[i++] = ObjectIdGetDatum(inputProcedure); /* typinput */
- values[i++] = ObjectIdGetDatum(outputProcedure); /* typoutput */
- values[i++] = ObjectIdGetDatum(receiveProcedure); /* typreceive */
- values[i++] = ObjectIdGetDatum(sendProcedure); /* typsend */
- values[i++] = ObjectIdGetDatum(typmodinProcedure); /* typmodin */
- values[i++] = ObjectIdGetDatum(typmodoutProcedure); /* typmodout */
- values[i++] = ObjectIdGetDatum(analyzeProcedure); /* typanalyze */
- values[i++] = CharGetDatum(alignment); /* typalign */
- values[i++] = CharGetDatum(storage); /* typstorage */
- values[i++] = BoolGetDatum(typeNotNull); /* typnotnull */
- values[i++] = ObjectIdGetDatum(baseType); /* typbasetype */
- values[i++] = Int32GetDatum(typeMod); /* typtypmod */
- values[i++] = Int32GetDatum(typNDims); /* typndims */
- values[i++] = ObjectIdGetDatum(typeCollation); /* typcollation */
+ values[Anum_pg_type_typname - 1] = NameGetDatum(&name);
+ values[Anum_pg_type_typnamespace - 1] = ObjectIdGetDatum(typeNamespace);
+ values[Anum_pg_type_typowner - 1] = ObjectIdGetDatum(ownerId);
+ values[Anum_pg_type_typlen - 1] = Int16GetDatum(internalSize);
+ values[Anum_pg_type_typbyval - 1] = BoolGetDatum(passedByValue);
+ values[Anum_pg_type_typtype - 1] = CharGetDatum(typeType);
+ values[Anum_pg_type_typcategory - 1] = CharGetDatum(typeCategory);
+ values[Anum_pg_type_typispreferred - 1] = BoolGetDatum(typePreferred);
+ values[Anum_pg_type_typisdefined - 1] = BoolGetDatum(true);
+ values[Anum_pg_type_typdelim - 1] = CharGetDatum(typDelim);
+ values[Anum_pg_type_typrelid - 1] = ObjectIdGetDatum(relationOid);
+ values[Anum_pg_type_typelem - 1] = ObjectIdGetDatum(elementType);
+ values[Anum_pg_type_typarray - 1] = ObjectIdGetDatum(arrayType);
+ values[Anum_pg_type_typinput - 1] = ObjectIdGetDatum(inputProcedure);
+ values[Anum_pg_type_typoutput - 1] = ObjectIdGetDatum(outputProcedure);
+ values[Anum_pg_type_typreceive - 1] = ObjectIdGetDatum(receiveProcedure);
+ values[Anum_pg_type_typsend - 1] = ObjectIdGetDatum(sendProcedure);
+ values[Anum_pg_type_typmodin - 1] = ObjectIdGetDatum(typmodinProcedure);
+ values[Anum_pg_type_typmodout - 1] = ObjectIdGetDatum(typmodoutProcedure);
+ values[Anum_pg_type_typanalyze - 1] = ObjectIdGetDatum(analyzeProcedure);
+ values[Anum_pg_type_typalign - 1] = CharGetDatum(alignment);
+ values[Anum_pg_type_typstorage - 1] = CharGetDatum(storage);
+ values[Anum_pg_type_typnotnull - 1] = BoolGetDatum(typeNotNull);
+ values[Anum_pg_type_typbasetype - 1] = ObjectIdGetDatum(baseType);
+ values[Anum_pg_type_typtypmod - 1] = Int32GetDatum(typeMod);
+ values[Anum_pg_type_typndims - 1] = Int32GetDatum(typNDims);
+ values[Anum_pg_type_typcollation - 1] = ObjectIdGetDatum(typeCollation);
/*
* initialize the default binary value for this type. Check for nulls of
* course.
*/
if (defaultTypeBin)
- values[i] = CStringGetTextDatum(defaultTypeBin);
+ values[Anum_pg_type_typdefaultbin - 1] = CStringGetTextDatum(defaultTypeBin);
else
- nulls[i] = true;
- i++; /* typdefaultbin */
+ nulls[Anum_pg_type_typdefaultbin - 1] = true;
/*
* initialize the default value for this type.
*/
if (defaultTypeValue)
- values[i] = CStringGetTextDatum(defaultTypeValue);
+ values[Anum_pg_type_typdefault - 1] = CStringGetTextDatum(defaultTypeValue);
else
- nulls[i] = true;
- i++; /* typdefault */
+ nulls[Anum_pg_type_typdefault - 1] = true;
/*
* open pg_type and prepare to insert or update a row.