1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//! Configuration types for the [`crate::TimestampCdcConsumer`].
//!
//! [`TimestampCdcConfig`] drives the entire polling loop: which tables to watch,
//! how many rows to fetch per cycle, and how (if at all) to detect deleted rows.
//! Each table is described by a [`TimestampTableConfig`] that names the
//! timestamp and primary-key columns used for watermark ordering.
/// Strategy for detecting deleted rows in timestamp-based polling.
///
/// Hard deletes — rows that simply disappear from the source — are invisible
/// to a `WHERE updated_at > watermark` query. This enum lets callers opt into
/// one of two detection strategies, or disable detection entirely.
/// Top-level configuration for [`crate::TimestampCdcConsumer`].
///
/// Describes the set of tables to replicate and the parameters that apply to
/// every table uniformly (batch size, delete detection).
/// Per-table configuration for timestamp-based CDC polling.
///
/// Identifies the columns that the consumer reads to build the watermark
/// predicate and to classify events as inserts vs updates.