Berke Eruz
07/22/2026, 9:17 AMtransaction_id and category.
Airbyte detected the schema change and propagated the new columns to Redshift. However, after sync, we see that category is populated in Postgres but still null for 81 rows in the Redshift final table:
final_rows = 78,607
final_category_nulls = 81
final_category_not_nulls = 78,526
For transaction_id, both Postgres and Redshift are null, so that column does not seem to be the issue.
We checked the Airbyte raw table in Redshift. For the 81 problematic IDs, the latest raw record still has raw_category null, and the latest _airbyte_extracted_at is 2026-07-10, meaning these rows were not re-extracted after the schema change.
At the same time, we can see that many other records in the raw table were re-extracted on 2026-07-22 and now have raw_category = REGULAR, while their older raw versions had null category.
The connection logs show CDC is disabled with using CDC: false, and the Postgres source query appears to rely on an incremental state condition using xmin, for example:
WHERE xmin::text::bigint >= ...
So our understanding is that Airbyte propagated the schema correctly, but because the stream is incremental and non-CDC, it only re-read rows matching the current incremental state. As a result, some historical rows were not re-extracted after the new column was added, leaving category null in Redshift even though it is populated in Postgres.
Can you confirm whether this is expected behavior for Incremental + Deduped Postgres → Redshift syncs when new columns are added? Also, is the recommended solution to run a stream-level refresh/reset for stream, or is there another Airbyte-supported way to backfill newly added columns for historical rows without refreshing the whole stream?kapa.ai
07/22/2026, 9:17 AMxmin::text::bigint >= <last_sync_value>. Rows that were not modified after the new columns were added will not be re-extracted, so their category value remains null in Redshift even if it's populated in Postgres. [Xmin Limitations] This is a fundamental limitation of cursor/xmin-based incremental sync — it cannot retroactively backfill historical rows that weren't touched after the schema change. [Incremental Append Limitations] The Postgres connector documentation explicitly states: > "Schema changes are not supported automatically for CDC sources. Reset and resync data if you make a schema change." And more broadly, the incremental sync docs note: > "The current behavior of Incremental is not able to handle source schema changes yet... It is recommended to trigger a Full refresh - Overwrite to correctly replicate the data to the destination with the new schema changes." [Incremental Append Limitations] Recommended Solution: Stream-Level Refresh The recommended Airbyte-supported approach is to run a stream-level refresh (not a full connection reset), which limits the impact to only the affected stream: 1. Navigate to the Status page of your connection in the Airbyte UI. 2. Locate the affected stream, click the three dots (⋮) next to it. 3. Choose Refresh Stream. This will re-sync all historical data for that stream, populating category for the 81 rows, without touching other streams in the connection. [CDC Adding New Columns] Airbyte's Automatic Backfill Option Airbyte also has a "Backfill new or renamed columns" connection setting that, when enabled alongside Propagate field changes only or Propagate all field and stream changes, automatically triggers a full stream re-sync when a new column is detected. However, this only works when Airbyte detects the schema change as part of a sync — it does not apply retroactively if the schema was already propagated manually. [Backfill Setting] Summary 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help., with interactive elements