From 484901f4832b64845931f728db3e367f7f7c562c Mon Sep 17 00:00:00 2001 From: Erich <134291879+ege-st@users.noreply.github.com> Date: Tue, 30 Jan 2024 23:49:55 -0500 Subject: [PATCH] fix(pinot): typo in the name for epoch_ms_to_dttm (#26906) --- superset/db_engine_specs/pinot.py | 2 +- .../db_engine_specs/pinot_tests.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/superset/db_engine_specs/pinot.py b/superset/db_engine_specs/pinot.py index 2cafd5ecb..0f53cfa77 100644 --- a/superset/db_engine_specs/pinot.py +++ b/superset/db_engine_specs/pinot.py @@ -62,7 +62,7 @@ class PinotEngineSpec(BaseEngineSpec): ) @classmethod - def epoch_ms_to_dttm_(cls) -> str: + def epoch_ms_to_dttm(cls) -> str: return ( "DATETIMECONVERT({col}, '1:MILLISECONDS:EPOCH', " + "'1:MILLISECONDS:EPOCH', '1:MILLISECONDS')" diff --git a/tests/integration_tests/db_engine_specs/pinot_tests.py b/tests/integration_tests/db_engine_specs/pinot_tests.py index 3998d2094..c8deef6fc 100755 --- a/tests/integration_tests/db_engine_specs/pinot_tests.py +++ b/tests/integration_tests/db_engine_specs/pinot_tests.py @@ -84,6 +84,20 @@ class TestPinotDbEngineSpec(TestDbEngineSpec): expected, ) + def test_pinot_time_expression_millisec_one_1m_grain(self): + col = column("tstamp") + expr = PinotEngineSpec.get_timestamp_expr(col, "epoch_ms", "P1M") + result = str(expr.compile()) + expected = ( + "CAST(DATE_TRUNC('month', CAST(" + + "DATETIMECONVERT(tstamp, '1:MILLISECONDS:EPOCH', " + + "'1:MILLISECONDS:EPOCH', '1:MILLISECONDS') AS TIMESTAMP)) AS TIMESTAMP)" + ) + self.assertEqual( + result, + expected, + ) + def test_invalid_get_time_expression_arguments(self): with self.assertRaises(NotImplementedError): PinotEngineSpec.get_timestamp_expr(column("tstamp"), None, "P0.25Y")