Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  xlogbackup.c

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * xlogbackup.c
 *  Internal routines for base backups.
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * IDENTIFICATION
 *      src/backend/access/transam/xlogbackup.c
 *-------------------------------------------------------------------------
 */


#include "postgres.h"

#include "access/xlog.h"
#include "access/xlog_internal.h"
#include "access/xlogbackup.h"

/*
 * Build contents for backup_label or backup history file.
 *
 * When ishistoryfile is true, it creates the contents for a backup history
 * file, otherwise it creates contents for a backup_label file.
 *
 * Returns the result generated as a palloc'd string.
 */

char *
build_backup_content(BackupState *state, bool ishistoryfile)
{
 char  startstrbuf[128];
 char  startxlogfile[MAXFNAMELEN]; /* backup start WAL file */
 XLogSegNo startsegno;
 StringInfo result = makeStringInfo();
 char    *data;

 Assert(state != NULL);

 /* Use the log timezone here, not the session timezone */
 pg_strftime(startstrbuf, sizeof(startstrbuf), "%Y-%m-%d %H:%M:%S %Z",
    pg_localtime(&state->starttime, log_timezone));

 XLByteToSeg(state->startpoint, startsegno, wal_segment_size);
 XLogFileName(startxlogfile, state->starttli, startsegno, wal_segment_size);
 appendStringInfo(result, "START WAL LOCATION: %X/%X (file %s)\n",
      LSN_FORMAT_ARGS(state->startpoint), startxlogfile);

 if (ishistoryfile)
 {
  char  stopxlogfile[MAXFNAMELEN]; /* backup stop WAL file */
  XLogSegNo stopsegno;

  XLByteToSeg(state->stoppoint, stopsegno, wal_segment_size);
  XLogFileName(stopxlogfile, state->stoptli, stopsegno, wal_segment_size);
  appendStringInfo(result, "STOP WAL LOCATION: %X/%X (file %s)\n",
       LSN_FORMAT_ARGS(state->stoppoint), stopxlogfile);
 }

 appendStringInfo(result, "CHECKPOINT LOCATION: %X/%X\n",
      LSN_FORMAT_ARGS(state->checkpointloc));
 appendStringInfoString(result, "BACKUP METHOD: streamed\n");
 appendStringInfo(result, "BACKUP FROM: %s\n",
      state->started_in_recovery ? "standby" : "primary");
 appendStringInfo(result, "START TIME: %s\n", startstrbuf);
 appendStringInfo(result, "LABEL: %s\n", state->name);
 appendStringInfo(result, "START TIMELINE: %u\n", state->starttli);

 if (ishistoryfile)
 {
  char  stopstrfbuf[128];

  /* Use the log timezone here, not the session timezone */
  pg_strftime(stopstrfbuf, sizeof(stopstrfbuf), "%Y-%m-%d %H:%M:%S %Z",
     pg_localtime(&state->stoptime, log_timezone));

  appendStringInfo(result, "STOP TIME: %s\n", stopstrfbuf);
  appendStringInfo(result, "STOP TIMELINE: %u\n", state->stoptli);
 }

 /* either both istartpoint and istarttli should be set, or neither */
 Assert(XLogRecPtrIsInvalid(state->istartpoint) == (state->istarttli == 0));
 if (!XLogRecPtrIsInvalid(state->istartpoint))
 {
  appendStringInfo(result, "INCREMENTAL FROM LSN: %X/%X\n",
       LSN_FORMAT_ARGS(state->istartpoint));
  appendStringInfo(result, "INCREMENTAL FROM TLI: %u\n",
       state->istarttli);
 }

 data = result->data;
 pfree(result);

 return data;
}

Messung V0.5 in Prozent
C=91 H=95 G=92

¤ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=752002