aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/ruleutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/ruleutils.c')
-rw-r--r--src/backend/utils/adt/ruleutils.c33
1 files changed, 12 insertions, 21 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index db86d69efe5..940cfc2b23d 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.269 2008/01/06 01:03:16 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.270 2008/03/25 22:42:44 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -697,8 +697,7 @@ pg_get_indexdef_worker(Oid indexrelid, int colno, bool showTblSpc,
exprsDatum = SysCacheGetAttr(INDEXRELID, ht_idx,
Anum_pg_index_indexprs, &isnull);
Assert(!isnull);
- exprsString = DatumGetCString(DirectFunctionCall1(textout,
- exprsDatum));
+ exprsString = TextDatumGetCString(exprsDatum);
indexprs = (List *) stringToNode(exprsString);
pfree(exprsString);
}
@@ -836,8 +835,7 @@ pg_get_indexdef_worker(Oid indexrelid, int colno, bool showTblSpc,
predDatum = SysCacheGetAttr(INDEXRELID, ht_idx,
Anum_pg_index_indpred, &isnull);
Assert(!isnull);
- predString = DatumGetCString(DirectFunctionCall1(textout,
- predDatum));
+ predString = TextDatumGetCString(predDatum);
node = (Node *) stringToNode(predString);
pfree(predString);
@@ -1092,7 +1090,7 @@ pg_get_constraintdef_worker(Oid constraintId, bool fullCommand,
elog(ERROR, "null conbin for constraint %u",
constraintId);
- conbin = DatumGetCString(DirectFunctionCall1(textout, val));
+ conbin = TextDatumGetCString(val);
expr = stringToNode(conbin);
/* Set up deparsing context for Var nodes in constraint */
@@ -1222,8 +1220,7 @@ pg_get_expr_worker(text *expr, Oid relid, char *relname, int prettyFlags)
char *str;
/* Convert input TEXT object to C string */
- exprstr = DatumGetCString(DirectFunctionCall1(textout,
- PointerGetDatum(expr)));
+ exprstr = text_to_cstring(expr);
/* Convert expression to node tree */
node = (Node *) stringToNode(exprstr);
@@ -1233,6 +1230,8 @@ pg_get_expr_worker(text *expr, Oid relid, char *relname, int prettyFlags)
str = deparse_expression_pretty(node, context, false, false,
prettyFlags, 0);
+ pfree(exprstr);
+
return str;
}
@@ -1286,7 +1285,7 @@ Datum
pg_get_serial_sequence(PG_FUNCTION_ARGS)
{
text *tablename = PG_GETARG_TEXT_P(0);
- text *columnname = PG_GETARG_TEXT_P(1);
+ text *columnname = PG_GETARG_TEXT_PP(1);
RangeVar *tablerv;
Oid tableOid;
char *column;
@@ -1302,8 +1301,7 @@ pg_get_serial_sequence(PG_FUNCTION_ARGS)
tableOid = RangeVarGetRelid(tablerv, false);
/* Get the number of the column */
- column = DatumGetCString(DirectFunctionCall1(textout,
- PointerGetDatum(columnname)));
+ column = text_to_cstring(columnname);
attnum = get_attnum(tableOid, column);
if (attnum == InvalidAttrNumber)
@@ -5439,16 +5437,9 @@ static text *
string_to_text(char *str)
{
text *result;
- int slen = strlen(str);
- int tlen;
-
- tlen = slen + VARHDRSZ;
- result = (text *) palloc(tlen);
- SET_VARSIZE(result, tlen);
- memcpy(VARDATA(result), str, slen);
+ result = cstring_to_text(str);
pfree(str);
-
return result;
}
@@ -5482,9 +5473,9 @@ flatten_reloptions(Oid relid)
* array_to_text() relies on flinfo to be valid. So use
* OidFunctionCall2.
*/
- sep = DirectFunctionCall1(textin, CStringGetDatum(", "));
+ sep = CStringGetTextDatum(", ");
txt = OidFunctionCall2(F_ARRAY_TO_TEXT, reloptions, sep);
- result = DatumGetCString(DirectFunctionCall1(textout, txt));
+ result = TextDatumGetCString(txt);
}
ReleaseSysCache(tuple);