Message-ID: From: "AFulgens (@AFulgens)" To: "pgjdbc/pgjdbc" Date: Tue, 10 Feb 2026 15:48:07 +0000 Subject: Re: [pgjdbc/pgjdbc] issue #3930: Revert semantic calendar changes introduced with #3837 In-Reply-To: References: List-Id: X-GitHub-Author-Login: AFulgens X-GitHub-Comment-Id: 3878748293 X-GitHub-Comment-Type: issue_comment X-GitHub-Edited-At: 2026-02-10T16:04:29Z X-GitHub-Issue: 3930 X-GitHub-Repo: pgjdbc/pgjdbc X-GitHub-Type: comment X-GitHub-Url: https://github.com/pgjdbc/pgjdbc/issues/3930#issuecomment-3878748293 Content-Type: text/plain; charset=utf-8 I provided the code I am using. I do not convert any string into a date when executing the query, I am effectively doing ``` resultSet.getDate(...).toString() resultSet.getString(...) ``` And these must not deliver different results, IMO. Cf. [PoLA](https://en.wikipedia.org/wiki/Principle_of_least_astonishment) Can we at least agree that if I execute the following with `psql`: ``` insert into public.testtable(this_is_a_date) values ('1000-01-01'); ``` Then I can expect to get "1000-01-01" regardless of how am I querying the data? (As is the case for the current versions of the MS-SQL, Oracle drivers and for pgjdbc up till 42.7.8) My argument is that that `java.sql.Date` and `java.sql.Timestamp` have a semantic issue with pre-Gregorian dates is irrelevant at this point and should not be corrected in the **driver code**. If clients have a problem, they have to correct it after querying it. Otherwise any legacy Java code relying on the current behaviour become effectively broken because of this change. Thus, it can be done, but it **must** be in a major release of the driver, if done at all.