From 092bb9be600938feff01089ffd36ff5becb67f4c Mon Sep 17 00:00:00 2001 From: Konstantin Lebedev Date: Sun, 14 Jan 2024 22:06:20 +0300 Subject: [PATCH] Fix Date32 start interval #409 --- clickhouse_driver/columns/datecolumn.py | 2 +- tests/columns/test_date.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/clickhouse_driver/columns/datecolumn.py b/clickhouse_driver/columns/datecolumn.py index 7eac9c12..d258a89d 100644 --- a/clickhouse_driver/columns/datecolumn.py +++ b/clickhouse_driver/columns/datecolumn.py @@ -6,7 +6,7 @@ epoch_start = date(1970, 1, 1) epoch_end = date(2149, 6, 6) -epoch_start_date32 = date(1925, 1, 1) +epoch_start_date32 = date(1900, 1, 1) epoch_end_date32 = date(2283, 11, 11) diff --git a/tests/columns/test_date.py b/tests/columns/test_date.py index 11a8cfc6..0b8c9c03 100644 --- a/tests/columns/test_date.py +++ b/tests/columns/test_date.py @@ -5,6 +5,7 @@ from freezegun import freeze_time from tests.testcase import BaseTestCase +from tests.util import require_server_version class DateTestCase(BaseTestCase): @@ -90,6 +91,19 @@ def test_wrong_date_insert(self): inserted = self.emit_cli(query) self.assertEqual(inserted, '1970-01-01\n1970-01-01\n1970-01-01\n') + @require_server_version(22, 8) + def test_boundaries_1900(self): + with self.create_table('a Date32'): + data = [(date(1900, 1, 1),)] + self.client.execute('INSERT INTO test (a) VALUES', data) + + query = 'SELECT * FROM test' + inserted = self.emit_cli(query) + self.assertEqual(inserted, '1900-01-01\n') + + inserted = self.client.execute(query) + self.assertEqual(inserted, data) + def test_boundaries(self): with self.create_table('a Date32'): data = [(date(1925, 1, 1), ), (date(2283, 11, 11), )]