Remove workarounds for avoiding [U]INT64_FORMAT in translatable strings.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Mar 2022 15:11:55 +0000 (11:11 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Mar 2022 15:11:55 +0000 (11:11 -0400)
Further code simplification along the same lines as d914eb347
and earlier patches.

Aleksander Alekseev, Japin Li

Discussion: https://postgr.es/m/CAJ7c6TMSKi3Xs8h5MP38XOnQQpBLazJvVxVfPn++roitDJcR7g@mail.gmail.com

src/backend/access/brin/brin.c
src/backend/commands/copyfrom.c
src/backend/commands/sequence.c
src/backend/utils/adt/xid8funcs.c
src/bin/pg_checksums/pg_checksums.c

index ba78ecff665eceddd93889a405ccfddc6c6594b0..43660107688e86ab0dae7b84251765db30054f61 100644 (file)
@@ -1017,13 +1017,10 @@ brin_summarize_range(PG_FUNCTION_ARGS)
                 errhint("BRIN control functions cannot be executed during recovery.")));
 
    if (heapBlk64 > BRIN_ALL_BLOCKRANGES || heapBlk64 < 0)
-   {
-       char       *blk = psprintf(INT64_FORMAT, heapBlk64);
-
        ereport(ERROR,
                (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
-                errmsg("block number out of range: %s", blk)));
-   }
+                errmsg("block number out of range: %lld",
+                       (long long) heapBlk64)));
    heapBlk = (BlockNumber) heapBlk64;
 
    /*
@@ -1094,13 +1091,10 @@ brin_desummarize_range(PG_FUNCTION_ARGS)
                 errhint("BRIN control functions cannot be executed during recovery.")));
 
    if (heapBlk64 > MaxBlockNumber || heapBlk64 < 0)
-   {
-       char       *blk = psprintf(INT64_FORMAT, heapBlk64);
-
        ereport(ERROR,
                (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
-                errmsg("block number out of range: %s", blk)));
-   }
+                errmsg("block number out of range: %lld",
+                       (long long) heapBlk64)));
    heapBlk = (BlockNumber) heapBlk64;
 
    /*
index 7b3f5a84b82d07adebea16668cc4d57c1155f7ea..db6eb6fae7844ec2111710fd74b94b4de8bde05a 100644 (file)
@@ -115,21 +115,19 @@ void
 CopyFromErrorCallback(void *arg)
 {
    CopyFromState cstate = (CopyFromState) arg;
-   char        curlineno_str[32];
-
-   snprintf(curlineno_str, sizeof(curlineno_str), UINT64_FORMAT,
-            cstate->cur_lineno);
 
    if (cstate->opts.binary)
    {
        /* can't usefully display the data */
        if (cstate->cur_attname)
-           errcontext("COPY %s, line %s, column %s",
-                      cstate->cur_relname, curlineno_str,
+           errcontext("COPY %s, line %llu, column %s",
+                      cstate->cur_relname,
+                      (unsigned long long) cstate->cur_lineno,
                       cstate->cur_attname);
        else
-           errcontext("COPY %s, line %s",
-                      cstate->cur_relname, curlineno_str);
+           errcontext("COPY %s, line %llu",
+                      cstate->cur_relname,
+                      (unsigned long long) cstate->cur_lineno);
    }
    else
    {
@@ -139,16 +137,19 @@ CopyFromErrorCallback(void *arg)
            char       *attval;
 
            attval = limit_printout_length(cstate->cur_attval);
-           errcontext("COPY %s, line %s, column %s: \"%s\"",
-                      cstate->cur_relname, curlineno_str,
-                      cstate->cur_attname, attval);
+           errcontext("COPY %s, line %llu, column %s: \"%s\"",
+                      cstate->cur_relname,
+                      (unsigned long long) cstate->cur_lineno,
+                      cstate->cur_attname,
+                      attval);
            pfree(attval);
        }
        else if (cstate->cur_attname)
        {
            /* error is relevant to a particular column, value is NULL */
-           errcontext("COPY %s, line %s, column %s: null input",
-                      cstate->cur_relname, curlineno_str,
+           errcontext("COPY %s, line %llu, column %s: null input",
+                      cstate->cur_relname,
+                      (unsigned long long) cstate->cur_lineno,
                       cstate->cur_attname);
        }
        else
@@ -163,14 +164,16 @@ CopyFromErrorCallback(void *arg)
                char       *lineval;
 
                lineval = limit_printout_length(cstate->line_buf.data);
-               errcontext("COPY %s, line %s: \"%s\"",
-                          cstate->cur_relname, curlineno_str, lineval);
+               errcontext("COPY %s, line %llu: \"%s\"",
+                          cstate->cur_relname,
+                          (unsigned long long) cstate->cur_lineno, lineval);
                pfree(lineval);
            }
            else
            {
-               errcontext("COPY %s, line %s",
-                          cstate->cur_relname, curlineno_str);
+               errcontext("COPY %s, line %llu",
+                          cstate->cur_relname,
+                          (unsigned long long) cstate->cur_lineno);
            }
        }
    }
