feat(bigquery): select only those columns that were configured via table mappings - #4740
feat(bigquery): select only those columns that were configured via table mappings#4740dtunikov wants to merge 3 commits into
Conversation
|
Code review — found 1 issue (checked for bugs and CLAUDE.md compliance):
peerdb/flow/connectors/bigquery/cdc.go Lines 397 to 399 in 856f861 BigQuery's unrecognized-name errors frequently carry a suggestion when a similarly-named column is in scope, e.g. Suggested fix — stop the capture at the suggestion delimiter: var bqUnrecognizedNameRe = regexp.MustCompile(`Unrecognized name: ([^;\s]+)`)and add a regression case to Also verified but not flagged: the |
Code reviewReviewed for bugs and CLAUDE.md compliance. Two issues found, both in the new missing-column handling: 1. Regex misses BigQuery's "Did you mean" error variant, defeating the missing-column recovery (bug)
When a similarly-named column exists in scope, BigQuery emits the suggestion form of this error: Bounding the capture at var bqUnrecognizedNameRe = regexp.MustCompile(`Unrecognized name: ([^\s;]+)`)Worth also adding a 2. New dynamic setting targeted at the wrong connector, hiding it in ClickHouse-only deployments (bug, low severity)
Fix: TargetForSetting: protos.DynconfTarget_CLICKHOUSE,No CLAUDE.md/REVIEW.md violations found (no new logging of PII/secrets; no dependency bumps). |
c992a55 to
54a165f
Compare
🔄 Flaky Test DetectedAnalysis: The lone failure, TestCockroachDBSuite/Test_CDC_Exactly_Once_Across_Batches, is a timing-sensitive CockroachDB changefeed test unrelated to this BigQuery-only PR — it passed on the other two matrix legs, and the connector's own code documents that its force-emit paths (grace window / batch deadline without a covering resolved timestamp) can emit past the checkpoint and replay records in the next batch. ✅ Automatically retrying the workflow |
54a165f to
c35eb55
Compare
c35eb55 to
4642ca8
Compare
🔄 Flaky Test DetectedAnalysis: TestPeerFlowE2ETestSuiteMySQL_CH/Test_Partition_Key_Empty hit the hardcoded 60s "UNEXPECTED STATUS TIMEOUT STATUS_SNAPSHOT" poll limit at 62.58s on one matrix job while passing on the other two for the same commit — a slow-snapshot timing flake (already acknowledged in-repo via the "stuck in snapshot somehow" skip), unrelated to this BigQuery-scoped PR. ✅ Automatically retrying the workflow |
propagate table mappings into PullTableRecords func
fix dynamic config target
4642ca8 to
a3bedfa
Compare
Select columns configured for the table explicitly instead of relying on
SELECT * EXCEPT a, b, c FROM ....Edge case - If a column was removed on the source, but wasn't removed in PeerDB:
This means that there could be gaps in the data for such column if it was removed and re-added later on the source (up to configured TTL)