Skip to content
This repository was archived by the owner on May 17, 2024. It is now read-only.

Commit 835fba8

Browse files
committed
fix oracle and bigquery checksums
1 parent e68def8 commit 835fba8

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

data_diff/databases/bigquery.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
apply_query,
3838
QueryResult,
3939
CHECKSUM_OFFSET,
40-
CHECKSUM_HEXDIGITS
40+
CHECKSUM_HEXDIGITS, MD5_HEXDIGITS
4141
)
4242
from data_diff.databases.base import TIMESTAMP_PRECISION_POS, ThreadLocalInterpreter, Mixin_RandomSample
4343

@@ -64,7 +64,7 @@ def import_bigquery_service_account_impersonation():
6464
@attrs.define(frozen=False)
6565
class Mixin_MD5(AbstractMixin_MD5):
6666
def md5_as_int(self, s: str) -> str:
67-
return f"cast(cast( ('0x' || substr(TO_HEX(md5({s})), {CHECKSUM_HEXDIGITS})) as int64) as numeric) - {CHECKSUM_OFFSET}"
67+
return f"cast(cast( ('0x' || substr(TO_HEX(md5({s})), {1+MD5_HEXDIGITS-CHECKSUM_HEXDIGITS})) as int64) as numeric) - {CHECKSUM_OFFSET}"
6868

6969

7070
@attrs.define(frozen=False)

data_diff/databases/oracle.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
QueryError,
2929
Mixin_RandomSample,
3030
CHECKSUM_OFFSET,
31-
CHECKSUM_HEXDIGITS
31+
CHECKSUM_HEXDIGITS, MD5_HEXDIGITS
3232
)
3333
from data_diff.databases.base import TIMESTAMP_PRECISION_POS
3434

@@ -47,7 +47,7 @@ class Mixin_MD5(AbstractMixin_MD5):
4747
def md5_as_int(self, s: str) -> str:
4848
# standard_hash is faster than DBMS_CRYPTO.Hash
4949
# TODO: Find a way to use UTL_RAW.CAST_TO_BINARY_INTEGER ?
50-
return f"to_number(substr(standard_hash({s}, 'MD5'), {CHECKSUM_HEXDIGITS}), 'xxxxxxxxxxxxxxx') - {CHECKSUM_OFFSET}"
50+
return f"to_number(substr(standard_hash({s}, 'MD5'), {1+MD5_HEXDIGITS-CHECKSUM_HEXDIGITS}), 'xxxxxxxxxxxxxxx') - {CHECKSUM_OFFSET}"
5151

5252

5353
@attrs.define(frozen=False)

0 commit comments

Comments
 (0)