from tests.dialects.test_dialect import Validator class TestDoris(Validator): dialect = "doris" def test_doris(self): self.validate_all( "SELECT TO_DATE('2020-02-02 00:00:00')", write={ "doris": "SELECT TO_DATE('2020-02-02 00:00:00')", "oracle": "SELECT CAST('2020-02-02 00:00:00' AS DATE)", }, ) self.validate_all( "SELECT MAX_BY(a, b), MIN_BY(c, d)", read={"clickhouse": "SELECT argMax(a, b), argMin(c, d)"}, ) self.validate_all( "SELECT ARRAY_SUM(x -> x * x, ARRAY(2, 3))", read={ "clickhouse": "SELECT arraySum(x -> x*x, [2, 3])", }, write={ "clickhouse": "SELECT arraySum(x -> x * x, [2, 3])", "doris": "SELECT ARRAY_SUM(x -> x * x, ARRAY(2, 3))", }, ) self.validate_all( "MONTHS_ADD(d, n)", read={ "oracle": "ADD_MONTHS(d, n)", }, write={ "doris": "MONTHS_ADD(d, n)", "oracle": "ADD_MONTHS(d, n)", }, ) def test_identity(self): self.validate_identity("COALECSE(a, b, c, d)") self.validate_identity("SELECT CAST(`a`.`b` AS INT) FROM foo") self.validate_identity("SELECT APPROX_COUNT_DISTINCT(a) FROM x") def test_time(self): self.validate_identity("TIMESTAMP('2022-01-01')") def test_regex(self): self.validate_all( "SELECT REGEXP_LIKE(abc, '%foo%')", write={ "doris": "SELECT REGEXP(abc, '%foo%')", }, )