diff --git a/ingestion/src/metadata/orm_profiler/orm/functions/median.py b/ingestion/src/metadata/orm_profiler/orm/functions/median.py index 4474d8d11c3..3dd2b3caa10 100644 --- a/ingestion/src/metadata/orm_profiler/orm/functions/median.py +++ b/ingestion/src/metadata/orm_profiler/orm/functions/median.py @@ -54,6 +54,13 @@ def _(elements, compiler, **kwargs): return "approx_percentile(%s, 0.5)" % col +@compiles(MedianFn, Dialects.MSSQL) +def _(elements, compiler, **kwargs): + """Median computation for MSSQL""" + col, _ = [compiler.process(element, **kwargs) for element in elements.clauses] + return "percentile_cont(0.5) WITHIN GROUP (ORDER BY %s ASC) OVER()" % col + + @compiles(MedianFn, Dialects.SQLite) def _(elements, compiler, **kwargs): col, table = [element for element in elements.clauses] diff --git a/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py b/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py index b6f64dbaebc..7ffea160756 100644 --- a/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py +++ b/ingestion/src/metadata/orm_profiler/orm/functions/modulo.py @@ -42,13 +42,7 @@ def validate_and_compile(element, compiler, **kw): @compiles(ModuloFn) def _(element, compiler, **kw): - - value, base = validate_and_compile(element, compiler, **kw) - return f"{value} % {base}" - - -@compiles(ModuloFn, Dialects.MSSQL) -def _(element, compiler, **kw): + """Generic modulo function""" value, base = validate_and_compile(element, compiler, **kw) return f"{value} %% {base}" @@ -62,7 +56,7 @@ def _(element, compiler, **kw): @compiles(ModuloFn, Dialects.Oracle) @compiles(ModuloFn, Dialects.Presto) def _(element, compiler, **kw): - + """Modulo function for specific dialect""" value, base = validate_and_compile(element, compiler, **kw) return f"MOD({value}, {base})" @@ -72,3 +66,10 @@ def _(element, compiler, **kw): """Handles modulo function for ClickHouse""" value, base = validate_and_compile(element, compiler, **kw) return f"modulo({value}, {base})" + + +@compiles(ModuloFn, Dialects.SQLite) +def _(element, compiler, **kw): + """SQLite modulo function""" + value, base = validate_and_compile(element, compiler, **kw) + return f"{value} % {base}"