You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A hash comparison of rows from two tables between Oracle 19c and Postgres 15 failed with Data Validator 7.1
We have used the concat comparison to identify the root cause: a VARCHAR2(140) column called "rmtinf" contains ASCII characters followed by a single trailing newline both in Oracle and Postgres.
The concat value created by Data Validation for Oracle contains the trailing newline but the concat value for Postgres does not.
As it appears we have inconsistencies in which characters are stripped I first need to survey all supported engines to see what characters are removed.
We should also discuss why we have rtrim in there at all.
So a lot of our inconsistencies might be due to the version of Ibis we support.
I've surveyed our current support:
System Characters removed List controllable
----------- ------------------ ---------------------------
BigQuery All whitespace Yes
DB2 Space Yes, but docs are confusing
Hive Space No
Impala Space Yes
MySQL Space No
Oracle Space Yes
PostgreSQL All whitespace Yes (default is space only)
Snowflake Space Yes
Spanner All whitespace Yes
SQL Server Space Yes
Teradata All whitespace Yes (default is space only)
There are maybe two problems here:
Our support should be consistent which probably means all RStrip expressions should attempt to remove all whitespace. Except for Hive and MySQL which might be uncontrollable.
Is it correct to trim white space before hashing rows? When migrating data, trailing white space is just the sort of awkward data that might be lost/problematic. Perhaps RStrip should only be included under an option and not by default.
A hash comparison of rows from two tables between Oracle 19c and Postgres 15 failed with Data Validator 7.1
We have used the concat comparison to identify the root cause: a VARCHAR2(140) column called "rmtinf" contains ASCII characters followed by a single trailing newline both in Oracle and Postgres.
The concat value created by Data Validation for Oracle contains the trailing newline but the concat value for Postgres does not.
Oracle: rtrim(t2.ifnull__cast__rmtinf)
Postgres: rtrim(t2.ifnull__cast__rmtinf, :rtrim_1)
err.txt
out.txt
validate-concat-rmtinf.txt
The text was updated successfully, but these errors were encountered: