Обсуждение: pgsql: Improve behavior of to_timestamp()/to_date() functions

Поиск
Список
Период
Сортировка

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

От
Alexander Korotkov
Дата:
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(-)