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
    {
            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
                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);
            }
        }
    }
 
                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
                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
    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)
    /* 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)
    /* 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)
 
    /* 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)
 
    /* 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)
 
 progress_report(bool finished)
 {
    int         percent;
-   char        total_size_str[32];
-   char        current_size_str[32];
    pg_time_t   now;
 
    Assert(showprogress);
    /* 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);
 
    /*
            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)
        }
        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);
        }
    }