index ab592ce2f153b8a82de32b574b652d0690adf9d5..c13cada3bf122954ae2bd837fb6d476732dabe32 100644 (file)
@@ -706,15 +706,11 @@ nextval_internal(Oid relid, bool check_permissions)
                if (rescnt > 0)
                    break;      /* stop fetching */
                if (!cycle)
-               {
-                   char        buf[100];
-
-                   snprintf(buf, sizeof(buf), INT64_FORMAT, maxv);
                    ereport(ERROR,
                            (errcode(ERRCODE_SEQUENCE_GENERATOR_LIMIT_EXCEEDED),
-                            errmsg("nextval: reached maximum value of sequence \"%s\" (%s)",
-                                   RelationGetRelationName(seqrel), buf)));
-               }
+                            errmsg("nextval: reached maximum value of sequence \"%s\" (%lld)",
+                                   RelationGetRelationName(seqrel),
+                                   (long long) maxv)));
                next = minv;
            }
            else
@@ -729,15 +725,11 @@ nextval_internal(Oid relid, bool check_permissions)
                if (rescnt > 0)
                    break;      /* stop fetching */
                if (!cycle)
-               {
-                   char        buf[100];
-
-                   snprintf(buf, sizeof(buf), INT64_FORMAT, minv);
                    ereport(ERROR,
                            (errcode(ERRCODE_SEQUENCE_GENERATOR_LIMIT_EXCEEDED),
-                            errmsg("nextval: reached minimum value of sequence \"%s\" (%s)",
-                                   RelationGetRelationName(seqrel), buf)));
-               }
+                            errmsg("nextval: reached minimum value of sequence \"%s\" (%lld)",
+                                   RelationGetRelationName(seqrel),
+                                   (long long) minv)));
                next = maxv;
            }
            else
@@ -975,20 +967,11 @@ do_setval(Oid relid, int64 next, bool iscalled)
    seq = read_seq_tuple(seqrel, &buf, &seqdatatuple);
 
    if ((next < minv) || (next > maxv))
-   {
-       char        bufv[100],
-                   bufm[100],
-                   bufx[100];
-
-       snprintf(bufv, sizeof(bufv), INT64_FORMAT, next);
-       snprintf(bufm, sizeof(bufm), INT64_FORMAT, minv);
-       snprintf(bufx, sizeof(bufx), INT64_FORMAT, maxv);
        ereport(ERROR,
                (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
-                errmsg("setval: value %s is out of bounds for sequence \"%s\" (%s..%s)",
-                       bufv, RelationGetRelationName(seqrel),
-                       bufm, bufx)));
-   }
+                errmsg("setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)",
+                       (long long) next, RelationGetRelationName(seqrel),
+                       (long long) minv, (long long) maxv)));
 
    /* Set the currval() state only if iscalled = true */
    if (iscalled)
@@ -1468,16 +1451,11 @@ init_params(ParseState *pstate, List *options, bool for_identity,
    /* Validate maximum value.  No need to check INT8 as seqmax is an int64 */
    if ((seqform->seqtypid == INT2OID && (seqform->seqmax < PG_INT16_MIN || seqform->seqmax > PG_INT16_MAX))
        || (seqform->seqtypid == INT4OID && (seqform->seqmax < PG_INT32_MIN || seqform->seqmax > PG_INT32_MAX)))
-   {
-       char        bufx[100];
-
-       snprintf(bufx, sizeof(bufx), INT64_FORMAT, seqform->seqmax);
-
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("MAXVALUE (%s) is out of range for sequence data type %s",
-                       bufx, format_type_be(seqform->seqtypid))));
-   }
+                errmsg("MAXVALUE (%lld) is out of range for sequence data type %s",
+                       (long long) seqform->seqmax,
+                       format_type_be(seqform->seqtypid))));
 
    /* MINVALUE (null arg means NO MINVALUE) */
    if (min_value != NULL && min_value->arg)
