mirror of
https://github.com/postgres/postgres.git
synced 2025-04-20 00:42:27 +03:00
Add more use of psprintf()
This commit is contained in:
parent
10a82cda67
commit
edc43458d7
@ -1563,10 +1563,7 @@ dblink_get_pkey(PG_FUNCTION_ARGS)
|
|||||||
Datum result;
|
Datum result;
|
||||||
|
|
||||||
values = (char **) palloc(2 * sizeof(char *));
|
values = (char **) palloc(2 * sizeof(char *));
|
||||||
values[0] = (char *) palloc(12); /* sign, 10 digits, '\0' */
|
values[0] = psprintf("%d", call_cntr + 1);
|
||||||
|
|
||||||
sprintf(values[0], "%d", call_cntr + 1);
|
|
||||||
|
|
||||||
values[1] = results[call_cntr];
|
values[1] = results[call_cntr];
|
||||||
|
|
||||||
/* build the tuple */
|
/* build the tuple */
|
||||||
|
@ -1114,11 +1114,7 @@ hstore_out(PG_FUNCTION_ARGS)
|
|||||||
HEntry *entries = ARRPTR(in);
|
HEntry *entries = ARRPTR(in);
|
||||||
|
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
{
|
PG_RETURN_CSTRING(pstrdup(""));
|
||||||
out = palloc(1);
|
|
||||||
*out = '\0';
|
|
||||||
PG_RETURN_CSTRING(out);
|
|
||||||
}
|
|
||||||
|
|
||||||
buflen = 0;
|
buflen = 0;
|
||||||
|
|
||||||
|
@ -220,31 +220,17 @@ bt_page_stats(PG_FUNCTION_ARGS)
|
|||||||
elog(ERROR, "return type must be a row type");
|
elog(ERROR, "return type must be a row type");
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", stat.blkno);
|
||||||
snprintf(values[j++], 32, "%d", stat.blkno);
|
values[j++] = psprintf("%c", stat.type);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", stat.live_items);
|
||||||
snprintf(values[j++], 32, "%c", stat.type);
|
values[j++] = psprintf("%d", stat.dead_items);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", stat.avg_item_size);
|
||||||
snprintf(values[j++], 32, "%d", stat.live_items);
|
values[j++] = psprintf("%d", stat.page_size);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", stat.free_size);
|
||||||
snprintf(values[j++], 32, "%d", stat.dead_items);
|
values[j++] = psprintf("%d", stat.btpo_prev);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", stat.btpo_next);
|
||||||
snprintf(values[j++], 32, "%d", stat.avg_item_size);
|
values[j++] = psprintf("%d", (stat.type == 'd') ? stat.btpo.xact : stat.btpo.level);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", stat.btpo_flags);
|
||||||
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);
|
|
||||||
|
|
||||||
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
|
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
|
||||||
values);
|
values);
|
||||||
@ -380,18 +366,13 @@ bt_page_items(PG_FUNCTION_ARGS)
|
|||||||
itup = (IndexTuple) PageGetItem(uargs->page, id);
|
itup = (IndexTuple) PageGetItem(uargs->page, id);
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", uargs->offset);
|
||||||
snprintf(values[j++], 32, "%d", uargs->offset);
|
values[j++] = psprintf("(%u,%u)",
|
||||||
values[j] = palloc(32);
|
|
||||||
snprintf(values[j++], 32, "(%u,%u)",
|
|
||||||
BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)),
|
BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)),
|
||||||
itup->t_tid.ip_posid);
|
itup->t_tid.ip_posid);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", (int) IndexTupleSize(itup));
|
||||||
snprintf(values[j++], 32, "%d", (int) IndexTupleSize(itup));
|
values[j++] = psprintf("%c", IndexTupleHasNulls(itup) ? 't' : 'f');
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%c", IndexTupleHasVarwidths(itup) ? 't' : 'f');
|
||||||
snprintf(values[j++], 32, "%c", IndexTupleHasNulls(itup) ? 't' : 'f');
|
|
||||||
values[j] = palloc(32);
|
|
||||||
snprintf(values[j++], 32, "%c", IndexTupleHasVarwidths(itup) ? 't' : 'f');
|
|
||||||
|
|
||||||
ptr = (char *) itup + IndexInfoFindDataOffset(itup->t_info);
|
ptr = (char *) itup + IndexInfoFindDataOffset(itup->t_info);
|
||||||
dlen = IndexTupleSize(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");
|
elog(ERROR, "return type must be a row type");
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", metad->btm_magic);
|
||||||
snprintf(values[j++], 32, "%d", metad->btm_magic);
|
values[j++] = psprintf("%d", metad->btm_version);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", metad->btm_root);
|
||||||
snprintf(values[j++], 32, "%d", metad->btm_version);
|
values[j++] = psprintf("%d", metad->btm_level);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", metad->btm_fastroot);
|
||||||
snprintf(values[j++], 32, "%d", metad->btm_root);
|
values[j++] = psprintf("%d", metad->btm_fastlevel);
|
||||||
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);
|
|
||||||
|
|
||||||
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
|
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
|
||||||
values);
|
values);
|
||||||
|
@ -271,39 +271,29 @@ pgstatindex_impl(Relation rel, FunctionCallInfo fcinfo)
|
|||||||
elog(ERROR, "return type must be a row type");
|
elog(ERROR, "return type must be a row type");
|
||||||
|
|
||||||
j = 0;
|
j = 0;
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%d", indexStat.version);
|
||||||
snprintf(values[j++], 32, "%d", indexStat.version);
|
values[j++] = psprintf("%d", indexStat.level);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf(INT64_FORMAT,
|
||||||
snprintf(values[j++], 32, "%d", indexStat.level);
|
|
||||||
values[j] = palloc(32);
|
|
||||||
snprintf(values[j++], 32, INT64_FORMAT,
|
|
||||||
(indexStat.root_pages +
|
(indexStat.root_pages +
|
||||||
indexStat.leaf_pages +
|
indexStat.leaf_pages +
|
||||||
indexStat.internal_pages +
|
indexStat.internal_pages +
|
||||||
indexStat.deleted_pages +
|
indexStat.deleted_pages +
|
||||||
indexStat.empty_pages) * BLCKSZ);
|
indexStat.empty_pages) * BLCKSZ);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf("%u", indexStat.root_blkno);
|
||||||
snprintf(values[j++], 32, "%u", indexStat.root_blkno);
|
values[j++] = psprintf(INT64_FORMAT, indexStat.internal_pages);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf(INT64_FORMAT, indexStat.leaf_pages);
|
||||||
snprintf(values[j++], 32, INT64_FORMAT, indexStat.internal_pages);
|
values[j++] = psprintf(INT64_FORMAT, indexStat.empty_pages);
|
||||||
values[j] = palloc(32);
|
values[j++] = psprintf(INT64_FORMAT, indexStat.deleted_pages);
|
||||||
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);
|
|
||||||
if (indexStat.max_avail > 0)
|
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);
|
100.0 - (double) indexStat.free_space / (double) indexStat.max_avail * 100.0);
|
||||||
else
|
else
|
||||||
snprintf(values[j++], 32, "NaN");
|
values[j++] = pstrdup("NaN");
|
||||||
values[j] = palloc(32);
|
|
||||||
if (indexStat.leaf_pages > 0)
|
if (indexStat.leaf_pages > 0)
|
||||||
snprintf(values[j++], 32, "%.2f",
|
values[j++] = psprintf("%.2f",
|
||||||
(double) indexStat.fragments / (double) indexStat.leaf_pages * 100.0);
|
(double) indexStat.fragments / (double) indexStat.leaf_pages * 100.0);
|
||||||
else
|
else
|
||||||
snprintf(values[j++], 32, "NaN");
|
values[j++] = pstrdup("NaN");
|
||||||
|
|
||||||
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
|
tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc),
|
||||||
values);
|
values);
|
||||||
|
@ -108,8 +108,7 @@ complex_out(PG_FUNCTION_ARGS)
|
|||||||
Complex *complex = (Complex *) PG_GETARG_POINTER(0);
|
Complex *complex = (Complex *) PG_GETARG_POINTER(0);
|
||||||
char *result;
|
char *result;
|
||||||
|
|
||||||
result = (char *) palloc(100);
|
result = psprintf("(%g,%g)", complex->x, complex->y);
|
||||||
snprintf(result, 100, "(%g,%g)", complex->x, complex->y);
|
|
||||||
PG_RETURN_CSTRING(result);
|
PG_RETURN_CSTRING(result);
|
||||||
}
|
}
|
||||||
]]>
|
]]>
|
||||||
|
@ -2757,8 +2757,7 @@ pg_get_multixact_members(PG_FUNCTION_ARGS)
|
|||||||
HeapTuple tuple;
|
HeapTuple tuple;
|
||||||
char *values[2];
|
char *values[2];
|
||||||
|
|
||||||
values[0] = palloc(32);
|
values[0] = psprintf("%u", multi->members[multi->iter].xid);
|
||||||
sprintf(values[0], "%u", multi->members[multi->iter].xid);
|
|
||||||
values[1] = mxstatus_to_string(multi->members[multi->iter].status);
|
values[1] = mxstatus_to_string(multi->members[multi->iter].status);
|
||||||
|
|
||||||
tuple = BuildTupleFromCStrings(funccxt->attinmeta, values);
|
tuple = BuildTupleFromCStrings(funccxt->attinmeta, values);
|
||||||
|
@ -56,12 +56,7 @@ defGetString(DefElem *def)
|
|||||||
switch (nodeTag(def->arg))
|
switch (nodeTag(def->arg))
|
||||||
{
|
{
|
||||||
case T_Integer:
|
case T_Integer:
|
||||||
{
|
return psprintf("%ld", (long) intVal(def->arg));
|
||||||
char *str = palloc(32);
|
|
||||||
|
|
||||||
snprintf(str, 32, "%ld", (long) intVal(def->arg));
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
case T_Float:
|
case T_Float:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -778,10 +778,7 @@ build_subplan(PlannerInfo *root, Plan *plan, PlannerInfo *subroot,
|
|||||||
sprintf(splan->plan_name + offset, ")");
|
sprintf(splan->plan_name + offset, ")");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
splan->plan_name = psprintf("SubPlan %d", splan->plan_id);
|
||||||
splan->plan_name = palloc(32);
|
|
||||||
sprintf(splan->plan_name, "SubPlan %d", splan->plan_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Lastly, fill in the cost estimates for use later */
|
/* Lastly, fill in the cost estimates for use later */
|
||||||
cost_subplan(root, splan, plan);
|
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);
|
node->setParam = list_make1_int(prm->paramid);
|
||||||
|
|
||||||
/* Label the subplan for EXPLAIN purposes */
|
/* Label the subplan for EXPLAIN purposes */
|
||||||
node->plan_name = palloc(64);
|
node->plan_name = psprintf("InitPlan %d (returns $%d)",
|
||||||
sprintf(node->plan_name, "InitPlan %d (returns $%d)",
|
|
||||||
node->plan_id, prm->paramid);
|
node->plan_id, prm->paramid);
|
||||||
|
|
||||||
return prm;
|
return prm;
|
||||||
|
@ -313,8 +313,7 @@ typenameTypeMod(ParseState *pstate, const TypeName *typeName, Type typ)
|
|||||||
|
|
||||||
if (IsA(&ac->val, Integer))
|
if (IsA(&ac->val, Integer))
|
||||||
{
|
{
|
||||||
cstr = (char *) palloc(32);
|
cstr = psprintf("%ld", (long) ac->val.val.ival);
|
||||||
snprintf(cstr, 32, "%ld", (long) ac->val.val.ival);
|
|
||||||
}
|
}
|
||||||
else if (IsA(&ac->val, Float) ||
|
else if (IsA(&ac->val, Float) ||
|
||||||
IsA(&ac->val, String))
|
IsA(&ac->val, String))
|
||||||
|
@ -1649,9 +1649,7 @@ _mdfd_segpath(SMgrRelation reln, ForkNumber forknum, BlockNumber segno)
|
|||||||
|
|
||||||
if (segno > 0)
|
if (segno > 0)
|
||||||
{
|
{
|
||||||
/* be sure we have enough space for the '.segno' */
|
fullpath = psprintf("%s.%u", path, segno);
|
||||||
fullpath = (char *) palloc(strlen(path) + 12);
|
|
||||||
sprintf(fullpath, "%s.%u", path, segno);
|
|
||||||
pfree(path);
|
pfree(path);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -91,14 +91,12 @@ anytime_typmodin(bool istz, ArrayType *ta)
|
|||||||
static char *
|
static char *
|
||||||
anytime_typmodout(bool istz, int32 typmod)
|
anytime_typmodout(bool istz, int32 typmod)
|
||||||
{
|
{
|
||||||
char *res = (char *) palloc(64);
|
|
||||||
const char *tz = istz ? " with time zone" : " without time zone";
|
const char *tz = istz ? " with time zone" : " without time zone";
|
||||||
|
|
||||||
if (typmod >= 0)
|
if (typmod >= 0)
|
||||||
snprintf(res, 64, "(%d)%s", (int) typmod, tz);
|
return psprintf("(%d)%s", (int) typmod, tz);
|
||||||
else
|
else
|
||||||
snprintf(res, 64, "%s", tz);
|
return psprintf("%s", tz);
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,15 +116,12 @@ anytimestamp_typmodin(bool istz, ArrayType *ta)
|
|||||||
static char *
|
static char *
|
||||||
anytimestamp_typmodout(bool istz, int32 typmod)
|
anytimestamp_typmodout(bool istz, int32 typmod)
|
||||||
{
|
{
|
||||||
char *res = (char *) palloc(64);
|
|
||||||
const char *tz = istz ? " with time zone" : " without time zone";
|
const char *tz = istz ? " with time zone" : " without time zone";
|
||||||
|
|
||||||
if (typmod >= 0)
|
if (typmod >= 0)
|
||||||
snprintf(res, 64, "(%d)%s", (int) typmod, tz);
|
return psprintf("(%d)%s", (int) typmod, tz);
|
||||||
else
|
else
|
||||||
snprintf(res, 64, "%s", tz);
|
return psprintf("%s", tz);
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1205,8 +1205,7 @@ build_function_result_tupdesc_d(Datum proallargtypes,
|
|||||||
if (pname == NULL || pname[0] == '\0')
|
if (pname == NULL || pname[0] == '\0')
|
||||||
{
|
{
|
||||||
/* Parameter is not named, so gin up a column name */
|
/* Parameter is not named, so gin up a column name */
|
||||||
pname = (char *) palloc(32);
|
pname = psprintf("column%d", numoutargs + 1);
|
||||||
snprintf(pname, 32, "column%d", numoutargs + 1);
|
|
||||||
}
|
}
|
||||||
outargnames[numoutargs] = pname;
|
outargnames[numoutargs] = pname;
|
||||||
numoutargs++;
|
numoutargs++;
|
||||||
|
@ -269,15 +269,11 @@ widget_in(char *str)
|
|||||||
char *
|
char *
|
||||||
widget_out(WIDGET * widget)
|
widget_out(WIDGET * widget)
|
||||||
{
|
{
|
||||||
char *result;
|
|
||||||
|
|
||||||
if (widget == NULL)
|
if (widget == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
result = (char *) palloc(60);
|
return psprintf("(%g,%g,%g)",
|
||||||
sprintf(result, "(%g,%g,%g)",
|
|
||||||
widget->center.x, widget->center.y, widget->radius);
|
widget->center.x, widget->center.y, widget->radius);
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PG_FUNCTION_INFO_V1(pt_in_widget);
|
PG_FUNCTION_INFO_V1(pt_in_widget);
|
||||||
|
@ -73,8 +73,7 @@ complex_out(PG_FUNCTION_ARGS)
|
|||||||
Complex *complex = (Complex *) PG_GETARG_POINTER(0);
|
Complex *complex = (Complex *) PG_GETARG_POINTER(0);
|
||||||
char *result;
|
char *result;
|
||||||
|
|
||||||
result = (char *) palloc(100);
|
result = psprintf("(%g,%g)", complex->x, complex->y);
|
||||||
snprintf(result, 100, "(%g,%g)", complex->x, complex->y);
|
|
||||||
PG_RETURN_CSTRING(result);
|
PG_RETURN_CSTRING(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user