]> granicus.if.org Git - postgresql/commit
Improve behavior of to_timestamp()/to_date() functions
authorAlexander Korotkov <akorotkov@postgresql.org>
Sun, 9 Sep 2018 18:19:51 +0000 (21:19 +0300)
committerAlexander Korotkov <akorotkov@postgresql.org>
Sun, 9 Sep 2018 18:19:51 +0000 (21:19 +0300)
commitcf984672427ebc4446213fe8f71d8899452802b6
tree034f104000ecda901d2ab7a9f459d250d1a7406f
parent5f08accdad2b03e0107bdc73d48783a01fe51c8c
Improve behavior of to_timestamp()/to_date() functions

to_timestamp()/to_date() functions were introduced mainly for Oracle
compatibility, and became very popular among PostgreSQL users.  However, some
behavior of to_timestamp()/to_date() functions are both incompatible with Oracle
and confusing for our users.  This behavior is related to handling of spaces and
separators in non FX (fixed format) mode.  This commit reworks this behavior
making less confusing, better documented and more compatible with Oracle.

Nevertheless, there are still following incompatibilities with Oracle.
1) We don't insist that there are no format string patterns unmatched to
   input string.
2) In FX mode we don't insist space and separators in format string to exactly
   match input string.
3) When format string patterns are divided by mix of spaces and separators, we
   don't distinguish them, while Oracle takes into account only last group of
   spaces/separators.

Discussion: https://postgr.es/m/1873520224.1784572.1465833145330.JavaMail.yahoo%40mail.yahoo.com
Author: Artur Zakirov, Alexander Korotkov, Liudmila Mantrova
Review: Amul Sul, Robert Haas, Tom Lane, Dmitry Dolgov, David G. Johnston
doc/src/sgml/func.sgml
src/backend/utils/adt/formatting.c
src/test/regress/expected/horology.out
src/test/regress/sql/horology.sql