Re: Since '2001-09-09 01:46:40'::timestamp microseconds are lost when extracting epoch
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>,
Thomas Munro <thomas.munro@gmail.com>,
Petr Fedorov <petr.fedorov@phystech.edu>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2020-08-12T07:04:07Z
Lists: pgsql-bugs, pgsql-hackers
Attachments
- v2-0001-Add-more-tests-for-extract-of-date-type.patch (text/plain) patch v2-0001
- v2-0002-Expose-internal-function-for-converting-int64-to-.patch (text/plain) patch v2-0002
- v2-0003-Change-return-type-of-EXTRACT-to-numeric.patch (text/plain) patch v2-0003
Here is a new patch series version. I have created a new internal function for converting integers to numeric, to make the implementation a bit more elegant and compact. I have also created a new date_part(..., date) in C, and added more test coverage for that. Other than some of the semantic issues mentioned in the previous message, this version looks pretty good to me in principle. I have done some performance tests to assess the impact of changing from float to numeric. I did tests like this: create table t1 (a int, b timestamp with time zone); insert into t1 select generate_series(1, 10000000), current_timestamp + random() * interval '1000 days'; select extract(dow from b) from t1 \g /dev/null select extract(epoch from b) from t1 \g /dev/null There appears to be about a 20% increase in run time for these tests. These are obviously extreme tests, so I think that would be okay. More tests and testing ideas are welcome. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Fix inconsistent equalfuncs.c behavior for FuncCall.funcformat.
- a65e9f3f1405 14.0 landed
-
Doc: fix discussion of how to get real Julian Dates.
- f6171e6843f0 9.6.22 landed
- c93f8f3b8d3b 14.0 landed
- 824df1cccb74 12.7 landed
- 7cd542023056 11.12 landed
- 7bbcfb4d584d 13.3 landed
- 56e234b6aff9 10.17 landed
-
Doc: document EXTRACT(JULIAN ...), improve Julian Date explanation.
- ec5bab9217cd 13.3 landed
- b391db4943dc 9.6.22 landed
- b230618ce875 12.7 landed
- 79a5928ebcb7 14.0 landed
- 64d617de3c59 10.17 landed
- 4b610547c27a 11.12 landed
-
Change return type of EXTRACT to numeric
- a2da77cdb466 14.0 landed
-
Improve our ability to regurgitate SQL-syntax function calls.
- 40c24bfef925 14.0 landed
-
Add more tests for EXTRACT of date type
- 540612fa469e 14.0 landed
-
Expose internal function for converting int64 to numeric
- 0aa8f764088e 14.0 landed
-
Change floating-point output format for improved performance.
- 02ddd499322a 12.0 cited