@@ -88,6 +88,7 @@ pub struct SourceTrackingInfoForProcessing {
8888 pub processed_source_ordinal : Option < i64 > ,
8989 pub processed_source_fp : Option < Vec < u8 > > ,
9090 pub process_logic_fingerprint : Option < Vec < u8 > > ,
91+ pub process_lineage_fingerprint : Option < Vec < u8 > > ,
9192 pub max_process_ordinal : Option < i64 > ,
9293 pub process_ordinal : Option < i64 > ,
9394}
@@ -99,7 +100,7 @@ pub async fn read_source_tracking_info_for_processing(
99100 pool : & PgPool ,
100101) -> Result < Option < SourceTrackingInfoForProcessing > > {
101102 let query_str = format ! (
102- "SELECT memoization_info, processed_source_ordinal, {}, process_logic_fingerprint, max_process_ordinal, process_ordinal FROM {} WHERE source_id = $1 AND source_key = $2" ,
103+ "SELECT memoization_info, processed_source_ordinal, {}, process_logic_fingerprint, process_lineage_fingerprint, max_process_ordinal, process_ordinal FROM {} WHERE source_id = $1 AND source_key = $2" ,
103104 if db_setup. has_fast_fingerprint_column {
104105 "processed_source_fp"
105106 } else {
@@ -124,6 +125,7 @@ pub struct SourceTrackingInfoForPrecommit {
124125 pub processed_source_ordinal : Option < i64 > ,
125126 pub processed_source_fp : Option < Vec < u8 > > ,
126127 pub process_logic_fingerprint : Option < Vec < u8 > > ,
128+ pub process_lineage_fingerprint : Option < Vec < u8 > > ,
127129 pub process_ordinal : Option < i64 > ,
128130 pub target_keys : Option < sqlx:: types:: Json < TrackedTargetKeyForSource > > ,
129131}
@@ -135,7 +137,7 @@ pub async fn read_source_tracking_info_for_precommit(
135137 db_executor : impl sqlx:: Executor < ' _ , Database = sqlx:: Postgres > ,
136138) -> Result < Option < SourceTrackingInfoForPrecommit > > {
137139 let query_str = format ! (
138- "SELECT max_process_ordinal, staging_target_keys, processed_source_ordinal, {}, process_logic_fingerprint, process_ordinal, target_keys FROM {} WHERE source_id = $1 AND source_key = $2" ,
140+ "SELECT max_process_ordinal, staging_target_keys, processed_source_ordinal, {}, process_logic_fingerprint, process_lineage_fingerprint, process_ordinal, target_keys FROM {} WHERE source_id = $1 AND source_key = $2" ,
139141 if db_setup. has_fast_fingerprint_column {
140142 "processed_source_fp"
141143 } else {
@@ -240,6 +242,7 @@ pub async fn commit_source_tracking_info(
240242 processed_source_ordinal : Option < i64 > ,
241243 processed_source_fp : Option < Vec < u8 > > ,
242244 logic_fingerprint : & [ u8 ] ,
245+ lineage_fingerprint : & [ u8 ] ,
243246 process_ordinal : i64 ,
244247 process_time_micros : i64 ,
245248 target_keys : TrackedTargetKeyForSource ,
@@ -252,25 +255,25 @@ pub async fn commit_source_tracking_info(
252255 "INSERT INTO {} ( \
253256 source_id, source_key, \
254257 max_process_ordinal, staging_target_keys, \
255- processed_source_ordinal, process_logic_fingerprint, process_ordinal, process_time_micros, target_keys{}) \
256- VALUES ($1, $2, $6 + 1, $3, $4, $5, $6, $7, $8{})",
258+ processed_source_ordinal, process_logic_fingerprint, process_lineage_fingerprint, process_ordinal, process_time_micros, target_keys{}) \
259+ VALUES ($1, $2, $7 + 1, $3, $4, $5, $6, $7, $8, $9 {})",
257260 db_setup. table_name,
258261 if db_setup. has_fast_fingerprint_column {
259262 ", processed_source_fp"
260263 } else {
261264 ""
262265 } ,
263266 if db_setup. has_fast_fingerprint_column {
264- ", $9 "
267+ ", $10 "
265268 } else {
266269 ""
267270 } ,
268271 ) ,
269272 WriteAction :: Update => format ! (
270- "UPDATE {} SET staging_target_keys = $3, processed_source_ordinal = $4, process_logic_fingerprint = $5, process_ordinal = $6, process_time_micros = $7, target_keys = $8{} WHERE source_id = $1 AND source_key = $2" ,
273+ "UPDATE {} SET staging_target_keys = $3, processed_source_ordinal = $4, process_logic_fingerprint = $5, process_lineage_fingerprint = $6, process_ordinal = $7, process_time_micros = $8, target_keys = $9 {} WHERE source_id = $1 AND source_key = $2" ,
271274 db_setup. table_name,
272275 if db_setup. has_fast_fingerprint_column {
273- ", processed_source_fp = $9 "
276+ ", processed_source_fp = $10 "
274277 } else {
275278 ""
276279 } ,
@@ -282,12 +285,12 @@ pub async fn commit_source_tracking_info(
282285 . bind ( sqlx:: types:: Json ( staging_target_keys) ) // $3
283286 . bind ( processed_source_ordinal) // $4
284287 . bind ( logic_fingerprint) // $5
285- . bind ( process_ordinal ) // $6
286- . bind ( process_time_micros ) // $7
287- . bind ( sqlx :: types :: Json ( target_keys ) ) ; // $8
288-
288+ . bind ( lineage_fingerprint ) // $6
289+ . bind ( process_ordinal ) // $7
290+ . bind ( process_time_micros ) // $8
291+ . bind ( sqlx :: types :: Json ( target_keys ) ) ; // $9
289292 if db_setup. has_fast_fingerprint_column {
290- query = query. bind ( processed_source_fp) ; // $9
293+ query = query. bind ( processed_source_fp) ; // $10
291294 }
292295 query. execute ( db_executor) . await ?;
293296
@@ -317,7 +320,8 @@ pub struct TrackedSourceKeyMetadata {
317320 pub source_key : serde_json:: Value ,
318321 pub processed_source_ordinal : Option < i64 > ,
319322 pub processed_source_fp : Option < Vec < u8 > > ,
320- pub process_logic_fingerprint : Option < Vec < u8 > > ,
323+ // pub process_logic_fingerprint: Option<Vec<u8>>,
324+ pub process_lineage_fingerprint : Option < Vec < u8 > > ,
321325 pub max_process_ordinal : Option < i64 > ,
322326 pub process_ordinal : Option < i64 > ,
323327}
@@ -341,7 +345,7 @@ impl ListTrackedSourceKeyMetadataState {
341345 ) -> impl Stream < Item = Result < TrackedSourceKeyMetadata , sqlx:: Error > > + ' a {
342346 self . query_str = format ! (
343347 "SELECT \
344- source_key, processed_source_ordinal, {}, process_logic_fingerprint, max_process_ordinal, process_ordinal \
348+ source_key, processed_source_ordinal, {}, process_logic_fingerprint, process_lineage_fingerprint, max_process_ordinal, process_ordinal \
345349 FROM {} WHERE source_id = $1",
346350 if db_setup. has_fast_fingerprint_column {
347351 "processed_source_fp"
0 commit comments