31 #include "utils/fmgroids.h" 44 Oid conproc,
bool def)
51 bool nulls[Natts_pg_conversion];
59 elog(
ERROR,
"no conversion name supplied");
67 errmsg(
"conversion \"%s\" already exists", conname)));
80 errmsg(
"default conversion for %s to %s already exists",
90 for (i = 0; i < Natts_pg_conversion; i++)
99 Anum_pg_conversion_oid);
101 values[Anum_pg_conversion_conname - 1] =
NameGetDatum(&cname);
102 values[Anum_pg_conversion_connamespace - 1] =
ObjectIdGetDatum(connamespace);
104 values[Anum_pg_conversion_conforencoding - 1] =
Int32GetDatum(conforencoding);
105 values[Anum_pg_conversion_contoencoding - 1] =
Int32GetDatum(contoencoding);
107 values[Anum_pg_conversion_condefault - 1] =
BoolGetDatum(def);
114 myself.
classId = ConversionRelationId;
119 referenced.
classId = ProcedureRelationId;
125 referenced.
classId = NamespaceRelationId;
172 if (body->condefault)
174 proc = body->conproc;
Oid GetNewOidWithIndex(Relation relation, Oid indexId, AttrNumber oidcolumn)
void table_close(Relation relation, LOCKMODE lockmode)
#define InvokeObjectPostCreateHook(classId, objectId, subId)
void namestrcpy(Name name, const char *str)
#define PointerGetDatum(X)
int errcode(int sqlerrcode)
void recordDependencyOn(const ObjectAddress *depender, const ObjectAddress *referenced, DependencyType behavior)
HeapTuple heap_form_tuple(TupleDesc tupleDescriptor, Datum *values, bool *isnull)
void recordDependencyOnOwner(Oid classId, Oid objectId, Oid owner)
void heap_freetuple(HeapTuple htup)
CatCTup * members[FLEXIBLE_ARRAY_MEMBER]
#define ObjectIdGetDatum(X)
#define ConversionOidIndexId
#define ReleaseSysCacheList(x)
ObjectAddress ConversionCreate(const char *conname, Oid connamespace, Oid conowner, int32 conforencoding, int32 contoencoding, Oid conproc, bool def)
FormData_pg_conversion * Form_pg_conversion
#define ereport(elevel,...)
const char * pg_encoding_to_char(int encoding)
void recordDependencyOnCurrentExtension(const ObjectAddress *object, bool isReplace)
#define SearchSysCacheExists2(cacheId, key1, key2)
static Datum values[MAXATTR]
int errmsg(const char *fmt,...)
#define SearchSysCacheList3(cacheId, key1, key2, key3)
Oid FindDefaultConversion(Oid name_space, int32 for_encoding, int32 to_encoding)
Relation table_open(Oid relationId, LOCKMODE lockmode)
#define ERRCODE_DUPLICATE_OBJECT
void CatalogTupleInsert(Relation heapRel, HeapTuple tup)