You've already forked pg_probackup
							
							
				mirror of
				https://github.com/postgrespro/pg_probackup.git
				synced 2025-10-31 00:17:52 +02:00 
			
		
		
		
	Little fixes
- read parent-backup-id not parent_backup - sort backup_files_list only for ptrack backup
This commit is contained in:
		
							
								
								
									
										11
									
								
								backup.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								backup.c
									
									
									
									
									
								
							| @@ -208,11 +208,6 @@ do_backup_database(parray *backup_list) | ||||
| 			 (uint32) (prev_backup->start_lsn >> 32), (uint32) (prev_backup->start_lsn)); | ||||
| 		elog(LOG, "current.start_lsn: %X/%X", | ||||
| 			 (uint32) (current.start_lsn >> 32), (uint32) (current.start_lsn)); | ||||
|  | ||||
| 		/* TODO for some reason we sort the list for both incremental modes. | ||||
| 		 * Is it necessary? | ||||
| 		 */ | ||||
| 		parray_qsort(backup_files_list, pgFileComparePathDesc); | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| @@ -243,13 +238,15 @@ do_backup_database(parray *backup_list) | ||||
| 						"Create new full backup before an incremental one.", | ||||
| 						ptrack_lsn, prev_backup->start_lsn); | ||||
| 		} | ||||
| 		parray_qsort(backup_files_list, pgFileComparePathDesc); | ||||
| 		make_pagemap_from_ptrack(backup_files_list); | ||||
| 	} | ||||
|  | ||||
| 	/* sort pathname ascending TODO What for?*/ | ||||
| 	/* Sort pathname ascending TODO What for?*/ | ||||
| 	parray_qsort(backup_files_list, pgFileComparePath); | ||||
|  | ||||
| 	/* make dirs before backup | ||||
| 	/* | ||||
| 	 * Make directories before backup | ||||
| 	 * and setup threads at the same time | ||||
| 	 */ | ||||
| 	for (i = 0; i < parray_num(backup_files_list); i++) | ||||
|   | ||||
							
								
								
									
										14
									
								
								catalog.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								catalog.c
									
									
									
									
									
								
							| @@ -375,16 +375,17 @@ pgBackupCreateDir(pgBackup *backup) | ||||
| void | ||||
| pgBackupWriteControl(FILE *out, pgBackup *backup) | ||||
| { | ||||
| 	char timestamp[20]; | ||||
| 	char		timestamp[20]; | ||||
|  | ||||
| 	fprintf(out, "#Configuration\n"); | ||||
| 	fprintf(out, "backup-mode = %s\n", backupModes[backup->backup_mode]); | ||||
|  	fprintf(out, "stream = %s\n", backup->stream?"true":"false"); | ||||
| 	fprintf(out, "stream = %s\n", backup->stream?"true":"false"); | ||||
| 	 | ||||
| 	fprintf(out, "\n#Compatibility\n"); | ||||
| 	fprintf(out, "block-size = %u\n", backup->block_size); | ||||
| 	fprintf(out, "xlog-block-size = %u\n", backup->wal_block_size); | ||||
| 	fprintf(out, "checksum-version = %u\n", backup->checksum_version); | ||||
| 	 | ||||
|  | ||||
| 	fprintf(out, "\n#Result backup info\n"); | ||||
| 	fprintf(out, "timelineid = %d\n", backup->tli); | ||||
| 	fprintf(out, "start-lsn = %x/%08x\n", | ||||
| @@ -415,7 +416,8 @@ pgBackupWriteControl(FILE *out, pgBackup *backup) | ||||
| 	fprintf(out, "status = %s\n", status2str(backup->status)); | ||||
| 	if (backup->parent_backup != 0) | ||||
| 	{ | ||||
| 		char *parent_backup = base36enc(backup->parent_backup); | ||||
| 		char	   *parent_backup = base36enc(backup->parent_backup); | ||||
|  | ||||
| 		fprintf(out, "parent-backup-id = '%s'\n", parent_backup); | ||||
| 		free(parent_backup); | ||||
| 	} | ||||
| @@ -470,7 +472,7 @@ readBackupControlFile(const char *path) | ||||
| 		{'u', 0, "checksum_version",	&backup->checksum_version, SOURCE_FILE_STRICT}, | ||||
| 		{'b', 0, "stream",				&backup->stream, SOURCE_FILE_STRICT}, | ||||
| 		{'s', 0, "status",				&status, SOURCE_FILE_STRICT}, | ||||
| 		{'s', 0, "parent_backup",		&parent_backup, SOURCE_FILE_STRICT}, | ||||
| 		{'s', 0, "parent-backup-id",	&parent_backup, SOURCE_FILE_STRICT}, | ||||
| 		{0} | ||||
| 	}; | ||||
|  | ||||
| @@ -599,7 +601,7 @@ pgBackupCompareIdDesc(const void *l, const void *r) | ||||
| void | ||||
| pgBackupGetPath(const pgBackup *backup, char *path, size_t len, const char *subdir) | ||||
| { | ||||
| 	char	*datetime; | ||||
| 	char	   *datetime; | ||||
|  | ||||
| 	datetime = base36enc(backup->start_time); | ||||
| 	if (subdir) | ||||
|   | ||||
							
								
								
									
										1
									
								
								delete.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								delete.c
									
									
									
									
									
								
							| @@ -252,6 +252,7 @@ static int | ||||
| pgBackupDeleteFiles(pgBackup *backup) | ||||
| { | ||||
| 	size_t		i; | ||||
| 	char	   *backup_id; | ||||
| 	char		path[MAXPGPATH]; | ||||
| 	char		timestamp[20]; | ||||
| 	parray	   *files; | ||||
|   | ||||
							
								
								
									
										10
									
								
								util.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								util.c
									
									
									
									
									
								
							| @@ -14,11 +14,12 @@ | ||||
|  | ||||
| #include "storage/bufpage.h" | ||||
|  | ||||
| char *base36enc(long unsigned int value) | ||||
| char * | ||||
| base36enc(long unsigned int value) | ||||
| { | ||||
| 	char base36[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; | ||||
| 	char		base36[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; | ||||
| 	/* log(2**64) / log(36) = 12.38 => max 13 char + '\0' */ | ||||
| 	char buffer[14]; | ||||
| 	char		buffer[14]; | ||||
| 	unsigned int offset = sizeof(buffer); | ||||
|  | ||||
| 	buffer[--offset] = '\0'; | ||||
| @@ -29,7 +30,8 @@ char *base36enc(long unsigned int value) | ||||
| 	return strdup(&buffer[offset]); // warning: this must be free-d by the user | ||||
| } | ||||
|  | ||||
| long unsigned int base36dec(const char *text) | ||||
| long unsigned int | ||||
| base36dec(const char *text) | ||||
| { | ||||
| 	return strtoul(text, NULL, 36); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user