Skip to content

Conversation

@edgao
Copy link
Contributor

@edgao edgao commented Oct 31, 2025

What

branched from #69090

How

There are a few major hacks here:

  • getColumnsFromStream actually parses out the "NOT NULL", because SnowflakeColumnUtils.columnsAndTypes returns strings like NUMBER(38,0) NOT NULL. Probably would be nicer to have columnsAndTypes return the new ColumnType struct directly, instead of destination-snowflake's bespoke ColumnAndType - but that would be a lot of code churn right now
  • I deleted the isPrimaryKey field from ColumnDefinition, b/c it wasn't actually used anywhere. But now ColumnDefinition is identical to ColumnAndType (which, again, we probably should delete entirely)...
  • SqlGenerator.alterTable manually filters out nullable -> non-nullable changes, b/c destination-snowflake actually tries to respect field nullability, but this alteration feels likely to cause problems. I could be convinced to just do the blind alter though.

TODO unit tests are probably completely broken

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌

@github-actions
Copy link
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Helpful Resources

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • /format-fix - Fixes most formatting issues.
  • /bump-version - Bumps connector versions.
    • You can specify a custom changelog by passing changelog. Example: /bump-version changelog="My cool update"
    • Leaving the changelog arg blank will auto-populate the changelog from the PR title.
  • /run-cat-tests - Runs legacy CAT tests (Connector Acceptance Tests)
  • /build-connector-images - Builds and publishes a pre-release docker image for the modified connector(s).
  • JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
    • /bump-bulk-cdk-version type=patch changelog='foo' - Bump the Bulk CDK's version. type can be major/minor/patch.
  • Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.

📝 Edit this welcome message.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 31, 2025

destination-snowflake Connector Test Results

 27 files   27 suites   21m 14s ⏱️
335 tests 299 ✅ 36 💤 0 ❌
339 runs  303 ✅ 36 💤 0 ❌

Results for commit 6584f51.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 31, 2025

Note

Detected that there are differences in the Gradle dependencies.

@edgao edgao force-pushed the edgao/schema_evolution_test/cdk branch from e8a9d6a to 8f8d2b0 Compare November 4, 2025 00:12
@edgao edgao force-pushed the edgao/schema_evolution_test/snowflake branch from 28cf33f to 2969c0d Compare November 4, 2025 00:12
@edgao edgao marked this pull request as ready for review November 4, 2025 18:07
@edgao edgao requested a review from a team as a code owner November 4, 2025 18:07
@@ -1,3 +1,3 @@
testExecutionConcurrency=-1
cdkVersion=0.1.62
cdkVersion=local
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I assume you don't want to commit this change

)
}

override fun diff(actualSchemaInfo: Unit, expectedSchemaInfo: Unit) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are the parameters marked as Unit? Is this to get around some generic issue with Kotlin and what we have type-wise in Snowflake?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sort of. it's more of a hack to support certain destinations that need to pass around more info than just column+type - #69090 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants