fix(destination-motherduck): properly leverage source_defined_primary_key when defined (CDK bump)#62133
Conversation
…y fix - Update airbyte-cdk dependency to use dev branch devin/1751064114-fix-primary-key-fallback - This branch contains the fix for primary key fallback logic in CatalogProvider - Allows end-to-end testing of the primary key fix with MotherDuck destination - References CDK PR: airbytehq/airbyte-python-cdk#627 Co-Authored-By: AJ Steers <aj@airbyte.io>
|
Original prompt from AJ Steers: |
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
👋 Greetings, Contributor!Here are some helpful tips and reminders for your convenience. Helpful Resources
PR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
|
|
|
/bump-version
|
There was a problem hiding this comment.
Pull Request Overview
This PR updates the MotherDuck destination to use a development branch of the Airbyte Python CDK that contains a fix for primary key handling, and bumps the version numbers accordingly.
- Dependency update: points airbyte-cdk to the "devin/1751064114-fix-primary-key-fallback" branch.
- Version bump: updates version in pyproject.toml and metadata.yaml from 0.1.19 to 0.1.20.
- Dev dependency added: includes poethepoet for managing CDK reference tasks.
Reviewed Changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| docs/integrations/destinations/motherduck.md | Adds a new version entry to the changelog. |
| airbyte-integrations/connectors/destination-motherduck/pyproject.toml | Updates version, changes airbyte-cdk dependency to a dev branch, adds poethepoet. |
| airbyte-integrations/connectors/destination-motherduck/metadata.yaml | Updates dockerImageTag version to match the new version. |
|
/build-connector-images
|
source_defined_primary_key when defined (CDK bump)
This comment was marked as outdated.
This comment was marked as outdated.
|
/poe connector destination-motherduck lock
🤖 Auto-commit successful: 64c60f3
|
|
/poe destination motherduck use-cdk-latest
🤖 Auto-commit successful: e5c57ca
|
|
/poe destination motherduck lock
🤖 Auto-commit successful: 856494f
|
Related:
source_defined_primary_keywhen defined (CDK bump) #62133 (this pr)source_defined_primary_keyin CatalogProvider airbyte-python-cdk#627Point MotherDuck destination to CDK dev branch with primary key fix
Summary
This PR updates the MotherDuck destination to use a development branch of the Airbyte Python CDK that contains a fix for primary key handling in SQL destinations. The original issue was that the
CatalogProvider.get_primary_keys()method was ignoring source-defined primary keys when configured primary keys were empty/None, affecting all SQL destinations including MotherDuck.Dependencies: This PR depends on CDK PR #627 which implements the actual fix.
Changes Made:
pyproject.tomlto pointairbyte-cdkdependency to dev branchdevin/1751064114-fix-primary-key-fallbackpoethepoetas dev dependency (required for the poe task used to update CDK reference)poetry.lockwith new dependency resolutionReview & Testing Checklist for Human
primary_keybut non-emptysource_defined_primary_keyto verify fallback behaviorRecommended Test Plan
Diagram
graph TD A[destination-motherduck/pyproject.toml]:::major-edit B[airbyte-cdk dependency]:::context C[CDK CatalogProvider.get_primary_keys]:::context D[CDK PR #627]:::context E[MotherDuck SQL Operations]:::context F[poetry.lock]:::major-edit A --> B B --> C C --> D A --> F B --> E C --> E subgraph Legend L1[Major Edit]:::major-edit L2[Minor Edit]:::minor-edit L3[Context/No Edit]:::context end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFFNotes
Link to Devin run: https://app.devin.ai/sessions/c79bdd64852f4d7ebf155898492407d1
Requested by: Aaron ("AJ") Steers (@aaronsteers)