From 2f29c5fe9355e50ee6b50c75896a5c21cc02494c Mon Sep 17 00:00:00 2001 From: Teddy Date: Wed, 29 Jun 2022 14:38:44 +0200 Subject: [PATCH] Fixes #5742 where profiler modulo has unescaped character (#5743) * Fixed athena modulo function * fixed modulo function for MySQL and escaped perc char in base modulo function * Removed compilation logic for MSSQL * fixed python formating * Added modulo and random logic for oracle * Fixed py format --- ingestion/src/metadata/orm_profiler/orm/functions/modulo.py | 3 +++ .../src/metadata/orm_profiler/orm/functions/random_num.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py b/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py index c4c212b568f..6f300f217ec 100644 --- a/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py +++ b/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py @@ -57,6 +57,9 @@ def _(element, compiler, **kw): @compiles(ModuloFn, Dialects.Redshift) @compiles(ModuloFn, Dialects.Snowflake) @compiles(ModuloFn, Dialects.Postgres) +@compiles(ModuloFn, Dialects.Athena) +@compiles(ModuloFn, Dialects.MySQL) +@compiles(ModuloFn, Dialects.Oracle) def _(element, compiler, **kw): value, base = validate_and_compile(element, compiler, **kw) diff --git a/ingestion/src/metadata/orm_profiler/orm/functions/random_num.py b/ingestion/src/metadata/orm_profiler/orm/functions/random_num.py index 450b15a4c8d..ccd988e2332 100644 --- a/ingestion/src/metadata/orm_profiler/orm/functions/random_num.py +++ b/ingestion/src/metadata/orm_profiler/orm/functions/random_num.py @@ -83,3 +83,9 @@ def _(*_, **__): def _(*_, **__): """Postgres random logic""" return "ABS((RANDOM() * 100)::INTEGER)" + + +@compiles(RandomNumFn, Dialects.Oracle) +def _(*_, **__): + """Oracle random logic""" + return "ABS(DBMS_RANDOM.VALUE) * 100"