aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2014-01-06 21:30:26 -0500
committerPeter Eisentraut <peter_e@gmx.net>2014-01-06 21:30:26 -0500
commitedc43458d797a5956f4bf39af18cf62abb0077db (patch)
tree4468c5cec42e043168aab94491bb0f2905c1855f
parent10a82cda67731941c18256e009edad4a784a2994 (diff)
downloadpostgresql-edc43458d797a5956f4bf39af18cf62abb0077db.tar.gz
postgresql-edc43458d797a5956f4bf39af18cf62abb0077db.zip
Add more use of psprintf()
-rw-r--r--contrib/dblink/dblink.c5
-rw-r--r--contrib/hstore/hstore_io.c6
-rw-r--r--contrib/pageinspect/btreefuncs.c73
-rw-r--r--contrib/pgstattuple/pgstatindex.c34
-rw-r--r--doc/src/sgml/xtypes.sgml3
-rw-r--r--src/backend/access/transam/multixact.c3
-rw-r--r--src/backend/commands/define.c7
-rw-r--r--src/backend/optimizer/plan/subselect.c8
-rw-r--r--src/backend/parser/parse_type.c3
-rw-r--r--src/backend/storage/smgr/md.c4
-rw-r--r--src/backend/utils/adt/date.c6
-rw-r--r--src/backend/utils/adt/timestamp.c7
-rw-r--r--src/backend/utils/fmgr/funcapi.c3
-rw-r--r--src/test/regress/regress.c6
-rw-r--r--src/tutorial/complex.c3
15 files changed, 52 insertions, 119 deletions
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index a91a547ada0..5fd1dd8c583 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -1563,10 +1563,7 @@ dblink_get_pkey(PG_FUNCTION_ARGS)
Datum result;
values = (char **) palloc(2 * sizeof(char *));
- values[0] = (char *) palloc(12); /* sign, 10 digits, '\0' */
-
- sprintf(values[0], "%d", call_cntr + 1);
-
+ values[0] = psprintf("%d", call_cntr + 1);
values[1] = results[call_cntr];
/* build the tuple */
diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c
index 772a5ca5d51..973a1265c1d 100644
--- a/contrib/hstore/hstore_io.c
+++ b/contrib/hstore/hstore_io.c
@@ -1114,11 +1114,7 @@ hstore_out(PG_FUNCTION_ARGS)
HEntry *entries = ARRPTR(in);
if (count == 0)
- {
- out = palloc(1);
- *out = '\0';
- PG_RETURN_CSTRING(out);
- }
+ PG_RETURN_CSTRING(pstrdup(""));
buflen = 0;
diff --git a/contrib/pageinspect/btreefuncs.c b/contrib/pageinspect/btreefuncs.c
index bc34af9b3c7..e3f3c2818f1 100644
--- a/contrib/pageinspect/btreefuncs.c
+++ b/contrib/pageinspect/btreefuncs.c
@@ -220,31 +220,17 @@ bt_page_stats(PG_FUNCTION_ARGS)
elog(ERROR, "return type must be a row type");
j = 0;
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.blkno);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%c", stat.type);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.live_items);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.dead_items);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.avg_item_size);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.page_size);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.free_size);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.btpo_prev);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.btpo_next);
- values[j] = palloc(32);
- if (stat.type == 'd')
- snprintf(values[j++], 32, "%d", stat.btpo.xact);
- else
- snprintf(values[j++], 32, "%d", stat.btpo.level);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", stat.btpo_flags);
+ values[j++] = psprintf("%d", stat.blkno);
+ values[j++] = psprintf("%c", stat.type);
+ values[j++] = psprintf("%d", stat.live_items);
+ values[j++] = psprintf("%d", stat.dead_items);
+ values[j++] = psprintf("%d", stat.avg_item_size);
+ values[j++] = psprintf("%d", stat.page_size);
+ values[j++] = psprintf("%d", stat.free_size);
+ values[j++] = psprintf("%d", stat.btpo_prev);
+ values[j++] = psprintf("%d", stat.btpo_next);
+ values[j++] = psprintf("%d", (stat.type == 'd') ? stat.btpo.xact : stat.btpo.level);
+ values[j++] = psprintf("%d", stat.btpo_flags);
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
values);
@@ -380,18 +366,13 @@ bt_page_items(PG_FUNCTION_ARGS)
itup = (IndexTuple) PageGetItem(uargs->page, id);
j = 0;
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", uargs->offset);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "(%u,%u)",
- BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)),
- itup->t_tid.ip_posid);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", (int) IndexTupleSize(itup));
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%c", IndexTupleHasNulls(itup) ? 't' : 'f');
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%c", IndexTupleHasVarwidths(itup) ? 't' : 'f');
+ values[j++] = psprintf("%d", uargs->offset);
+ values[j++] = psprintf("(%u,%u)",
+ BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)),
+ itup->t_tid.ip_posid);
+ values[j++] = psprintf("%d", (int) IndexTupleSize(itup));
+ values[j++] = psprintf("%c", IndexTupleHasNulls(itup) ? 't' : 'f');
+ values[j++] = psprintf("%c", IndexTupleHasVarwidths(itup) ? 't' : 'f');
ptr = (char *) itup + IndexInfoFindDataOffset(itup->t_info);
dlen = IndexTupleSize(itup) - IndexInfoFindDataOffset(itup->t_info);
@@ -477,18 +458,12 @@ bt_metap(PG_FUNCTION_ARGS)
elog(ERROR, "return type must be a row type");
j = 0;
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", metad->btm_magic);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", metad->btm_version);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", metad->btm_root);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", metad->btm_level);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", metad->btm_fastroot);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", metad->btm_fastlevel);
+ values[j++] = psprintf("%d", metad->btm_magic);
+ values[j++] = psprintf("%d", metad->btm_version);
+ values[j++] = psprintf("%d", metad->btm_root);
+ values[j++] = psprintf("%d", metad->btm_level);
+ values[j++] = psprintf("%d", metad->btm_fastroot);
+ values[j++] = psprintf("%d", metad->btm_fastlevel);
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
values);
diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c
index 282d82ca828..8939b784db9 100644
--- a/contrib/pgstattuple/pgstatindex.c
+++ b/contrib/pgstattuple/pgstatindex.c
@@ -271,39 +271,29 @@ pgstatindex_impl(Relation rel, FunctionCallInfo fcinfo)
elog(ERROR, "return type must be a row type");
j = 0;
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", indexStat.version);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%d", indexStat.level);
- values[j] = palloc(32);
- snprintf(values[j++], 32, INT64_FORMAT,
+ values[j++] = psprintf("%d", indexStat.version);
+ values[j++] = psprintf("%d", indexStat.level);
+ values[j++] = psprintf(INT64_FORMAT,
(indexStat.root_pages +
indexStat.leaf_pages +
indexStat.internal_pages +
indexStat.deleted_pages +
indexStat.empty_pages) * BLCKSZ);
- values[j] = palloc(32);
- snprintf(values[j++], 32, "%u", indexStat.root_blkno);
- values[j] = palloc(32);
- snprintf(values[j++], 32, INT64_FORMAT, indexStat.internal_pages);
- values[j] = palloc(32);
- snprintf(values[j++], 32, INT64_FORMAT, indexStat.leaf_pages);
- values[j] = palloc(32);
- snprintf(values[j++], 32, INT64_FORMAT, indexStat.empty_pages);
- values[j] = palloc(32);
- snprintf(values[j++], 32, INT64_FORMAT, indexStat.deleted_pages);
- values[j] = palloc(32);
+ values[j++] = psprintf("%u", indexStat.root_blkno);
+ values[j++] = psprintf(INT64_FORMAT, indexStat.internal_pages);
+ values[j++] = psprintf(INT64_FORMAT, indexStat.leaf_pages);
+ values[j++] = psprintf(INT64_FORMAT, indexStat.empty_pages);
+ values[j++] = psprintf(INT64_FORMAT, indexStat.deleted_pages);
if (indexStat.max_avail > 0)
- snprintf(values[j++], 32, "%.2f",
+ values[j++] = psprintf("%.2f",
100.0 - (double) indexStat.free_space / (double) indexStat.max_avail * 100.0);
else
- snprintf(values[j++], 32, "NaN");
- values[j] = palloc(32);
+ values[j++] = pstrdup("NaN");
if (indexStat.leaf_pages > 0)
- snprintf(values[j++], 32, "%.2f",
+ values[j++] = psprintf("%.2f",
(double) indexStat.fragments / (double) indexStat.leaf_pages * 100.0);
else
- snprintf(values[j++], 32, "NaN");
+ values[j++] = pstrdup("NaN");
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
values);
diff --git a/doc/src/sgml/xtypes.sgml b/doc/src/sgml/xtypes.sgml
index 0154181cc52..e1340baeb73 100644
--- a/doc/src/sgml/xtypes.sgml
+++ b/doc/src/sgml/xtypes.sgml
@@ -108,8 +108,7 @@ complex_out(PG_FUNCTION_ARGS)
Complex *complex = (Complex *) PG_GETARG_POINTER(0);
char *result;
- result = (char *) palloc(100);
- snprintf(result, 100, "(%g,%g)", complex->x, complex->y);
+ result = psprintf("(%g,%g)", complex->x, complex->y);
PG_RETURN_CSTRING(result);
}
]]>
diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index e2b31ee441f..6ab53840f8e 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -2757,8 +2757,7 @@ pg_get_multixact_members(PG_FUNCTION_ARGS)
HeapTuple tuple;
char *values[2];
- values[0] = palloc(32);
- sprintf(values[0], "%u", multi->members[multi->iter].xid);
+ values[0] = psprintf("%u", multi->members[multi->iter].xid);
values[1] = mxstatus_to_string(multi->members[multi->iter].status);
tuple = BuildTupleFromCStrings(funccxt->attinmeta, values);
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
index 75f77da2cff..486ef924922 100644
--- a/src/backend/commands/define.c
+++ b/src/backend/commands/define.c
@@ -56,12 +56,7 @@ defGetString(DefElem *def)
switch (nodeTag(def->arg))
{
case T_Integer:
- {
- char *str = palloc(32);
-
- snprintf(str, 32, "%ld", (long) intVal(def->arg));
- return str;
- }
+ return psprintf("%ld", (long) intVal(def->arg));
case T_Float:
/*
diff --git a/src/backend/optimizer/plan/subselect.c b/src/backend/optimizer/plan/subselect.c
index 0f921186609..70fdb14085e 100644
--- a/src/backend/optimizer/plan/subselect.c
+++ b/src/backend/optimizer/plan/subselect.c
@@ -778,10 +778,7 @@ build_subplan(PlannerInfo *root, Plan *plan, PlannerInfo *subroot,
sprintf(splan->plan_name + offset, ")");
}
else
- {
- splan->plan_name = palloc(32);
- sprintf(splan->plan_name, "SubPlan %d", splan->plan_id);
- }
+ splan->plan_name = psprintf("SubPlan %d", splan->plan_id);
/* Lastly, fill in the cost estimates for use later */
cost_subplan(root, splan, plan);
@@ -2600,8 +2597,7 @@ SS_make_initplan_from_plan(PlannerInfo *root, Plan *plan,
node->setParam = list_make1_int(prm->paramid);
/* Label the subplan for EXPLAIN purposes */
- node->plan_name = palloc(64);
- sprintf(node->plan_name, "InitPlan %d (returns $%d)",
+ node->plan_name = psprintf("InitPlan %d (returns $%d)",
node->plan_id, prm->paramid);
return prm;
diff --git a/src/backend/parser/parse_type.c b/src/backend/parser/parse_type.c
index ee6802a6558..84ec8a70e76 100644
--- a/src/backend/parser/parse_type.c
+++ b/src/backend/parser/parse_type.c
@@ -313,8 +313,7 @@ typenameTypeMod(ParseState *pstate, const TypeName *typeName, Type typ)
if (IsA(&ac->val, Integer))
{
- cstr = (char *) palloc(32);
- snprintf(cstr, 32, "%ld", (long) ac->val.val.ival);
+ cstr = psprintf("%ld", (long) ac->val.val.ival);
}
else if (IsA(&ac->val, Float) ||
IsA(&ac->val, String))
diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index e62918195ea..268035ca92a 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -1649,9 +1649,7 @@ _mdfd_segpath(SMgrRelation reln, ForkNumber forknum, BlockNumber segno)
if (segno > 0)
{
- /* be sure we have enough space for the '.segno' */
- fullpath = (char *) palloc(strlen(path) + 12);
- sprintf(fullpath, "%s.%u", path, segno);
+ fullpath = psprintf("%s.%u", path, segno);
pfree(path);
}
else
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index fe091daec81..2bafd6145c2 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -91,14 +91,12 @@ anytime_typmodin(bool istz, ArrayType *ta)
static char *
anytime_typmodout(bool istz, int32 typmod)
{
- char *res = (char *) palloc(64);
const char *tz = istz ? " with time zone" : " without time zone";
if (typmod >= 0)
- snprintf(res, 64, "(%d)%s", (int) typmod, tz);
+ return psprintf("(%d)%s", (int) typmod, tz);
else
- snprintf(res, 64, "%s", tz);
- return res;
+ return psprintf("%s", tz);
}
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index c3c71b72810..5263d807671 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -116,15 +116,12 @@ anytimestamp_typmodin(bool istz, ArrayType *ta)
static char *
anytimestamp_typmodout(bool istz, int32 typmod)
{
- char *res = (char *) palloc(64);
const char *tz = istz ? " with time zone" : " without time zone";
if (typmod >= 0)
- snprintf(res, 64, "(%d)%s", (int) typmod, tz);
+ return psprintf("(%d)%s", (int) typmod, tz);
else
- snprintf(res, 64, "%s", tz);
-
- return res;
+ return psprintf("%s", tz);
}
diff --git a/src/backend/utils/fmgr/funcapi.c b/src/backend/utils/fmgr/funcapi.c
index 6347a8f1ac3..7718f43da4a 100644
--- a/src/backend/utils/fmgr/funcapi.c
+++ b/src/backend/utils/fmgr/funcapi.c
@@ -1205,8 +1205,7 @@ build_function_result_tupdesc_d(Datum proallargtypes,
if (pname == NULL || pname[0] == '\0')
{
/* Parameter is not named, so gin up a column name */
- pname = (char *) palloc(32);
- snprintf(pname, 32, "column%d", numoutargs + 1);
+ pname = psprintf("column%d", numoutargs + 1);
}
outargnames[numoutargs] = pname;
numoutargs++;
diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c
index 3bd8a152859..4dbe314557e 100644
--- a/src/test/regress/regress.c
+++ b/src/test/regress/regress.c
@@ -269,15 +269,11 @@ widget_in(char *str)
char *
widget_out(WIDGET * widget)
{
- char *result;
-
if (widget == NULL)
return NULL;
- result = (char *) palloc(60);
- sprintf(result, "(%g,%g,%g)",
+ return psprintf("(%g,%g,%g)",
widget->center.x, widget->center.y, widget->radius);
- return result;
}
PG_FUNCTION_INFO_V1(pt_in_widget);
diff --git a/src/tutorial/complex.c b/src/tutorial/complex.c
index edae0065c7d..80655885d50 100644
--- a/src/tutorial/complex.c
+++ b/src/tutorial/complex.c
@@ -73,8 +73,7 @@ complex_out(PG_FUNCTION_ARGS)
Complex *complex = (Complex *) PG_GETARG_POINTER(0);
char *result;
- result = (char *) palloc(100);
- snprintf(result, 100, "(%g,%g)", complex->x, complex->y);
+ result = psprintf("(%g,%g)", complex->x, complex->y);
PG_RETURN_CSTRING(result);
}