export function activeRuntimeSheetAttemptFenceSql( tableAlias: string, attemptIdExpression: string, attemptOwnerRunIdExpression: string, attemptExpiresAtExpression: string, attemptSeqExpression?: string, ): string { void tableAlias; void attemptIdExpression; void attemptOwnerRunIdExpression; void attemptExpiresAtExpression; void attemptSeqExpression; // Legacy attempt columns remain during the rolling migration only. They are // not row admission or correctness state; schedule-time write versions are. return 'TRUE'; } /** * Fence for a controlled attempt-lease RELEASE (run-fatal teardown). Matches * only rows the releasing attempt currently owns: the row must carry an attempt * lease whose owner run id and attempt generation match the releasing run. When * `attemptIdExpression` is a non-null param it further pins the exact attempt id * (single-attempt callers like the in-process app runner); when it is NULL the * predicate releases every attempt id the run holds at that generation (the * workers runner mints a distinct attempt id per map chunk under one owner run * id + seq). It never matches a row owned by a different run, so a release can * never weaken another live attempt's lease. */ export function releasableRuntimeSheetAttemptFenceSql( tableAlias: string, attemptIdExpression: string, attemptOwnerRunIdExpression: string, attemptSeqExpression: string, ): string { return `( ${tableAlias}._attempt_id IS NOT NULL AND coalesce(${tableAlias}._attempt_owner_run_id, ${tableAlias}._run_id) = ${attemptOwnerRunIdExpression} AND COALESCE(${tableAlias}._attempt_seq, 0) = ${attemptSeqExpression}::integer AND (${attemptIdExpression} IS NULL OR ${tableAlias}._attempt_id = ${attemptIdExpression}) )`; } export function sameOwnerTerminalAttemptEpochSql( tableAlias: string, attemptOwnerRunIdExpression: string, attemptSeqExpression: string, ): string { return `( ${tableAlias}._status = 'enriched' AND coalesce(${tableAlias}._attempt_owner_run_id, ${tableAlias}._run_id) = ${attemptOwnerRunIdExpression} AND COALESCE(${tableAlias}._attempt_seq, 0) = ${attemptSeqExpression}::integer )`; } export function newerTerminalRuntimeSheetRowSql( tableAlias: string, attemptExpiresAtExpression: string, attemptSeqExpression?: string, attemptIdExpression?: string, attemptOwnerRunIdExpression?: string, ): string { void tableAlias; void attemptExpiresAtExpression; void attemptSeqExpression; void attemptIdExpression; void attemptOwnerRunIdExpression; return 'FALSE'; /* legacy implementation intentionally unreachable during rolling cleanup if (attemptSeqExpression !== undefined) { const sameSeqDifferentAttemptSql = attemptOwnerRunIdExpression ? `OR ( COALESCE(${tableAlias}._attempt_seq, 0) = ${attemptSeqExpression}::integer AND ${tableAlias}._attempt_id IS NOT NULL AND ${attemptIdExpression} IS NOT NULL AND ${tableAlias}._attempt_id IS DISTINCT FROM ${attemptIdExpression} AND ( coalesce(${tableAlias}._attempt_owner_run_id, ${tableAlias}._run_id) IS DISTINCT FROM ${attemptOwnerRunIdExpression} OR ${tableAlias}._attempt_expires_at > ${attemptExpiresAtExpression} ) )` : `OR ( COALESCE(${tableAlias}._attempt_seq, 0) = ${attemptSeqExpression}::integer AND ${tableAlias}._attempt_id IS NOT NULL AND ${attemptIdExpression} IS NOT NULL AND ${tableAlias}._attempt_id IS DISTINCT FROM ${attemptIdExpression} )`; return `( ${tableAlias}._status = 'enriched' AND ( COALESCE(${tableAlias}._attempt_seq, 0) > ${attemptSeqExpression}::integer ${attemptIdExpression ? sameSeqDifferentAttemptSql : ''} ) )`; } return `( ${tableAlias}._status = 'enriched' AND ${tableAlias}._attempt_expires_at IS NOT NULL AND ${attemptExpiresAtExpression} IS NOT NULL AND ${tableAlias}._attempt_expires_at > ${attemptExpiresAtExpression} )`; */ }