aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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
-rw-r--r--src/backend/commands/analyze.c20
-rw-r--r--src/backend/commands/command.c21
-rw-r--r--src/backend/commands/comment.c2
-rw-r--r--src/backend/commands/copy.c5
-rw-r--r--src/backend/commands/dbcommands.c5
-rw-r--r--src/backend/commands/indexcmds.c5
-rw-r--r--src/backend/commands/proclang.c7
-rw-r--r--src/backend/commands/sequence.c3
-rw-r--r--src/backend/commands/user.c17
-rw-r--r--src/backend/executor/execUtils.c5
-rw-r--r--src/backend/libpq/be-pqexec.c11
-rw-r--r--src/backend/optimizer/path/indxpath.c23
-rw-r--r--src/backend/optimizer/util/plancat.c6
-rw-r--r--src/backend/parser/parse_coerce.c5
-rw-r--r--src/backend/parser/parse_node.c4
-rw-r--r--src/backend/utils/adt/formatting.c12
-rw-r--r--src/backend/utils/adt/regexp.c5
-rw-r--r--src/backend/utils/adt/selfuncs.c32
-rw-r--r--src/backend/utils/adt/tid.c37
-rw-r--r--src/backend/utils/adt/timestamp.c33
-rw-r--r--src/backend/utils/adt/varlena.c32
-rw-r--r--src/backend/utils/cache/fcache.c24
-rw-r--r--src/backend/utils/cache/relcache.c24
-rw-r--r--src/backend/utils/fmgr/dfmgr.c14
-rw-r--r--src/backend/utils/fmgr/fmgr.c5
-rw-r--r--src/include/catalog/pg_proc.h6
-rw-r--r--src/include/utils/builtins.h6
-rw-r--r--src/pl/plperl/plperl.c9
-rw-r--r--src/pl/plpgsql/src/pl_comp.c5
-rw-r--r--src/pl/plpgsql/src/pl_exec.c28
-rw-r--r--src/pl/tcl/pltcl.c8
-rw-r--r--src/test/regress/regress.c5
37 files changed, 277 insertions, 262 deletions
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index bd330b5d1ea..08b5e64c53d 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 bedb84e6d24..e1909e4404c 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 37c6a8cb41d..f068c897ec1 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 e6091f6f63c..0322d982d16 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 bd34ee0a200..8356958d325 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.
diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c
index 719e20a4161..c584d972209 100644
--- a/src/backend/commands/analyze.c
+++ b/src/backend/commands/analyze.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/analyze.c,v 1.2 2000/05/30 04:25:00 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/analyze.c,v 1.3 2000/07/05 23:11:08 tgl Exp $
*
*-------------------------------------------------------------------------
@@ -515,8 +515,8 @@ update_attstats(Oid relid, int natts, VacAttrStats *vacattrstats)
*/
if (VacAttrStatsLtGtValid(stats) && stats->initialized)
{
- float32data nullratio;
- float32data bestratio;
+ float4 nullratio;
+ float4 bestratio;
FmgrInfo out_function;
char *out_string;
double best_cnt_d = stats->best_cnt,
@@ -541,26 +541,28 @@ update_attstats(Oid relid, int natts, VacAttrStats *vacattrstats)
values[i++] = ObjectIdGetDatum(relid); /* starelid */
values[i++] = Int16GetDatum(attp->attnum); /* staattnum */
values[i++] = ObjectIdGetDatum(stats->op_cmplt); /* staop */
- /* hack: this code knows float4 is pass-by-ref */
- values[i++] = Float32GetDatum(&nullratio); /* stanullfrac */
- values[i++] = Float32GetDatum(&bestratio); /* stacommonfrac */
+ values[i++] = Float4GetDatum(nullratio); /* stanullfrac */
+ values[i++] = Float4GetDatum(bestratio); /* stacommonfrac */
out_string = DatumGetCString(FunctionCall3(&out_function,
stats->best,
ObjectIdGetDatum(stats->typelem),
Int32GetDatum(stats->attr->atttypmod)));
- values[i++] = PointerGetDatum(textin(out_string)); /* stacommonval */
+ values[i++] = DirectFunctionCall1(textin, /* stacommonval */
+ CStringGetDatum(out_string));
pfree(out_string);
out_string = DatumGetCString(FunctionCall3(&out_function,
stats->min,
ObjectIdGetDatum(stats->typelem),
Int32GetDatum(stats->attr->atttypmod)));
- values[i++] = PointerGetDatum(textin(out_string)); /* staloval */
+ values[i++] = DirectFunctionCall1(textin, /* staloval */
+ CStringGetDatum(out_string));
pfree(out_string);
out_string = DatumGetCString(FunctionCall3(&out_function,
stats->max,
ObjectIdGetDatum(stats->typelem),
Int32GetDatum(stats->attr->atttypmod)));
- values[i++] = PointerGetDatum(textin(out_string)); /* stahival */
+ values[i++] = DirectFunctionCall1(textin, /* stahival */
+ CStringGetDatum(out_string));
pfree(out_string);
stup = heap_formtuple(sd->rd_att, values, nulls);
diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c
index e3847ab5f4d..6648e66f4e3 100644
--- a/src/backend/commands/command.c
+++ b/src/backend/commands/command.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.87 2000/07/05 16:17:38 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.88 2000/07/05 23:11:09 tgl Exp $
*
* NOTES
* The PerformAddAttribute() code, like most of the relation
@@ -788,7 +788,6 @@ RemoveColumnReferences(Oid reloid, int attnum, bool checkonly, HeapTuple reltup)
HeapTuple htup,
indexTuple;
Form_pg_index index;
- Form_pg_relcheck relcheck;
Form_pg_class pgcform = (Form_pg_class) NULL;
int i;
bool checkok = true;
@@ -807,13 +806,13 @@ RemoveColumnReferences(Oid reloid, int attnum, bool checkonly, HeapTuple reltup)
while (HeapTupleIsValid(htup = systable_getnext(sysscan)))
{
+ Form_pg_relcheck relcheck;
char *ccbin;
Node *node;
relcheck = (Form_pg_relcheck) GETSTRUCT(htup);
- ccbin = textout(&relcheck->rcbin);
- if (!ccbin)
- continue;
+ ccbin = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&relcheck->rcbin)));
node = stringToNode(ccbin);
pfree(ccbin);
if (find_attribute_in_node(node, attnum))
@@ -1322,10 +1321,12 @@ AlterTableCreateToastTable(const char *relationName, bool silent)
BYTEAOID,
-1, 0, false);
- /* XXX what if owning relation is temp? need we mark toasttable too? */
- /* XXX How do we know? No naming collisions possible because names */
- /* are OID based. And toast table disappears when master table */
- /* is destroyed. So what is it good for anyway? Jan */
+ /*
+ * Note: the toast relation is considered a "normal" relation even if
+ * its master relation is a temp table. There cannot be any naming
+ * collision, and the toast rel will be destroyed when its master is,
+ * so there's no need to handle the toast rel as temp.
+ */
heap_create_with_catalog(toast_relname, tupdesc, RELKIND_TOASTVALUE,
false, true);
@@ -1399,7 +1400,7 @@ AlterTableCreateToastTable(const char *relationName, bool silent)
heap_freetuple(reltup);
/*
- * Close relatons and make changes visible
+ * Close relations and make changes visible
*/
heap_close(class_rel, NoLock);
heap_close(rel, NoLock);
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index 2b9bf4d7723..c76912f332a 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -151,7 +151,7 @@ CreateComments(Oid oid, char *comment)
}
i = 0;
values[i++] = ObjectIdGetDatum(oid);
- values[i++] = (Datum) textin(comment);
+ values[i++] = DirectFunctionCall1(textin, CStringGetDatum(comment));
}
/*** Now, open pg_description and attempt to find the old tuple ***/
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 177b339be8c..441941762ea 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.116 2000/06/28 06:05:36 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.117 2000/07/05 23:11:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -676,7 +676,8 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim, char *null
indexNatts[i] = natts;
if (VARSIZE(&pgIndexP[i]->indpred) != 0)
{
- predString = textout(&pgIndexP[i]->indpred);
+ predString = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&pgIndexP[i]->indpred)));
indexPred[i] = stringToNode(predString);
pfree(predString);
/* make dummy ExprContext for use by ExecQual */
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 72cfd297aa7..bda64842c49 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.57 2000/06/02 04:04:54 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.58 2000/07/05 23:11:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -101,7 +101,8 @@ createdb(const char *dbname, const char *dbpath, int encoding)
new_record[Anum_pg_database_datname - 1] = NameGetDatum(namein(dbname));
new_record[Anum_pg_database_datdba - 1] = Int32GetDatum(user_id);
new_record[Anum_pg_database_encoding - 1] = Int32GetDatum(encoding);
- new_record[Anum_pg_database_datpath - 1] = PointerGetDatum(textin(locbuf));
+ new_record[Anum_pg_database_datpath - 1] = DirectFunctionCall1(textin,
+ CStringGetDatum(locbuf));
tuple = heap_formtuple(pg_database_dsc, new_record, new_record_nulls);
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 1446aa8844b..efe8a44180a 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.33 2000/07/04 06:11:27 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.34 2000/07/05 23:11:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -304,7 +304,8 @@ ExtendIndex(char *indexRelationName, Expr *predicate, List *rangetable)
{
char *predString;
- predString = textout(&index->indpred);
+ predString = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&index->indpred)));
oldPred = stringToNode(predString);
pfree(predString);
}
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index 9b5f7c1ddff..ec8aec7005f 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -117,10 +117,11 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
i = 0;
values[i++] = PointerGetDatum(languageName);
- values[i++] = Int8GetDatum((bool) 1);
- values[i++] = Int8GetDatum(stmt->pltrusted);
+ values[i++] = BoolGetDatum(true); /* lanispl */
+ values[i++] = BoolGetDatum(stmt->pltrusted);
values[i++] = ObjectIdGetDatum(procTup->t_data->t_oid);
- values[i++] = (Datum) textin(stmt->plcompiler);
+ values[i++] = DirectFunctionCall1(textin,
+ CStringGetDatum(stmt->plcompiler));
rel = heap_openr(LanguageRelationName, RowExclusiveLock);
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 968ae569ee0..80fca6a38a1 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -377,7 +377,8 @@ setval(PG_FUNCTION_ARGS)
static char *
get_seq_name(text *seqin)
{
- char *rawname = textout(seqin);
+ char *rawname = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(seqin)));
int rawlen = strlen(rawname);
char *seqname;
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 9bb36311cc8..4698fa850c0 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/backend/commands/user.c,v 1.62 2000/06/28 03:31:28 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/user.c,v 1.63 2000/07/05 23:11:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -121,7 +121,8 @@ write_password_file(Relation rel)
CRYPT_PWD_FILE_SEPSTR
"%s\n",
nameout(DatumGetName(datum_n)),
- null_p ? "" : textout((text *) datum_p),
+ null_p ? "" :
+ DatumGetCString(DirectFunctionCall1(textout, datum_p)),
null_v ? "\\N" :
DatumGetCString(DirectFunctionCall1(nabstimeout, datum_v))
);
@@ -257,7 +258,8 @@ CreateUser(CreateUserStmt *stmt)
new_record[Anum_pg_shadow_usecatupd - 1] = (Datum) (stmt->createuser);
if (stmt->password)
- new_record[Anum_pg_shadow_passwd - 1] = PointerGetDatum(textin(stmt->password));
+ new_record[Anum_pg_shadow_passwd - 1] =
+ DirectFunctionCall1(textin, CStringGetDatum(stmt->password));
if (stmt->validUntil)
new_record[Anum_pg_shadow_valuntil - 1] =
DirectFunctionCall1(nabstimein, CStringGetDatum(stmt->validUntil));
@@ -424,13 +426,15 @@ AlterUser(AlterUserStmt *stmt)
/* password */
if (stmt->password)
{
- new_record[Anum_pg_shadow_passwd - 1] = PointerGetDatum(textin(stmt->password));
+ new_record[Anum_pg_shadow_passwd - 1] =
+ DirectFunctionCall1(textin, CStringGetDatum(stmt->password));
new_record_nulls[Anum_pg_shadow_passwd - 1] = ' ';
}
else
{
/* leave as is */
- new_record[Anum_pg_shadow_passwd - 1] = heap_getattr(tuple, Anum_pg_shadow_passwd, pg_shadow_dsc, &null);
+ new_record[Anum_pg_shadow_passwd - 1] =
+ heap_getattr(tuple, Anum_pg_shadow_passwd, pg_shadow_dsc, &null);
new_record_nulls[Anum_pg_shadow_passwd - 1] = null ? 'n' : ' ';
}
@@ -444,7 +448,8 @@ AlterUser(AlterUserStmt *stmt)
else
{
/* leave as is */
- new_record[Anum_pg_shadow_valuntil - 1] = heap_getattr(tuple, Anum_pg_shadow_valuntil, pg_shadow_dsc, &null);
+ new_record[Anum_pg_shadow_valuntil - 1] =
+ heap_getattr(tuple, Anum_pg_shadow_valuntil, pg_shadow_dsc, &null);
new_record_nulls[Anum_pg_shadow_valuntil - 1] = null ? 'n' : ' ';
}
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 3777b68e64c..a023405a275 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.61 2000/06/19 23:40:47 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.62 2000/07/05 23:11:14 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -850,7 +850,8 @@ ExecOpenIndices(RelationInfo *resultRelationInfo)
{
char *predString;
- predString = textout(&indexStruct->indpred);
+ predString = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&indexStruct->indpred)));
predicate = (PredInfo *) stringToNode(predString);
pfree(predString);
}
diff --git a/src/backend/libpq/be-pqexec.c b/src/backend/libpq/be-pqexec.c
index 6834f513113..78745d50a7f 100644
--- a/src/backend/libpq/be-pqexec.c
+++ b/src/backend/libpq/be-pqexec.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.34 2000/07/04 06:11:37 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.35 2000/07/05 23:11:19 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -360,7 +360,9 @@ pqtest_PQfn(char *q)
else
{
pqargs[k].len = VAR_LENGTH_ARG;
- pqargs[k].u.ptr = (int *) textin(fields[j]);
+ pqargs[k].u.ptr = (int *)
+ DatumGetTextP(DirectFunctionCall1(textin,
+ CStringGetDatum(fields[j])));
printf("pqtest_PQfn: arg %d is text %s\n", k, fields[j]); /* debug */
}
}
@@ -405,9 +407,8 @@ pqtest(struct varlena * vlena)
* get the query
* ----------------
*/
- q = textout(vlena);
- if (q == NULL)
- return -1;
+ q = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(vlena)));
switch (q[0])
{
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c
index d727ddc24b6..7b87555df09 100644
--- a/src/backend/optimizer/path/indxpath.c
+++ b/src/backend/optimizer/path/indxpath.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.85 2000/05/30 00:49:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.86 2000/07/05 23:11:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1658,7 +1658,8 @@ match_special_index_operator(Expr *clause, Oid opclass, Oid relam,
case OID_VARCHAR_LIKE_OP:
case OID_NAME_LIKE_OP:
/* the right-hand const is type text for all of these */
- patt = textout((text *) DatumGetPointer(constvalue));
+ patt = DatumGetCString(DirectFunctionCall1(textout,
+ constvalue));
isIndexable = pattern_fixed_prefix(patt, Pattern_Type_Like,
&prefix, &rest) != Pattern_Prefix_None;
if (prefix)
@@ -1671,7 +1672,8 @@ match_special_index_operator(Expr *clause, Oid opclass, Oid relam,
case OID_VARCHAR_REGEXEQ_OP:
case OID_NAME_REGEXEQ_OP:
/* the right-hand const is type text for all of these */
- patt = textout((text *) DatumGetPointer(constvalue));
+ patt = DatumGetCString(DirectFunctionCall1(textout,
+ constvalue));
isIndexable = pattern_fixed_prefix(patt, Pattern_Type_Regex,
&prefix, &rest) != Pattern_Prefix_None;
if (prefix)
@@ -1684,7 +1686,8 @@ match_special_index_operator(Expr *clause, Oid opclass, Oid relam,
case OID_VARCHAR_ICREGEXEQ_OP:
case OID_NAME_ICREGEXEQ_OP:
/* the right-hand const is type text for all of these */
- patt = textout((text *) DatumGetPointer(constvalue));
+ patt = DatumGetCString(DirectFunctionCall1(textout,
+ constvalue));
isIndexable = pattern_fixed_prefix(patt, Pattern_Type_Regex_IC,
&prefix, &rest) != Pattern_Prefix_None;
if (prefix)
@@ -1784,7 +1787,8 @@ expand_indexqual_conditions(List *indexquals)
case OID_NAME_LIKE_OP:
/* the right-hand const is type text for all of these */
constvalue = ((Const *) rightop)->constvalue;
- patt = textout((text *) DatumGetPointer(constvalue));
+ patt = DatumGetCString(DirectFunctionCall1(textout,
+ constvalue));
pstatus = pattern_fixed_prefix(patt, Pattern_Type_Like,
&prefix, &rest);
resultquals = nconc(resultquals,
@@ -1801,7 +1805,8 @@ expand_indexqual_conditions(List *indexquals)
case OID_NAME_REGEXEQ_OP:
/* the right-hand const is type text for all of these */
constvalue = ((Const *) rightop)->constvalue;
- patt = textout((text *) DatumGetPointer(constvalue));
+ patt = DatumGetCString(DirectFunctionCall1(textout,
+ constvalue));
pstatus = pattern_fixed_prefix(patt, Pattern_Type_Regex,
&prefix, &rest);
resultquals = nconc(resultquals,
@@ -1818,7 +1823,8 @@ expand_indexqual_conditions(List *indexquals)
case OID_NAME_ICREGEXEQ_OP:
/* the right-hand const is type text for all of these */
constvalue = ((Const *) rightop)->constvalue;
- patt = textout((text *) DatumGetPointer(constvalue));
+ patt = DatumGetCString(DirectFunctionCall1(textout,
+ constvalue));
pstatus = pattern_fixed_prefix(patt, Pattern_Type_Regex_IC,
&prefix, &rest);
resultquals = nconc(resultquals,
@@ -1965,7 +1971,6 @@ find_operator(const char *opname, Oid datatype)
static Datum
string_to_datum(const char *str, Oid datatype)
{
-
/*
* We cheat a little by assuming that textin() will do for bpchar and
* varchar constants too...
@@ -1973,7 +1978,7 @@ string_to_datum(const char *str, Oid datatype)
if (datatype == NAMEOID)
return PointerGetDatum(namein((char *) str));
else
- return PointerGetDatum(textin((char *) str));
+ return DirectFunctionCall1(textin, CStringGetDatum(str));
}
/*
diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c
index 5c94c87487b..1bec741c48b 100644
--- a/src/backend/optimizer/util/plancat.c
+++ b/src/backend/optimizer/util/plancat.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.58 2000/06/20 04:22:14 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.59 2000/07/05 23:11:26 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -125,8 +125,10 @@ find_secondary_indexes(Query *root, Index relid)
info->indproc = index->indproc; /* functional index ?? */
if (VARSIZE(&index->indpred) != 0) /* partial index ?? */
{
- char *predString = textout(&index->indpred);
+ char *predString;
+ predString = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&index->indpred)));
info->indpred = (List *) stringToNode(predString);
pfree(predString);
}
diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index f6e01a05ac4..104a0cb926c 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.44 2000/06/15 03:32:19 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_coerce.c,v 2.45 2000/07/05 23:11:32 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -77,7 +77,8 @@ coerce_type(ParseState *pstate, Node *node, Oid inputTypeId,
if (!con->constisnull)
{
/* We know the source constant is really of type 'text' */
- char *val = textout((text *) con->constvalue);
+ char *val = DatumGetCString(DirectFunctionCall1(textout,
+ con->constvalue));
newcon->constvalue = stringTypeDatum(targetType, val, atttypmod);
pfree(val);
diff --git a/src/backend/parser/parse_node.c b/src/backend/parser/parse_node.c
index e23d7930b66..273dc0ef644 100644
--- a/src/backend/parser/parse_node.c
+++ b/src/backend/parser/parse_node.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.42 2000/06/14 18:17:36 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/parse_node.c,v 1.43 2000/07/05 23:11:32 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -462,7 +462,7 @@ make_const(Value *value)
break;
case T_String:
- val = PointerGetDatum(textin(strVal(value)));
+ val = DirectFunctionCall1(textin, CStringGetDatum(strVal(value)));
typeid = UNKNOWNOID;/* will be coerced later */
typelen = -1; /* variable len */
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index cf7d3618426..3df0fe35579 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -1,7 +1,7 @@
/* -----------------------------------------------------------------------
* formatting.c
*
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.18 2000/07/03 23:09:50 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.19 2000/07/05 23:11:35 tgl Exp $
*
*
* Portions Copyright (c) 1999-2000, PostgreSQL, Inc
@@ -2420,8 +2420,8 @@ timestamp_to_char(PG_FUNCTION_ARGS)
len = VARSIZE(fmt) - VARHDRSZ;
- if ((!len) || (TIMESTAMP_NOT_FINITE(dt)))
- return PointerGetDatum(textin(""));
+ if (len <= 0 || TIMESTAMP_NOT_FINITE(dt))
+ return DirectFunctionCall1(textin, CStringGetDatum(""));
ZERO_tm(tm);
tzn = NULL;
@@ -3956,13 +3956,11 @@ NUM_processor(FormatNode *node, NUMDesc *Num, char *inout, char *number,
#define NUM_TOCHAR_prepare \
do { \
len = VARSIZE(fmt) - VARHDRSZ; \
- \
if (len <= 0) \
- return PointerGetDatum(textin("")); \
- \
+ return DirectFunctionCall1(textin, CStringGetDatum("")); \
result = (text *) palloc( (len * NUM_MAX_ITEM_SIZ) + 1 + VARHDRSZ); \
format = NUM_cache(len, &Num, VARDATA(fmt), &flag); \
-} while(0)
+} while (0)
/* ----------
* MACRO: Finish part of NUM
diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c
index 052b68137f8..6bb7bac705d 100644
--- a/src/backend/utils/adt/regexp.c
+++ b/src/backend/utils/adt/regexp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.30 2000/01/26 05:57:14 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.31 2000/07/05 23:11:35 tgl Exp $
*
* Alistair Crooks added the code for the regex caching
* agc - cached the regular expressions used - there's a good chance
@@ -68,7 +68,8 @@ RE_compile_and_execute(struct varlena * text_re, char *text, int cflags)
char *re;
int regcomp_result;
- re = textout(text_re);
+ re = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(text_re)));
/* find a previously compiled regular expression */
for (i = 0; i < rec; i++)
{
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index 5cd46bb0de2..d46c81157da 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.73 2000/06/15 03:32:29 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.74 2000/07/05 23:11:35 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -442,7 +442,7 @@ patternsel(PG_FUNCTION_ARGS, Pattern_Type ptype)
/* the right-hand const is type text for all supported operators */
Assert(rtype == TEXTOID);
- patt = textout((text *) DatumGetPointer(value));
+ patt = DatumGetCString(DirectFunctionCall1(textout, value));
/* divide pattern into fixed prefix and remainder */
pstatus = pattern_fixed_prefix(patt, ptype, &prefix, &rest);
@@ -1184,9 +1184,9 @@ getattstatistics(Oid relid,
*/
if (commonval)
{
- text *val = (text *) SysCacheGetAttr(STATRELID, tuple,
+ Datum val = SysCacheGetAttr(STATRELID, tuple,
Anum_pg_statistic_stacommonval,
- &isnull);
+ &isnull);
if (isnull)
{
@@ -1195,7 +1195,8 @@ getattstatistics(Oid relid,
}
else
{
- char *strval = textout(val);
+ char *strval = DatumGetCString(DirectFunctionCall1(textout,
+ val));
*commonval = FunctionCall3(&inputproc,
CStringGetDatum(strval),
@@ -1207,9 +1208,9 @@ getattstatistics(Oid relid,
if (loval)
{
- text *val = (text *) SysCacheGetAttr(STATRELID, tuple,
- Anum_pg_statistic_staloval,
- &isnull);
+ Datum val = SysCacheGetAttr(STATRELID, tuple,
+ Anum_pg_statistic_staloval,
+ &isnull);
if (isnull)
{
@@ -1218,7 +1219,8 @@ getattstatistics(Oid relid,
}
else
{
- char *strval = textout(val);
+ char *strval = DatumGetCString(DirectFunctionCall1(textout,
+ val));
*loval = FunctionCall3(&inputproc,
CStringGetDatum(strval),
@@ -1230,9 +1232,9 @@ getattstatistics(Oid relid,
if (hival)
{
- text *val = (text *) SysCacheGetAttr(STATRELID, tuple,
- Anum_pg_statistic_stahival,
- &isnull);
+ Datum val = SysCacheGetAttr(STATRELID, tuple,
+ Anum_pg_statistic_stahival,
+ &isnull);
if (isnull)
{
@@ -1241,7 +1243,8 @@ getattstatistics(Oid relid,
}
else
{
- char *strval = textout(val);
+ char *strval = DatumGetCString(DirectFunctionCall1(textout,
+ val));
*hival = FunctionCall3(&inputproc,
CStringGetDatum(strval),
@@ -1868,7 +1871,6 @@ find_operator(const char *opname, Oid datatype)
static Datum
string_to_datum(const char *str, Oid datatype)
{
-
/*
* We cheat a little by assuming that textin() will do for bpchar and
* varchar constants too...
@@ -1876,7 +1878,7 @@ string_to_datum(const char *str, Oid datatype)
if (datatype == NAMEOID)
return PointerGetDatum(namein((char *) str));
else
- return PointerGetDatum(textin((char *) str));
+ return DirectFunctionCall1(textin, CStringGetDatum(str));
}
/*-------------------------------------------------------------------------
diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c
index 263470a063c..7d0f4447c2d 100644
--- a/src/backend/utils/adt/tid.c
+++ b/src/backend/utils/adt/tid.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.20 2000/06/09 01:11:09 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.21 2000/07/05 23:11:35 tgl Exp $
*
* NOTES
* input routine largely stolen from boxin().
@@ -126,38 +126,6 @@ tidne(ItemPointer arg1, ItemPointer arg2)
}
#endif
-#ifdef NOT_USED
-text *
-tid_text(ItemPointer tid)
-{
- char *str;
-
- if (!tid)
- return (text *) NULL;
- str = tidout(tid);
-
- return textin(str);
-} /* tid_text() */
-#endif
-
-#ifdef NOT_USED
-ItemPointer
-text_tid(const text *string)
-{
- ItemPointer result;
- char *str;
-
- if (!string)
- return (ItemPointer) 0;
-
- str = textout((text *) string);
- result = tidin(str);
- pfree(str);
-
- return result;
-} /* text_tid() */
-#endif
-
/*
* Functions to get latest tid of a specified tuple.
*
@@ -197,7 +165,8 @@ currtid_byrelname(PG_FUNCTION_ARGS)
char *str;
Relation rel;
- str = textout(relname);
+ str = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(relname)));
result = (ItemPointer) palloc(sizeof(ItemPointerData));
ItemPointerSetInvalid(result);
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index 4b3f498a2af..d5d5b86f9fe 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.31 2000/07/03 23:09:53 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.32 2000/07/05 23:11:35 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1487,7 +1487,9 @@ timestamp_trunc(PG_FUNCTION_ARGS)
*tm = &tt;
if (VARSIZE(units) - VARHDRSZ > MAXDATELEN)
- elog(ERROR, "Interval units '%s' not recognized", textout(units));
+ elog(ERROR, "Interval units '%s' not recognized",
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(units))));
up = VARDATA(units);
lp = lowunits;
for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++)
@@ -1625,7 +1627,9 @@ interval_trunc(PG_FUNCTION_ARGS)
result = (Interval *) palloc(sizeof(Interval));
if (VARSIZE(units) - VARHDRSZ > MAXDATELEN)
- elog(ERROR, "Interval units '%s' not recognized", textout(units));
+ elog(ERROR, "Interval units '%s' not recognized",
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(units))));
up = VARDATA(units);
lp = lowunits;
for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++)
@@ -1706,7 +1710,9 @@ interval_trunc(PG_FUNCTION_ARGS)
#endif
else
{
- elog(ERROR, "Interval units '%s' not recognized", textout(units));
+ elog(ERROR, "Interval units '%s' not recognized",
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(units))));
PG_RETURN_NULL();
}
@@ -1738,7 +1744,9 @@ timestamp_part(PG_FUNCTION_ARGS)
*tm = &tt;
if (VARSIZE(units) - VARHDRSZ > MAXDATELEN)
- elog(ERROR, "Interval units '%s' not recognized", textout(units));
+ elog(ERROR, "Interval units '%s' not recognized",
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(units))));
up = VARDATA(units);
lp = lowunits;
for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++)
@@ -1926,7 +1934,9 @@ interval_part(PG_FUNCTION_ARGS)
*tm = &tt;
if (VARSIZE(units) - VARHDRSZ > MAXDATELEN)
- elog(ERROR, "Interval units '%s' not recognized", textout(units));
+ elog(ERROR, "Interval units '%s' not recognized",
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(units))));
up = VARDATA(units);
lp = lowunits;
for (i = 0; i < (VARSIZE(units) - VARHDRSZ); i++)
@@ -2000,7 +2010,8 @@ interval_part(PG_FUNCTION_ARGS)
default:
elog(ERROR, "Interval units '%s' not yet supported",
- textout(units));
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(units))));
result = 0;
}
@@ -2022,7 +2033,9 @@ interval_part(PG_FUNCTION_ARGS)
}
else
{
- elog(ERROR, "Interval units '%s' not recognized", textout(units));
+ elog(ERROR, "Interval units '%s' not recognized",
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(units))));
result = 0;
}
@@ -2056,7 +2069,9 @@ timestamp_zone(PG_FUNCTION_ARGS)
int len;
if (VARSIZE(zone) - VARHDRSZ > MAXDATELEN)
- elog(ERROR, "Time zone '%s' not recognized", textout(zone));
+ elog(ERROR, "Time zone '%s' not recognized",
+ DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(zone))));
up = VARDATA(zone);
lp = lowzone;
for (i = 0; i < (VARSIZE(zone) - VARHDRSZ); i++)
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 114bcff29a4..8ddabdb4ee4 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.61 2000/07/03 23:09:54 wieck Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.62 2000/07/05 23:11:35 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -146,54 +146,46 @@ byteaout(bytea *vlena)
/*
* textin - converts "..." to internal representation
*/
-text *
-textin(char *inputText)
+Datum
+textin(PG_FUNCTION_ARGS)
{
+ char *inputText = PG_GETARG_CSTRING(0);
text *result;
int len;
- if (inputText == NULL)
- return NULL;
-
len = strlen(inputText) + VARHDRSZ;
result = (text *) palloc(len);
VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), inputText, len - VARHDRSZ);
+ memcpy(VARDATA(result), inputText, len - VARHDRSZ);
#ifdef CYR_RECODE
convertstr(VARDATA(result), len - VARHDRSZ, 0);
#endif
- return result;
+ PG_RETURN_TEXT_P(result);
}
/*
* textout - converts internal representation to "..."
*/
-char *
-textout(text *vlena)
+Datum
+textout(PG_FUNCTION_ARGS)
{
+ text *t = PG_GETARG_TEXT_P(0);
int len;
char *result;
- if (vlena == NULL)
- {
- result = (char *) palloc(2);
- result[0] = '-';
- result[1] = '\0';
- return result;
- }
- len = VARSIZE(vlena) - VARHDRSZ;
+ len = VARSIZE(t) - VARHDRSZ;
result = (char *) palloc(len + 1);
- memmove(result, VARDATA(vlena), len);
+ memcpy(result, VARDATA(t), len);
result[len] = '\0';
#ifdef CYR_RECODE
convertstr(result, len, 1);
#endif
- return result;
+ PG_RETURN_CSTRING(result);
}
diff --git a/src/backend/utils/cache/fcache.c b/src/backend/utils/cache/fcache.c
index 867de40baa9..7e9d18c7e27 100644
--- a/src/backend/utils/cache/fcache.c
+++ b/src/backend/utils/cache/fcache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.32 2000/06/06 17:44:25 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/Attic/fcache.c,v 1.33 2000/07/05 23:11:39 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -70,7 +70,7 @@ init_fcache(Oid foid,
Form_pg_type typeStruct;
FunctionCachePtr retval;
int nargs;
- text *tmp;
+ Datum tmp;
bool isNull;
retval = (FunctionCachePtr) palloc(sizeof(FunctionCache));
@@ -212,14 +212,14 @@ init_fcache(Oid foid,
if (procedureStruct->prolang == SQLlanguageId)
{
- tmp = (text *) SysCacheGetAttr(PROCOID,
- procedureTuple,
- Anum_pg_proc_prosrc,
- &isNull);
+ tmp = SysCacheGetAttr(PROCOID,
+ procedureTuple,
+ Anum_pg_proc_prosrc,
+ &isNull);
if (isNull)
elog(ERROR, "init_fcache: null prosrc for procedure %u",
foid);
- retval->src = textout(tmp);
+ retval->src = DatumGetCString(DirectFunctionCall1(textout, tmp));
retval->bin = (char *) NULL;
}
else
@@ -229,14 +229,14 @@ init_fcache(Oid foid,
retval->bin = (char *) NULL;
else
{
- tmp = (text *) SysCacheGetAttr(PROCOID,
- procedureTuple,
- Anum_pg_proc_probin,
- &isNull);
+ tmp = SysCacheGetAttr(PROCOID,
+ procedureTuple,
+ Anum_pg_proc_probin,
+ &isNull);
if (isNull)
elog(ERROR, "init_fcache: null probin for procedure %u",
foid);
- retval->bin = textout(tmp);
+ retval->bin = DatumGetCString(DirectFunctionCall1(textout, tmp));
}
}
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index dc69a0e508f..c1cc688e8f6 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.105 2000/06/30 07:04:10 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.106 2000/07/05 23:11:39 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1901,7 +1901,7 @@ AttrDefaultFetch(Relation relation)
IndexScanDesc sd = (IndexScanDesc) NULL;
HeapScanDesc adscan = (HeapScanDesc) NULL;
RetrieveIndexResult indexRes;
- struct varlena *val;
+ Datum val;
bool isnull;
int found;
int i;
@@ -1959,16 +1959,17 @@ AttrDefaultFetch(Relation relation)
NameStr(relation->rd_att->attrs[adform->adnum - 1]->attname),
RelationGetRelationName(relation));
- val = (struct varlena *) fastgetattr(htup,
- Anum_pg_attrdef_adbin,
- adrel->rd_att, &isnull);
+ val = fastgetattr(htup,
+ Anum_pg_attrdef_adbin,
+ adrel->rd_att, &isnull);
if (isnull)
elog(NOTICE, "AttrDefaultFetch: adbin IS NULL for attr %s in rel %s",
NameStr(relation->rd_att->attrs[adform->adnum - 1]->attname),
RelationGetRelationName(relation));
else
attrdef[i].adbin = MemoryContextStrdup(CacheMemoryContext,
- textout(val));
+ DatumGetCString(DirectFunctionCall1(textout,
+ val)));
break;
}
if (hasindex)
@@ -2008,7 +2009,7 @@ RelCheckFetch(Relation relation)
HeapScanDesc rcscan = (HeapScanDesc) NULL;
RetrieveIndexResult indexRes;
Name rcname;
- struct varlena *val;
+ Datum val;
bool isnull;
int found;
bool hasindex;
@@ -2066,14 +2067,15 @@ RelCheckFetch(Relation relation)
RelationGetRelationName(relation));
check[found].ccname = MemoryContextStrdup(CacheMemoryContext,
NameStr(*rcname));
- val = (struct varlena *) fastgetattr(htup,
- Anum_pg_relcheck_rcbin,
- rcrel->rd_att, &isnull);
+ val = fastgetattr(htup,
+ Anum_pg_relcheck_rcbin,
+ rcrel->rd_att, &isnull);
if (isnull)
elog(ERROR, "RelCheckFetch: rcbin IS NULL for rel %s",
RelationGetRelationName(relation));
check[found].ccbin = MemoryContextStrdup(CacheMemoryContext,
- textout(val));
+ DatumGetCString(DirectFunctionCall1(textout,
+ val)));
found++;
if (hasindex)
ReleaseBuffer(buffer);
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index baa89be7bb8..3913dddeec2 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.43 2000/06/28 03:32:31 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.44 2000/07/05 23:11:40 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -71,21 +71,17 @@ fmgr_dynamic(Oid functionId)
prosrcattr = SysCacheGetAttr(PROCOID, procedureTuple,
Anum_pg_proc_prosrc, &isnull);
- if (isnull || !PointerIsValid(prosrcattr))
- {
+ if (isnull)
elog(ERROR, "fmgr: Could not extract prosrc for %u from pg_proc",
functionId);
- }
- prosrcstring = textout((text *) DatumGetPointer(prosrcattr));
+ prosrcstring = DatumGetCString(DirectFunctionCall1(textout, prosrcattr));
probinattr = SysCacheGetAttr(PROCOID, procedureTuple,
Anum_pg_proc_probin, &isnull);
- if (isnull || !PointerIsValid(probinattr))
- {
+ if (isnull)
elog(ERROR, "fmgr: Could not extract probin for %u from pg_proc",
functionId);
- }
- probinstring = textout((text *) DatumGetPointer(probinattr));
+ probinstring = DatumGetCString(DirectFunctionCall1(textout, probinattr));
user_fn = load_external_function(probinstring, prosrcstring);
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c
index 489d8c260fd..fd732c8f94d 100644
--- a/src/backend/utils/fmgr/fmgr.c
+++ b/src/backend/utils/fmgr/fmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.43 2000/06/05 07:28:55 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.44 2000/07/05 23:11:40 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -164,7 +164,8 @@ fmgr_info(Oid functionId, FmgrInfo *finfo)
* stored in prosrc (it doesn't have to be the same as the
* name of the alias!)
*/
- prosrc = textout(&(procedureStruct->prosrc));
+ prosrc = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&procedureStruct->prosrc)));
fbp = fmgr_lookupByName(prosrc);
if (fbp == NULL)
elog(ERROR, "fmgr_info: function %s not in internal table",
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index 3d700dcf2b7..b4af7610159 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_proc.h,v 1.141 2000/06/19 03:54:45 tgl Exp $
+ * $Id: pg_proc.h,v 1.142 2000/07/05 23:11:45 tgl Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
@@ -129,9 +129,9 @@ DATA(insert OID = 44 ( regprocin PGUID 12 f t f t 1 f 24 "0" 100 0 0 100
DESCR("(internal)");
DATA(insert OID = 45 ( regprocout PGUID 12 f t f t 1 f 23 "0" 100 0 0 100 regprocout - ));
DESCR("(internal)");
-DATA(insert OID = 46 ( textin PGUID 11 f t t t 1 f 25 "0" 100 0 0 100 textin - ));
+DATA(insert OID = 46 ( textin PGUID 12 f t t t 1 f 25 "0" 100 0 0 100 textin - ));
DESCR("(internal)");
-DATA(insert OID = 47 ( textout PGUID 11 f t t t 1 f 23 "0" 100 0 0 100 textout - ));
+DATA(insert OID = 47 ( textout PGUID 12 f t t t 1 f 23 "0" 100 0 0 100 textout - ));
DESCR("(internal)");
DATA(insert OID = 48 ( tidin PGUID 11 f t t t 1 f 27 "0" 100 0 0 100 tidin - ));
DESCR("(internal)");
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index 267d7c55d12..9e7e995ee16 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: builtins.h,v 1.118 2000/06/19 03:54:48 tgl Exp $
+ * $Id: builtins.h,v 1.119 2000/07/05 23:11:51 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -436,8 +436,8 @@ extern int32 varcharlen(char *arg);
extern int32 varcharoctetlen(char *arg);
/* varlena.c */
-extern text *textin(char *inputText);
-extern char *textout(text *vlena);
+extern Datum textin(PG_FUNCTION_ARGS);
+extern Datum textout(PG_FUNCTION_ARGS);
extern text *textcat(text *arg1, text *arg2);
extern bool texteq(text *arg1, text *arg2);
extern bool textne(text *arg1, text *arg2);
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 66ae44373d0..687612a64c1 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -33,7 +33,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.11 2000/06/05 07:29:11 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plperl/plperl.c,v 1.12 2000/07/05 23:11:55 tgl Exp $
*
**********************************************************************/
@@ -594,8 +594,8 @@ plperl_func_handler(PG_FUNCTION_ARGS)
* through the reference.
*
************************************************************/
- proc_source = textout(&(procStruct->prosrc));
-
+ proc_source = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&procStruct->prosrc)));
/************************************************************
* Create the procedure in the interpreter
@@ -789,7 +789,8 @@ plperl_trigger_handler(PG_FUNCTION_ARGS)
"}\n"
"unset i v\n\n", -1);
- proc_source = textout(&(procStruct->prosrc));
+ proc_source = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&procStruct->prosrc)));
Tcl_DStringAppend(&proc_internal_body, proc_source, -1);
pfree(proc_source);
Tcl_DStringAppendElement(&proc_internal_def,
diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c
index c03d9398d13..f18caa84644 100644
--- a/src/pl/plpgsql/src/pl_comp.c
+++ b/src/pl/plpgsql/src/pl_comp.c
@@ -3,7 +3,7 @@
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.20 2000/05/11 04:00:00 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.21 2000/07/05 23:11:58 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -142,7 +142,8 @@ plpgsql_compile(Oid fn_oid, int functype)
* ----------
*/
procStruct = (Form_pg_proc) GETSTRUCT(procTup);
- proc_source = textout(&(procStruct->prosrc));
+ proc_source = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&procStruct->prosrc)));
plpgsql_setinput(proc_source, functype);
plpgsql_error_funcname = nameout(&(procStruct->proname));
plpgsql_error_lineno = 0;
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
index 77370801c9c..5b8c6d773f4 100644
--- a/src/pl/plpgsql/src/pl_exec.c
+++ b/src/pl/plpgsql/src/pl_exec.c
@@ -3,7 +3,7 @@
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.23 2000/05/30 04:24:58 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.24 2000/07/05 23:11:58 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -606,7 +606,7 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
rec_new->tupdesc = trigdata->tg_relation->rd_att;
rec_old->tup = NULL;
rec_old->tupdesc = NULL;
- var->value = (Datum) textin("INSERT");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("INSERT"));
}
else if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event))
{
@@ -614,7 +614,7 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
rec_new->tupdesc = trigdata->tg_relation->rd_att;
rec_old->tup = trigdata->tg_trigtuple;
rec_old->tupdesc = trigdata->tg_relation->rd_att;
- var->value = (Datum) textin("UPDATE");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("UPDATE"));
}
else if (TRIGGER_FIRED_BY_DELETE(trigdata->tg_event))
{
@@ -622,13 +622,13 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
rec_new->tupdesc = NULL;
rec_old->tup = trigdata->tg_trigtuple;
rec_old->tupdesc = trigdata->tg_relation->rd_att;
- var->value = (Datum) textin("DELETE");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("DELETE"));
}
else
{
rec_new->tup = NULL;
rec_new->tupdesc = NULL;
- var->value = (Datum) textin("UNKNOWN");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("UNKNOWN"));
}
/* ----------
@@ -642,20 +642,20 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
var = (PLpgSQL_var *) (estate.datums[func->tg_when_varno]);
var->isnull = false;
if (TRIGGER_FIRED_BEFORE(trigdata->tg_event))
- var->value = (Datum) textin("BEFORE");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("BEFORE"));
else if (TRIGGER_FIRED_AFTER(trigdata->tg_event))
- var->value = (Datum) textin("AFTER");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("AFTER"));
else
- var->value = (Datum) textin("UNKNOWN");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("UNKNOWN"));
var = (PLpgSQL_var *) (estate.datums[func->tg_level_varno]);
var->isnull = false;
if (TRIGGER_FIRED_FOR_ROW(trigdata->tg_event))
- var->value = (Datum) textin("ROW");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("ROW"));
else if (TRIGGER_FIRED_FOR_STATEMENT(trigdata->tg_event))
- var->value = (Datum) textin("STATEMENT");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("STATEMENT"));
else
- var->value = (Datum) textin("UNKNOWN");
+ var->value = DirectFunctionCall1(textin, CStringGetDatum("UNKNOWN"));
var = (PLpgSQL_var *) (estate.datums[func->tg_relid_varno]);
var->isnull = false;
@@ -682,7 +682,8 @@ plpgsql_exec_trigger(PLpgSQL_function * func,
{
estate.trig_argv = palloc(sizeof(Datum) * estate.trig_nargs);
for (i = 0; i < trigdata->tg_trigger->tgnargs; i++)
- estate.trig_argv[i] = (Datum) textin(trigdata->tg_trigger->tgargs[i]);
+ estate.trig_argv[i] = DirectFunctionCall1(textin,
+ CStringGetDatum(trigdata->tg_trigger->tgargs[i]));
}
/* ----------
@@ -1611,7 +1612,8 @@ exec_stmt_raise(PLpgSQL_execstate * estate, PLpgSQL_stmt_raise * stmt)
if (value < 0 || value >= estate->trig_nargs)
extval = "<OUT_OF_RANGE>";
else
- extval = textout((text *) (estate->trig_argv[value]));
+ extval = DatumGetCString(DirectFunctionCall1(textout,
+ estate->trig_argv[value]));
}
plpgsql_dstring_append(&ds, extval);
}
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index 37b413da2df..6bdeec9be81 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -31,7 +31,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.26 2000/06/05 07:29:13 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.27 2000/07/05 23:12:03 tgl Exp $
*
**********************************************************************/
@@ -561,7 +561,8 @@ pltcl_func_handler(PG_FUNCTION_ARGS)
sprintf(buf, "array set %d $__PLTcl_Tup_%d\n", i + 1, i + 1);
Tcl_DStringAppend(&proc_internal_body, buf, -1);
}
- proc_source = textout(&(procStruct->prosrc));
+ proc_source = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&procStruct->prosrc)));
Tcl_DStringAppend(&proc_internal_body, proc_source, -1);
pfree(proc_source);
Tcl_DStringAppendElement(&proc_internal_def,
@@ -836,7 +837,8 @@ pltcl_trigger_handler(PG_FUNCTION_ARGS)
"}\n"
"unset i v\n\n", -1);
- proc_source = textout(&(procStruct->prosrc));
+ proc_source = DatumGetCString(DirectFunctionCall1(textout,
+ PointerGetDatum(&procStruct->prosrc)));
Tcl_DStringAppend(&proc_internal_body, proc_source, -1);
pfree(proc_source);
Tcl_DStringAppendElement(&proc_internal_def,
diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c
index 67c62c8ab65..ca2f0a69caa 100644
--- a/src/test/regress/regress.c
+++ b/src/test/regress/regress.c
@@ -1,5 +1,5 @@
/*
- * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.40 2000/06/13 07:35:34 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.41 2000/07/05 23:12:09 tgl Exp $
*/
#include <float.h> /* faked on sunos */
@@ -524,7 +524,8 @@ ttdummy(PG_FUNCTION_ARGS)
}
{
- text *seqname = textin("ttdummy_seq");
+ text *seqname = DatumGetTextP(DirectFunctionCall1(textin,
+ CStringGetDatum("ttdummy_seq")));
newoff = DirectFunctionCall1(nextval,
PointerGetDatum(seqname));