summaryrefslogtreecommitdiff
path: root/src/backend/catalog
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-07-05 23:12:09 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-07-05 23:12:09 +0000
commit40f64064ff56c3118d156ba83df72b1779415a8a (patch)
treed318bf6c8e6e85a15d2cd6e997ee02bf233dd181 /src/backend/catalog
parent282713a836d5dfe3dcefeaa6a6cedf5f000bdb09 (diff)
downloadpostgresql-40f64064ff56c3118d156ba83df72b1779415a8a.tar.gz
Update textin() and textout() to new fmgr style. This is just phase
one of updating the whole text datatype, but there are so dang many calls of these two routines that it seems worth a separate commit.
Diffstat (limited to 'src/backend/catalog')
-rw-r--r--src/backend/catalog/heap.c17
-rw-r--r--src/backend/catalog/index.c19
-rw-r--r--src/backend/catalog/pg_aggregate.c20
-rw-r--r--src/backend/catalog/pg_proc.c11
-rw-r--r--src/backend/catalog/pg_type.c48
5 files changed, 62 insertions, 53 deletions
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index bd330b5d1e..08b5e64c53 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.138 2000/07/04 06:11:23 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.139 2000/07/05 23:11:06 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -1121,7 +1121,8 @@ RelationTruncateIndexes(Relation heapRelation)
/* If a valid where predicate, compute predicate Node */
if (VARSIZE(&index->indpred) != 0)
{
- predString = textout(&index->indpred);
+ predString = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&index->indpred)));
oldPred = stringToNode(predString);
pfree(predString);
}
@@ -1602,8 +1603,10 @@ StoreAttrDefault(Relation rel, AttrNumber attnum, char *adbin,
values[Anum_pg_attrdef_adrelid - 1] = RelationGetRelid(rel);
values[Anum_pg_attrdef_adnum - 1] = attnum;
- values[Anum_pg_attrdef_adbin - 1] = PointerGetDatum(textin(adbin));
- values[Anum_pg_attrdef_adsrc - 1] = PointerGetDatum(textin(adsrc));
+ values[Anum_pg_attrdef_adbin - 1] = DirectFunctionCall1(textin,
+ CStringGetDatum(adbin));
+ values[Anum_pg_attrdef_adsrc - 1] = DirectFunctionCall1(textin,
+ CStringGetDatum(adsrc));
adrel = heap_openr(AttrDefaultRelationName, RowExclusiveLock);
tuple = heap_formtuple(adrel->rd_att, values, nulls);
heap_insert(adrel, tuple);
@@ -1685,8 +1688,10 @@ StoreRelCheck(Relation rel, char *ccname, char *ccbin)
values[Anum_pg_relcheck_rcrelid - 1] = RelationGetRelid(rel);
values[Anum_pg_relcheck_rcname - 1] = PointerGetDatum(namein(ccname));
- values[Anum_pg_relcheck_rcbin - 1] = PointerGetDatum(textin(ccbin));
- values[Anum_pg_relcheck_rcsrc - 1] = PointerGetDatum(textin(ccsrc));
+ values[Anum_pg_relcheck_rcbin - 1] = DirectFunctionCall1(textin,
+ CStringGetDatum(ccbin));
+ values[Anum_pg_relcheck_rcsrc - 1] = DirectFunctionCall1(textin,
+ CStringGetDatum(ccsrc));
rcrel = heap_openr(RelCheckRelationName, RowExclusiveLock);
tuple = heap_formtuple(rcrel->rd_att, values, nulls);
heap_insert(rcrel, tuple);
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index bedb84e6d2..e1909e4404 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.123 2000/07/05 16:17:37 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.124 2000/07/05 23:11:06 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -680,11 +680,13 @@ UpdateIndexRelation(Oid indexoid,
if (predicate != NULL)
{
predString = nodeToString(predicate);
- predText = textin(predString);
+ predText = DatumGetTextP(DirectFunctionCall1(textin,
+ CStringGetDatum(predString)));
pfree(predString);
}
else
- predText = textin("");
+ predText = DatumGetTextP(DirectFunctionCall1(textin,
+ CStringGetDatum("")));
predLen = VARSIZE(predText);
itupLen = predLen + sizeof(FormData_pg_index);
@@ -824,11 +826,13 @@ UpdateIndexPredicate(Oid indexoid, Node *oldPred, Node *predicate)
if (newPred != NULL)
{
predString = nodeToString(newPred);
- predText = textin(predString);
+ predText = DatumGetTextP(DirectFunctionCall1(textin,
+ CStringGetDatum(predString)));
pfree(predString);
}
else
- predText = textin("");
+ predText = DatumGetTextP(DirectFunctionCall1(textin,
+ CStringGetDatum("")));
/* open the index system catalog relation */
pg_index = heap_openr(IndexRelationName, RowExclusiveLock);
@@ -1337,7 +1341,7 @@ IndexesAreActive(Oid relid, bool confirmCommitted)
elog(ERROR, "IndexesAreActive couldn't lock %u", relid);
if (((Form_pg_class) GETSTRUCT(&tuple))->relkind != RELKIND_RELATION &&
((Form_pg_class) GETSTRUCT(&tuple))->relkind != RELKIND_TOASTVALUE)
- elog(ERROR, "relation %u isn't an relation", relid);
+ elog(ERROR, "relation %u isn't an indexable relation", relid);
isactive = ((Form_pg_class) GETSTRUCT(&tuple))->relhasindex;
ReleaseBuffer(buffer);
if (isactive)
@@ -2080,7 +2084,8 @@ reindex_index(Oid indexId, bool force)
/* If a valid where predicate, compute predicate Node */
if (VARSIZE(&index->indpred) != 0)
{
- predString = textout(&index->indpred);
+ predString = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&index->indpred)));
oldPred = stringToNode(predString);
pfree(predString);
}
diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c
index 37c6a8cb41..f068c897ec 100644
--- a/src/backend/catalog/pg_aggregate.c
+++ b/src/backend/catalog/pg_aggregate.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.33 2000/05/30 04:24:36 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.34 2000/07/05 23:11:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -238,12 +238,14 @@ AggregateCreate(char *aggName,
values[Anum_pg_aggregate_aggfinaltype - 1] = ObjectIdGetDatum(fret);
if (agginitval1)
- values[Anum_pg_aggregate_agginitval1 - 1] = PointerGetDatum(textin(agginitval1));
+ values[Anum_pg_aggregate_agginitval1 - 1] =
+ DirectFunctionCall1(textin, CStringGetDatum(agginitval1));
else
nulls[Anum_pg_aggregate_agginitval1 - 1] = 'n';
if (agginitval2)
- values[Anum_pg_aggregate_agginitval2 - 1] = PointerGetDatum(textin(agginitval2));
+ values[Anum_pg_aggregate_agginitval2 - 1] =
+ DirectFunctionCall1(textin, CStringGetDatum(agginitval2));
else
nulls[Anum_pg_aggregate_agginitval2 - 1] = 'n';
@@ -277,7 +279,7 @@ AggNameGetInitVal(char *aggName, Oid basetype, int xfuncno, bool *isNull)
Oid transtype,
typinput,
typelem;
- text *textInitVal;
+ Datum textInitVal;
char *strInitVal;
Datum initVal;
@@ -312,17 +314,15 @@ AggNameGetInitVal(char *aggName, Oid basetype, int xfuncno, bool *isNull)
initValAttno = Anum_pg_aggregate_agginitval2;
}
- textInitVal = (text *) fastgetattr(tup, initValAttno,
- RelationGetDescr(aggRel),
- isNull);
- if (!PointerIsValid(textInitVal))
- *isNull = true;
+ textInitVal = fastgetattr(tup, initValAttno,
+ RelationGetDescr(aggRel),
+ isNull);
if (*isNull)
{
heap_close(aggRel, AccessShareLock);
return PointerGetDatum(NULL);
}
- strInitVal = textout(textInitVal);
+ strInitVal = DatumGetCString(DirectFunctionCall1(textout, textInitVal));
heap_close(aggRel, AccessShareLock);
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index e6091f6f63..0322d982d1 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.45 2000/06/28 03:31:23 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.46 2000/07/05 23:11:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -156,7 +156,8 @@ ProcedureCreate(char *procedureName,
*/
text *prosrctext;
- prosrctext = textin(prosrc);
+ prosrctext = DatumGetTextP(DirectFunctionCall1(textin,
+ CStringGetDatum(prosrc)));
tup = SearchSysCacheTuple(PROSRC,
PointerGetDatum(prosrctext),
0, 0, 0);
@@ -306,8 +307,10 @@ ProcedureCreate(char *procedureName,
values[i++] = Int32GetDatum(perbyte_cpu); /* properbyte_cpu */
values[i++] = Int32GetDatum(percall_cpu); /* propercall_cpu */
values[i++] = Int32GetDatum(outin_ratio); /* prooutin_ratio */
- values[i++] = (Datum) textin(prosrc); /* prosrc */
- values[i++] = (Datum) textin(probin); /* probin */
+ values[i++] = DirectFunctionCall1(textin, /* prosrc */
+ CStringGetDatum(prosrc));
+ values[i++] = DirectFunctionCall1(textin, /* probin */
+ CStringGetDatum(probin));
rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index bd34ee0a20..8356958d32 100644
--- a/src/backend/catalog/pg_type.c
+++ b/src/backend/catalog/pg_type.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.53 2000/07/03 23:09:28 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.54 2000/07/05 23:11:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -167,32 +167,29 @@ TypeShellMakeWithOpenRelation(Relation pg_type_desc, char *typeName)
}
/* ----------------
- * initialize *values with the type name and
+ * initialize *values with the type name and dummy values
* ----------------
*/
i = 0;
namestrcpy(&name, typeName);
- values[i++] = NameGetDatum(&name); /* 1 */
- values[i++] = (Datum) InvalidOid; /* 2 */
- values[i++] = (Datum) (int16) 0; /* 3 */
- values[i++] = (Datum) (int16) 0; /* 4 */
- values[i++] = (Datum) (bool) 0; /* 5 */
- values[i++] = (Datum) (bool) 0; /* 6 */
- values[i++] = (Datum) (bool) 0; /* 7 */
- values[i++] = (Datum) (bool) 0; /* 8 */
- values[i++] = (Datum) InvalidOid; /* 9 */
- values[i++] = (Datum) InvalidOid; /* 10 */
- values[i++] = (Datum) InvalidOid; /* 11 */
- values[i++] = (Datum) InvalidOid; /* 12 */
- values[i++] = (Datum) InvalidOid; /* 13 */
- values[i++] = (Datum) InvalidOid; /* 14 */
- values[i++] = (Datum) 'p'; /* 15 */
- values[i++] = (Datum) 'i'; /* 16 */
-
- /*
- * ... and fill typdefault with a bogus value
- */
- values[i++] = (Datum) textin(typeName); /* 15 */
+ values[i++] = NameGetDatum(&name); /* 1 */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* 2 */
+ values[i++] = Int16GetDatum(0); /* 3 */
+ values[i++] = Int16GetDatum(0); /* 4 */
+ values[i++] = BoolGetDatum(false); /* 5 */
+ values[i++] = BoolGetDatum(false); /* 6 */
+ values[i++] = BoolGetDatum(false); /* 7 */
+ values[i++] = BoolGetDatum(false); /* 8 */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* 9 */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* 10 */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* 11 */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* 12 */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* 13 */
+ values[i++] = ObjectIdGetDatum(InvalidOid); /* 14 */
+ values[i++] = CharGetDatum('p'); /* 15 */
+ values[i++] = CharGetDatum('i'); /* 16 */
+ values[i++] = DirectFunctionCall1(textin,
+ CStringGetDatum(typeName)); /* 17 */
/* ----------------
* create a new type tuple with FormHeapTuple
@@ -460,9 +457,8 @@ TypeCreate(char *typeName,
* initialize the default value for this type.
* ----------------
*/
- values[i] = (Datum) textin(PointerIsValid(defaultTypeValue) /* 17 */
- ? defaultTypeValue : "-"); /* XXX default
- * typdefault */
+ values[i] = DirectFunctionCall1(textin, /* 17 */
+ CStringGetDatum(defaultTypeValue ? defaultTypeValue : "-"));
/* ----------------
* open pg_type and begin a scan for the type name.