Do not truncate T-SQL/Synapse Hash Concatenation String#2275
Draft
Do not truncate T-SQL/Synapse Hash Concatenation String#2275
Conversation
|
❌ 122/130 passed, 8 failed, 5 skipped, 9m51s total ❌ test_installs_and_runs_local_bladebridge: AssertionError: assert None == 'select * from employees' (20.083s)❌ test_installs_and_runs_pypi_bladebridge: AssertionError: assert None == 'select * from employees' (29.057s)❌ test_transpiles_informatica_to_sparksql_non_interactive[True]: AssertionError: assert [{'total_files_processed': 1, 'total_queries_processed': 1, 'analysis_error_count': 0, 'parsing_error_count': 1, 'validation_error_count': 0, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw4/test_transpiles_informatica_to0/errors.log'}] == [{'total_files_processed': 1, 'total_queries_processed': 1, 'analysis_error_count': 0, 'parsing_error_count': 0, 'validation_error_count': 0, 'generation_error_count': 0, 'error_log_file': None}] (16.758s)❌ test_transpiles_informatica_to_sparksql_non_interactive[False]: AssertionError: assert [{'total_files_processed': 1, 'total_queries_processed': 1, 'analysis_error_count': 0, 'parsing_error_count': 1, 'validation_error_count': 0, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw3/test_transpiles_informatica_to0/errors.log'}] == [{'total_files_processed': 1, 'total_queries_processed': 1, 'analysis_error_count': 0, 'parsing_error_count': 0, 'validation_error_count': 0, 'generation_error_count': 0, 'error_log_file': None}] (17.113s)❌ test_transpiles_informatica_to_sparksql: AssertionError: assert [{'total_files_processed': 1, 'total_queries_processed': 1, 'analysis_error_count': 0, 'parsing_error_count': 1, 'validation_error_count': 0, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw2/test_transpiles_informatica_to0/errors.log'}] == [{'total_files_processed': 1, 'total_queries_processed': 1, 'analysis_error_count': 0, 'parsing_error_count': 0, 'validation_error_count': 0, 'generation_error_count': 0, 'error_log_file': None}] (18.025s)❌ test_transpile_teradata_sql_non_interactive[False]: AssertionError: assert [{'total_files_processed': 2, 'total_queries_processed': 2, 'analysis_error_count': 0, 'parsing_error_count': 2, 'validation_error_count': 2, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw4/test_transpile_teradata_sql_no0/errors.log'}] == [{'total_files_processed': 2, 'total_queries_processed': 2, 'analysis_error_count': 0, 'parsing_error_count': 0, 'validation_error_count': 1, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw4/test_transpile_teradata_sql_no0/errors.log'}] (5.764s)❌ test_transpile_teradata_sql: AssertionError: assert [{'total_files_processed': 2, 'total_queries_processed': 2, 'analysis_error_count': 0, 'parsing_error_count': 2, 'validation_error_count': 2, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw3/test_transpile_teradata_sql0/errors.log'}] == [{'total_files_processed': 2, 'total_queries_processed': 2, 'analysis_error_count': 0, 'parsing_error_count': 0, 'validation_error_count': 1, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw3/test_transpile_teradata_sql0/errors.log'}] (6.532s)❌ test_transpile_teradata_sql_non_interactive[True]: AssertionError: assert [{'total_files_processed': 2, 'total_queries_processed': 2, 'analysis_error_count': 0, 'parsing_error_count': 2, 'validation_error_count': 2, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw2/test_transpile_teradata_sql_no0/errors.log'}] == [{'total_files_processed': 2, 'total_queries_processed': 2, 'analysis_error_count': 0, 'parsing_error_count': 0, 'validation_error_count': 1, 'generation_error_count': 0, 'error_log_file': '/tmp/pytest-of-runner/pytest-0/popen-gw2/test_transpile_teradata_sql_no0/errors.log'}] (6.731s)Running from acceptance #3661 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2275 +/- ##
==========================================
- Coverage 64.41% 64.39% -0.03%
==========================================
Files 99 99
Lines 8808 8808
Branches 914 914
==========================================
- Hits 5674 5672 -2
- Misses 2959 2960 +1
- Partials 175 176 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
70d7e71 to
341ee72
Compare
This was referenced Feb 13, 2026
github-merge-queue bot
pushed a commit
that referenced
this pull request
Feb 16, 2026
<!-- REMOVE IRRELEVANT COMMENTS BEFORE CREATING A PULL REQUEST --> ## Changes <!-- Summary of your changes that are easy to understand. Add screenshots when necessary, they're helpful to illustrate the before and after state --> ### What does this PR do? create a dedicated cluster for the e2e test ### Relevant implementation details use pytester ### Caveats/things to watch out for when reviewing: * this streamlines runs instead of being flaky. there is still room for improvement * this will be evaluated in a following PR: will add a new e2e test for sql server and derive following steps based on how it performs ### Linked issues <!-- DOC: Link issue with a keyword: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved. See https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword --> Unblocks #2275 ### Functionality - [ ] added relevant user documentation - [ ] added new CLI command - [ ] modified existing command: `databricks labs lakebridge ...` - [ ] ... +add your own ### Tests <!-- How is this tested? Please see the checklist below and also describe any other relevant tests --> - [ ] manually tested - [ ] added unit tests - [x] added integration tests --------- Co-authored-by: SundarShankar89 <72757199+sundarshankar89@users.noreply.github.com> Co-authored-by: sundarshankar89 <sundar.shankar@databricks.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
What does this PR do?
Update hash generation to avoid VARCHAR(256) truncation in T‑SQL/Synapse reconciliation queries so that hashes are computed over the full concatenated string, matching Databricks behavior and preventing false mismatches.
Caveats/things to watch out for when reviewing:
on older sql server versions, we might still have issues with concatenated strings longer than MAX i.e. 8000 chars
Linked issues
Resolves #2194