5#include "../SqlConnection.hpp"
6#include "../SqlSchema.hpp"
7#include "../SqlStatement.hpp"
8#include "../ThreadSafeQueue.hpp"
9#include "ChunkPlanner.hpp"
10#include "SqlBackup.hpp"
11#include "WorkerChunkArchive.hpp"
22 #pragma clang diagnostic push
23 #pragma clang diagnostic ignored "-Wnullability-extension"
27 #pragma clang diagnostic pop
30namespace Lightweight::SqlBackup::detail
38 ProgressManager& progress;
39 SqlConnectionString
const& connectionString;
40 std::string
const& schema;
41 std::map<std::string, std::string>* checksums;
42 std::mutex* checksumMutex;
43 RetrySettings
const& retrySettings;
44 BackupSettings
const& backupSettings;
64std::string BuildSelectQueryWithOffset(SqlQueryFormatter
const& formatter,
65 SqlServerType serverType,
66 std::string_view schema,
67 std::string
const& tableName,
68 std::vector<SqlSchema::Column>
const& columns,
69 std::vector<std::string>
const& primaryKeys,
77[[nodiscard]] LIGHTWEIGHT_API std::optional<std::pair<int64_t, int64_t>> QueryPkBounds(SqlStatement& stmt,
78 SqlSchema::Table
const& table,
79 std::string
const& pkColumn);
92LIGHTWEIGHT_API
void DeleteStaleSubChunks(WorkerChunkArchive& archive,
94 std::string
const& tableName,
105void ProcessChunkBackup(BackupContext& ctx, SqlConnection& conn, detail::Chunk
const& chunk, WorkerChunkArchive& archive);
113void ChunkWorker(ThreadSafeQueue<detail::Chunk>& chunkQueue,
116 WorkerChunkArchive& archive);