fix: Prevent Oracle blob throwing exceptions during column validation #1005
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 in this PR:
BinaryLength
expression which is used in the same way we useStringLength
to support min/max/sum aggregationsBinaryLength
when a user explicitly asks for a binary column to be validatedBinaryLength
when count validating a binary column if either the source or target system are OracleIn most engines
COUNT(binary_column)
is fine but in Oracle it throws an exception if the binary column is of type BLOB. It does work fine for RAW though which is also binary. This makes detection tricky. I can't see a way to know the original Oracle type inconfig_manager.py
so I decided we would need to useCOUNT(LENGTH(binary_column))
for both BLOB and RAW columns.This PR does not fix an exception in row validation for BLOB/RAW columns, that is covered by #773.
This PR does not add an integration test for BLOB, that will be covered by #899.