@@ -1505,30 +1483,19 @@ init_params(ParseState *pstate, List *options, bool for_identity,
    /* Validate minimum value.  No need to check INT8 as seqmin is an int64 */
    if ((seqform->seqtypid == INT2OID && (seqform->seqmin < PG_INT16_MIN || seqform->seqmin > PG_INT16_MAX))
        || (seqform->seqtypid == INT4OID && (seqform->seqmin < PG_INT32_MIN || seqform->seqmin > PG_INT32_MAX)))
-   {
-       char        bufm[100];
-
-       snprintf(bufm, sizeof(bufm), INT64_FORMAT, seqform->seqmin);
-
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("MINVALUE (%s) is out of range for sequence data type %s",
-                       bufm, format_type_be(seqform->seqtypid))));
-   }
+                errmsg("MINVALUE (%lld) is out of range for sequence data type %s",
+                       (long long) seqform->seqmin,
+                       format_type_be(seqform->seqtypid))));
 
    /* crosscheck min/max */
    if (seqform->seqmin >= seqform->seqmax)
-   {
-       char        bufm[100],
-                   bufx[100];
-
-       snprintf(bufm, sizeof(bufm), INT64_FORMAT, seqform->seqmin);
-       snprintf(bufx, sizeof(bufx), INT64_FORMAT, seqform->seqmax);
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("MINVALUE (%s) must be less than MAXVALUE (%s)",
-                       bufm, bufx)));
-   }
+                errmsg("MINVALUE (%lld) must be less than MAXVALUE (%lld)",
+                       (long long) seqform->seqmin,
+                       (long long) seqform->seqmax)));
 
    /* START WITH */
    if (start_value != NULL)
@@ -1545,29 +1512,17 @@ init_params(ParseState *pstate, List *options, bool for_identity,
 
    /* crosscheck START */
    if (seqform->seqstart < seqform->seqmin)
-   {
-       char        bufs[100],
-                   bufm[100];
-
-       snprintf(bufs, sizeof(bufs), INT64_FORMAT, seqform->seqstart);
-       snprintf(bufm, sizeof(bufm), INT64_FORMAT, seqform->seqmin);
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("START value (%s) cannot be less than MINVALUE (%s)",
-                       bufs, bufm)));
-   }
+                errmsg("START value (%lld) cannot be less than MINVALUE (%lld)",
+                       (long long) seqform->seqstart,
+                       (long long) seqform->seqmin)));
    if (seqform->seqstart > seqform->seqmax)
-   {
-       char        bufs[100],
-                   bufm[100];
-
-       snprintf(bufs, sizeof(bufs), INT64_FORMAT, seqform->seqstart);
-       snprintf(bufm, sizeof(bufm), INT64_FORMAT, seqform->seqmax);
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("START value (%s) cannot be greater than MAXVALUE (%s)",
-                       bufs, bufm)));
-   }
+                errmsg("START value (%lld) cannot be greater than MAXVALUE (%lld)",
+                       (long long) seqform->seqstart,
+                       (long long) seqform->seqmax)));
 
    /* RESTART [WITH] */
    if (restart_value != NULL)
@@ -1587,44 +1542,27 @@ init_params(ParseState *pstate, List *options, bool for_identity,
 
    /* crosscheck RESTART (or current value, if changing MIN/MAX) */
    if (seqdataform->last_value < seqform->seqmin)
-   {
-       char        bufs[100],
-                   bufm[100];
-
-       snprintf(bufs, sizeof(bufs), INT64_FORMAT, seqdataform->last_value);
-       snprintf(bufm, sizeof(bufm), INT64_FORMAT, seqform->seqmin);
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("RESTART value (%s) cannot be less than MINVALUE (%s)",
-                       bufs, bufm)));
-   }
+                errmsg("RESTART value (%lld) cannot be less than MINVALUE (%lld)",
+                       (long long) seqdataform->last_value,
+                       (long long) seqform->seqmin)));
    if (seqdataform->last_value > seqform->seqmax)
