Skip to content

Conversation

@m-abulazm
Copy link
Contributor

Changes

What does this PR do?

Remove redundant reconcile config

Resolves #518

Functionality

  • added relevant user documentation
  • added new CLI command
  • modified existing command: databricks labs lakebridge ...
  • ... +add your own

Tests

  • manually tested
  • added unit tests
  • added integration tests

@m-abulazm m-abulazm self-assigned this Nov 17, 2025
@m-abulazm m-abulazm requested a review from a team as a code owner November 17, 2025 15:30
@m-abulazm m-abulazm added documentation Improvements or additions to documentation feat/recon making sure that remorphed query produces the same results as original labels Nov 17, 2025
@codecov
Copy link

codecov bot commented Nov 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.01%. Comparing base (eebf284) to head (53d37ab).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2150      +/-   ##
==========================================
- Coverage   65.24%   65.01%   -0.24%     
==========================================
  Files         100      100              
  Lines        8506     8464      -42     
  Branches      876      876              
==========================================
- Hits         5550     5503      -47     
- Misses       2769     2773       +4     
- Partials      187      188       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

github-actions bot commented Nov 17, 2025

✅ 51/51 passed, 10 flaky, 3m26s total

Flaky tests:

  • 🤪 test_validate_non_empty_tables (19ms)
  • 🤪 test_validate_mixed_checks (169ms)
  • 🤪 test_validate_invalid_schema_path (0s)
  • 🤪 test_validate_successful_schema_check (289ms)
  • 🤪 test_validate_invalid_schema_check (1ms)
  • 🤪 test_transpiles_informatica_to_sparksql (20.511s)
  • 🤪 test_transpile_teradata_sql (24.356s)
  • 🤪 test_transpiles_informatica_to_sparksql_non_interactive[True] (3.827s)
  • 🤪 test_transpile_teradata_sql_non_interactive[False] (5.474s)
  • 🤪 test_transpile_teradata_sql_non_interactive[True] (5.509s)

Running from acceptance #3072

@m-abulazm m-abulazm changed the title remove redundant config params remove redundant reconcile config params Nov 17, 2025
@m-abulazm m-abulazm enabled auto-merge November 17, 2025 19:53
Copy link
Collaborator

@gueniai gueniai left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@asnare asnare left a comment

Choose a reason for hiding this comment

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

We're modifying a versioned configuration file that we store in the user's workspace, so we really need to deal with compatibility and ensure there is test coverage for compatibility.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure what the changes in here are, this looks like static documentation setup rather than content-related?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is reconcile notebook exported as html from databricks workspace. the change in the notebook is deleting the removed config

Comment on lines -215 to -219
source_schema: str
target_catalog: str
target_schema: str
tables: list[Table]
source_catalog: str | None = None
Copy link
Contributor

Choose a reason for hiding this comment

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

If we're changing the schema of something we store in the user's workspace, I think we need:

  • To bump the version number.
  • Tests for the migration/loading path.

Even if loading ignores (now unknown) fields, an older version of the code will choke if it tries to load an instance persisted with this new schema.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

since this is a backwards compatible change, I didn't bump the version. So I added a test for testing that.

, an older version of the code will choke if it tries to load an instance persisted with this new schema.

And I am not aware of any forward-compatibility support in blueprint. or did I misunderstood something?

Copy link
Contributor

Choose a reason for hiding this comment

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

Here's the issue:

an older version of the code will choke if it tries to load an instance persisted with this new schema.

The scenario is:

  1. Someone runs with this version of the code.
  2. The file is created.
  3. For whatever reason (downgrade, cut'n'paste to another team-member, different environment), someone runs an older version of the code.

This leads to:

  • If the version is not bumped: the older version will choke because it expects fields that are missing.
  • If the version is bumped: the older version will detect that it can't be loaded and raise an IllegalState error with something like "expected version 1, got 2".

Both are errors, but the second one is controlled and expected, and also much easier to diagnose.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

got it. just pushed version 2

Comment on lines -272 to -273
job_id: str | None = None
tables: ReconcileTablesConfig | None = None
Copy link
Contributor

Choose a reason for hiding this comment

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

Also here, regarding version/schema change.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we can bump the version but I would not (here at least).

  • this was never set in the old code and has no impact on the existing installations
  • Implement databricks creds manager #2123 bumps the version so no need to do it wice
  • these are optional values so the older code will continue working

Copy link
Collaborator

@sundarshankar89 sundarshankar89 left a comment

Choose a reason for hiding this comment

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

LGTM

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

Labels

documentation Improvements or additions to documentation feat/recon making sure that remorphed query produces the same results as original

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Enhancement of interface for experimental function for reconcile

5 participants