/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/backend/backup/basebackup_sink.c
125 строк
3 KB
Bruce Momjian
Update copyright for 2026
01 янв 2026, 21:24
01 янв 2026, 21:24
451c439
Код
Авторство
О чём код?
/*------------------------------------------------------------------------- * * basebackup_sink.c * Default implementations for bbsink (basebackup sink) callbacks. * * Portions Copyright (c) 2010-2026, PostgreSQL Global Development Group * * src/backend/backup/basebackup_sink.c * *------------------------------------------------------------------------- */ #include "postgres.h" #include "backup/basebackup_sink.h" /* * Forward begin_backup callback. * * Only use this implementation if you want the bbsink you're implementing to * share a buffer with the successor bbsink. */ void bbsink_forward_begin_backup(bbsink *sink) { Assert(sink->bbs_next != NULL); Assert(sink->bbs_state != NULL); bbsink_begin_backup(sink->bbs_next, sink->bbs_state, sink->bbs_buffer_length); sink->bbs_buffer = sink->bbs_next->bbs_buffer; } /* * Forward begin_archive callback. */ void bbsink_forward_begin_archive(bbsink *sink, const char *archive_name) { Assert(sink->bbs_next != NULL); bbsink_begin_archive(sink->bbs_next, archive_name); } /* * Forward archive_contents callback. * * Code that wants to use this should initialize its own bbs_buffer and * bbs_buffer_length fields to the values from the successor sink. In cases * where the buffer isn't shared, the data needs to be copied before forwarding * the callback. We don't do try to do that here, because there's really no * reason to have separately allocated buffers containing the same identical * data. */ void bbsink_forward_archive_contents(bbsink *sink, size_t len) { Assert(sink->bbs_next != NULL); Assert(sink->bbs_buffer == sink->bbs_next->bbs_buffer); Assert(sink->bbs_buffer_length == sink->bbs_next->bbs_buffer_length); bbsink_archive_contents(sink->bbs_next, len); } /* * Forward end_archive callback. */ void bbsink_forward_end_archive(bbsink *sink) { Assert(sink->bbs_next != NULL); bbsink_end_archive(sink->bbs_next); } /* * Forward begin_manifest callback. */ void bbsink_forward_begin_manifest(bbsink *sink) { Assert(sink->bbs_next != NULL); bbsink_begin_manifest(sink->bbs_next); } /* * Forward manifest_contents callback. * * As with the archive_contents callback, it's expected that the buffer is * shared. */ void bbsink_forward_manifest_contents(bbsink *sink, size_t len) { Assert(sink->bbs_next != NULL); Assert(sink->bbs_buffer == sink->bbs_next->bbs_buffer); Assert(sink->bbs_buffer_length == sink->bbs_next->bbs_buffer_length); bbsink_manifest_contents(sink->bbs_next, len); } /* * Forward end_manifest callback. */ void bbsink_forward_end_manifest(bbsink *sink) { Assert(sink->bbs_next != NULL); bbsink_end_manifest(sink->bbs_next); } /* * Forward end_backup callback. */ void bbsink_forward_end_backup(bbsink *sink, XLogRecPtr endptr, TimeLineID endtli) { Assert(sink->bbs_next != NULL); bbsink_end_backup(sink->bbs_next, endptr, endtli); } /* * Forward cleanup callback. */ void bbsink_forward_cleanup(bbsink *sink) { Assert(sink->bbs_next != NULL); bbsink_cleanup(sink->bbs_next); }