> > I went to review this, and found that there's not actually a patch > attached ... > > regards, tom lane >
Attached. Sorry for that. -- Jeevan B Chalke Principal Software Engineer, Product Development EnterpriseDB Corporation The Enterprise PostgreSQL Company
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index 6ae426b..56fb359 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -2846,16 +2846,18 @@ DCH_from_char(FormatNode *node, char *in, TmFromChar *out) { if (n->type != NODE_TYPE_ACTION) { + /* Separator, consume one character from input string */ s++; - /* Ignore spaces when not in FX (fixed width) mode */ - if (isspace((unsigned char) n->character) && !fx_mode) - { - while (*s != '\0' && isspace((unsigned char) *s)) - s++; - } continue; } + /* Ignore spaces when not in FX (fixed width) mode */ + if (!fx_mode) + { + while (*s != '\0' && isspace((unsigned char) *s)) + s++; + } + from_char_set_mode(out, n->key->date_mode); switch (n->key->id) diff --git a/src/test/regress/expected/horology.out b/src/test/regress/expected/horology.out index 87a6951..9ebc0f7 100644 --- a/src/test/regress/expected/horology.out +++ b/src/test/regress/expected/horology.out @@ -2965,3 +2965,76 @@ SELECT to_char('2012-12-12 12:00'::timestamptz, 'YYYY-MM-DD HH:MI:SS TZ'); (1 row) RESET TIME ZONE; +-- White spaces in input string, not matching with format string +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + to_timestamp +------------------------------ + Sun Dec 18 03:38:15 2011 PST +(1 row) + +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + to_timestamp +------------------------------ + Sun Dec 18 23:38:15 2011 PST +(1 row) + +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + to_timestamp +------------------------------ + Sun Dec 18 23:38:15 2011 PST +(1 row) + +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + to_timestamp +------------------------------ + Sun Dec 18 23:38:15 2011 PST +(1 row) + +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + to_timestamp +------------------------------ + Sun Dec 18 23:38:15 2011 PST +(1 row) + +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + to_timestamp +------------------------------ + Sun Dec 18 03:38:15 2011 PST +(1 row) + +SELECT to_date('2011 12 18', 'YYYY MM DD'); + to_date +------------ + 12-18-2011 +(1 row) + +SELECT to_date('2011 12 18', 'YYYY MM DD'); + to_date +------------ + 12-18-2011 +(1 row) + +SELECT to_date('2011 12 18', 'YYYY MM DD'); + to_date +------------ + 12-08-2011 +(1 row) + +SELECT to_date('2011 12 18', 'YYYY MM DD'); + to_date +------------ + 02-18-2011 +(1 row) + +SELECT to_date('2011 12 18', 'YYYY MM DD'); + to_date +------------ + 12-18-2011 +(1 row) + +SELECT to_date('2011 12 18', 'YYYY MM DD'); + to_date +------------ + 12-18-2011 +(1 row) + diff --git a/src/test/regress/sql/horology.sql b/src/test/regress/sql/horology.sql index fe9a520..19c1cf4 100644 --- a/src/test/regress/sql/horology.sql +++ b/src/test/regress/sql/horology.sql @@ -477,3 +477,20 @@ SELECT '2012-12-12 12:00 America/New_York'::timestamptz; SELECT to_char('2012-12-12 12:00'::timestamptz, 'YYYY-MM-DD HH:MI:SS TZ'); RESET TIME ZONE; + +-- White spaces in input string, not matching with format string +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); +SELECT to_timestamp('2011-12-18 23:38:15', 'YYYY-MM-DD HH24:MI:SS'); + +SELECT to_date('2011 12 18', 'YYYY MM DD'); +SELECT to_date('2011 12 18', 'YYYY MM DD'); +SELECT to_date('2011 12 18', 'YYYY MM DD'); + +SELECT to_date('2011 12 18', 'YYYY MM DD'); +SELECT to_date('2011 12 18', 'YYYY MM DD'); +SELECT to_date('2011 12 18', 'YYYY MM DD');
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers