]> granicus.if.org Git - postgresql/commitdiff
Add more use of psprintf()
authorPeter Eisentraut <peter_e@gmx.net>
Tue, 7 Jan 2014 02:30:26 +0000 (21:30 -0500)
committerPeter Eisentraut <peter_e@gmx.net>
Tue, 7 Jan 2014 02:30:26 +0000 (21:30 -0500)
15 files changed:
contrib/dblink/dblink.c
contrib/hstore/hstore_io.c
contrib/pageinspect/btreefuncs.c
contrib/pgstattuple/pgstatindex.c
doc/src/sgml/xtypes.sgml
src/backend/access/transam/multixact.c
src/backend/commands/define.c
src/backend/optimizer/plan/subselect.c
src/backend/parser/parse_type.c
src/backend/storage/smgr/md.c
src/backend/utils/adt/date.c
src/backend/utils/adt/timestamp.c
src/backend/utils/fmgr/funcapi.c
src/test/regress/regress.c
src/tutorial/complex.c

index a91a547ada0a505efe1ac23b7e30a3d14abd3c5d..5fd1dd8c58383aab5fcf50573ae37c4871776e75 100644 (file)
@@ -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 */
index 772a5ca5d51380a1ecbffffdfbdc48e20acd6ea3..973a1265c1d42b16cfe40c921d3490023e20ef95 100644 (file)
@@ -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;
 
index bc34af9b3c7960e39321bc8903f385a75eb2d8a3..e3f3c2818f166a4e2e6cf66101e654b8996817d6 100644 (file)
@@ -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);
index 282d82ca8280b5d9aa74b8fe8219ef777f5b5712..8939b784db9e720a8b36cbb1ddce087a116646ae 100644 (file)
@@ -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);
index 0154181cc528a25177b87589870b880f8b6325ae..e1340baeb730c86b4d05d84bfe15864f65ed7043 100644 (file)
@@ -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);
 }
 ]]>
index e2b31ee441f662deae9220bc7fb75ace12e7b446..6ab53840f8e1e58366f2ef3a5e17dcfde09ce3c6 100644 (file)
@@ -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);
index 75f77da2cffefea87c6b118ca62cd6eca5a511b0..486ef92492258b9dd7a582a32bb6fff4d48c5076 100644 (file)
@@ -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:
 
                        /*
index 0f9211866093140e8fe602f9aaa09a8700264831..70fdb14085ebfab130de5b647e06856dd7254a7b 100644 (file)
@@ -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;
index ee6802a65582dd4880b643a502216d786f3468e6..84ec8a70e76ef308fcfd5f79916b8b45f85ae4be 100644 (file)
@@ -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))
index e62918195ead064f3622f5fada66092837132e33..268035ca92a0dadf80dcc61c5d0aa9c3ba006e48 100644 (file)
@@ -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
index fe091daec8178e5142ed492a910aceadd36b6b2f..2bafd6145c285ba09890e82549cd087a177d10c5 100644 (file)
@@ -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);
 }
 
 
index c3c71b72810dcccb8dc15c04c6e57b812dde3fc8..5263d8076711dbd5b7df97dbab22a5c5f01ab8cc 100644 (file)
@@ -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);
 }
 
 
index 6347a8f1ac3826c1e1cf4d2157593738f565b3d3..7718f43da4a871e013df7ef6b46e551a102cd6d1 100644 (file)
@@ -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++;
index 3bd8a15285981a25e8e84de37a62988cfc54c1ef..4dbe314557e28b6790bd36afa983848858ba162f 100644 (file)
@@ -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);
index edae0065c7df98437fc65ff7d5510733e97eeb9b..80655885d50d24b82cf1920a0dd255c7b91d6d9a 100644 (file)
@@ -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);
 }