pgsql: Improve behavior of to_timestamp()/to_date() functions

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Improve behavior of to_timestamp()/to_date() functions
Date: 2018-09-09 18:40:58
Message-ID: E1fz4dm-0007Rw-HA@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/cf984672427ebc4446213fe8f71d8899452802b6

Modified Files
--------------
doc/src/sgml/func.sgml | 62 ++++++++++++++++--
src/backend/utils/adt/formatting.c | 112 ++++++++++++++++++++++++++++-----
src/test/regress/expected/horology.out | 105 +++++++++++++++++++++++++++++--
src/test/regress/sql/horology.sql | 27 +++++++-
4 files changed, 280 insertions(+), 26 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alexander Korotkov 2018-09-09 18:43:28 pgsql: Fix past pd_upper write in ginRedoRecompress()
Previous Message Tom Lane 2018-09-09 16:41:34 pgsql: Work around stdbool problem in dfmgr.c.