On Mon, Jul 23, 2018 at 5:12 PM Arthur Zakirov <a.zaki...@postgrespro.ru> wrote: > On Mon, Jul 23, 2018 at 04:30:43PM +0300, Arthur Zakirov wrote: > > I looked for some tradeoffs of the patch. I think it could be parsing > > strings like the following input strings: > > > > SELECT TO_TIMESTAMP('2011年5月1日', 'yyyy-MM-DD'); > > SELECT TO_TIMESTAMP('2011y5m1d', 'yyyy-MM-DD'); > > > > HEAD extracts year, month and day from the string. But patched > > to_timestamp() raises an error. Someone could rely on such behaviour. > > The patch divides separator characters from letters and digits. And > > '年' or 'y' are letters here. And so the format string doesn't match the > > input string. > > Sorry, I forgot to mention that the patch can handle this by using > different format string. You can execute: > > =# SELECT TO_TIMESTAMP('2011年5月1日', 'yyyy年MM月DD日'); > to_timestamp > ------------------------ > 2011-05-01 00:00:00+04 > > =# SELECT TO_TIMESTAMP('2011y5m1d', 'yyyy"y"MM"m"DD"d"'); > to_timestamp > ------------------------ > 2011-05-01 00:00:00+04 > > or: > > =# SELECT TO_TIMESTAMP('2011y5m1d', 'yyyytMMtDDt'); > to_timestamp > ------------------------ > 2011-05-01 00:00:00+04
Thank you, Arthur. These examples shows downside of this patch, where users may be faced with incompatibility. But it's good that this situation can be handled by altering format string. I think these examples should be added to the documentation and highlighted in release notes. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company