-   {
-       char        bufs[100],
-                   bufm[100];
-
-       snprintf(bufs, sizeof(bufs), INT64_FORMAT, seqdataform->last_value);
-       snprintf(bufm, sizeof(bufm), INT64_FORMAT, seqform->seqmax);
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("RESTART value (%s) cannot be greater than MAXVALUE (%s)",
-                       bufs, bufm)));
-   }
+                errmsg("RESTART value (%lld) cannot be greater than MAXVALUE (%lld)",
+                       (long long) seqdataform->last_value,
+                       (long long) seqform->seqmax)));
 
    /* CACHE */
    if (cache_value != NULL)
    {
        seqform->seqcache = defGetInt64(cache_value);
        if (seqform->seqcache <= 0)
-       {
-           char        buf[100];
-
-           snprintf(buf, sizeof(buf), INT64_FORMAT, seqform->seqcache);
            ereport(ERROR,
                    (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                    errmsg("CACHE (%s) must be greater than zero",
-                           buf)));
-       }
+                    errmsg("CACHE (%lld) must be greater than zero",
+                           (long long) seqform->seqcache)));
        seqdataform->log_cnt = 0;
    }
    else if (isInit)
index 60e57876de6a81a4a1f847cce22d160093e5af2b..6c57ec3d35820c4260b29a3e62b514b4d9acdaf9 100644 (file)
@@ -113,9 +113,8 @@ TransactionIdInRecentPast(FullTransactionId fxid, TransactionId *extracted_xid)
    if (!FullTransactionIdPrecedes(fxid, now_fullxid))
        ereport(ERROR,
                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                errmsg("transaction ID %s is in the future",
-                       psprintf(UINT64_FORMAT,
-                                U64FromFullTransactionId(fxid)))));
+                errmsg("transaction ID %llu is in the future",
+                       (unsigned long long) U64FromFullTransactionId(fxid))));
 
    /*
     * ShmemVariableCache->oldestClogXid is protected by XactTruncationLock,
index 7e69475947f64730be1a2d4a8115c40f25f9aa0e..5f0f5ee62d034320e388eece7677e98ce6fc3186 100644 (file)
@@ -132,8 +132,6 @@ static void
 progress_report(bool finished)
 {
    int         percent;
-   char        total_size_str[32];
-   char        current_size_str[32];
    pg_time_t   now;
 
    Assert(showprogress);
@@ -152,18 +150,9 @@ progress_report(bool finished)
    /* Calculate current percentage of size done */
    percent = total_size ? (int) ((current_size) * 100 / total_size) : 0;
 
-   /*
-    * Separate step to keep platform-dependent format code out of
-    * translatable strings.  And we only test for INT64_FORMAT availability
-    * in snprintf, not fprintf.
-    */
-   snprintf(total_size_str, sizeof(total_size_str), INT64_FORMAT,
-            total_size / (1024 * 1024));
-   snprintf(current_size_str, sizeof(current_size_str), INT64_FORMAT,
-            current_size / (1024 * 1024));
-
-   fprintf(stderr, _("%*s/%s MB (%d%%) computed"),
-           (int) strlen(current_size_str), current_size_str, total_size_str,
+   fprintf(stderr, _("%lld/%lld MB (%d%%) computed"),
+           (long long) (current_size / (1024 * 1024)),
+           (long long) (total_size / (1024 * 1024)),
            percent);
 
    /*
@@ -657,11 +646,11 @@ main(int argc, char *argv[])
            progress_report(true);
 
        printf(_("Checksum operation completed\n"));
-       printf(_("Files scanned:   %s\n"), psprintf(INT64_FORMAT, files_scanned));
-       printf(_("Blocks scanned:  %s\n"), psprintf(INT64_FORMAT, blocks_scanned));
+       printf(_("Files scanned:   %lld\n"), (long long) files_scanned);
+       printf(_("Blocks scanned:  %lld\n"), (long long) blocks_scanned);
        if (mode == PG_MODE_CHECK)
        {
-           printf(_("Bad checksums:  %s\n"), psprintf(INT64_FORMAT, badblocks));
+           printf(_("Bad checksums:  %lld\n"), (long long) badblocks);
            printf(_("Data checksum version: %u\n"), ControlFile->data_checksum_version);
 
            if (badblocks > 0)
@@ -669,8 +658,8 @@ main(int argc, char *argv[])
        }
        else if (mode == PG_MODE_ENABLE)
        {
-           printf(_("Files written:  %s\n"), psprintf(INT64_FORMAT, files_written));
-           printf(_("Blocks written: %s\n"), psprintf(INT64_FORMAT, blocks_written));
+           printf(_("Files written:  %lld\n"), (long long) files_written);
+           printf(_("Blocks written: %lld\n"), (long long) blocks_written);
        }
    }