Yuki Kakegawa
05/22/2026, 5:08 PMkapa.ai
05/22/2026, 5:08 PMDuplicate key item_id because the JDBC metadata introspection merges column and PK metadata incorrectly, effectively “double counting” the same column when building the JSON schema, even though the DB schema itself is clean. [MySQL duplicate key]
◦ For Postgres, there was an issue where the connector fetched primary keys without respecting the configured schema filter, leading to very heavy metadata queries across all schemas. This is about scope rather than misreading PKs, but it shows that PK discovery logic has had problems. [Postgres PK discovery]
• Source‑defined PKs being wrong or incomplete:
◦ Apple Search Ads reports had incorrect source‑defined PKs (date, campaignId) that didn’t match the real aggregation grain (also countryOrRegion), causing deduplication to drop valid rows. The “fix” in that PR was to remove PKs entirely, which also shows that PK handling can be imperfect. [Apple Search Ads PKs]
◦ Google Ads had a nullable field bidding_strategy.id included in the PK for some streams; this caused failures in destinations that require non‑null PKs, and the fix was to remove that field from the PK. [Google Ads nullable PK]
• Destination behavior around PK nullability / types:
◦ ClickHouse destination tried to alter a primary‑key column to Nullable(...) on a second incremental sync when deduplication was enabled, which ClickHouse rejects. This is more about type/nullability handling than misreading which columns are in the PK, but it shows PK handling can be brittle. [ClickHouse PK nullable]
◦ S3 Data Lake / Iceberg explicitly rewrites number‑type PKs as strings for identifier fields, which can surprise users but is documented behavior, not a misread. [S3 deduplication]
So:
• There is no statement in the docs that Airbyte normally “reads backing indexes” and automatically treats all indexed columns as PK columns.
• However, there are known bugs and misconfigurations where:
◦ PK discovery via JDBC metadata is incorrect or overly broad. [MySQL duplicate key]
◦ Source‑defined PKs in connectors don’t match the true uniqueness grain, leading to bad deduplication. [Apple Search Ads PKs]
If you’re seeing Airbyte treat an index‑only column as part of the PK, that would be consistent with these kinds of bugs, but the knowledge sources don’t explicitly document a general pattern of “misreading backing PK index and including extra columns” beyond the specific issues above. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Yuki Kakegawa
05/22/2026, 5:10 PMkapa.ai
05/22/2026, 5:10 PMsource-postgres with:
◦ The table DDL (including PK and indexes),
◦ The Airbyte‑discovered catalog for that stream (showing the two PK fields),
◦ Connector + platform versions.
With the information I have, I can’t offer a documented workaround (like “turn off index‑based PK detection”) for Postgres CDC; the sources simply don’t mention such a setting. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.