Re: Support for jsonpath .datetime() method

Nikita Glukhov <n.gluhov@postgrespro.ru>

From: Nikita Glukhov <n.gluhov@postgrespro.ru>
To: Alexander Korotkov <a.korotkov@postgrespro.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Thomas Munro <thomas.munro@gmail.com>, Andrew Dunstan <andrew.dunstan@2ndquadrant.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Liudmila Mantrova <l.mantrova@postgrespro.ru>, Anastasia Lubennikova <lubennikovaav@gmail.com>
Date: 2019-09-27T14:25:54Z
Lists: pgsql-hackers

Attachments

On 25.09.2019 22:55, Alexander Korotkov wrote:

> On Mon, Sep 23, 2019 at 10:05 PM Alexander Korotkov
> <a.korotkov@postgrespro.ru> wrote:
>> I've reordered the patchset.  I moved the most debatable patch, which
>> introduces RRRR and RR and changes parsing of YYY, YY and Y to the
>> end.  I think we have enough of time in this release cycle to decide
>> whether we want this.
>>
>> Patches 0001-0005 looks quite mature for me.  I'm going to push this
>> if no objections.  After pushing them, I'm going to start discussion
>> related to RR, YY and friends in separate thread.
> Pushed.  Remaining patch is attached.  I'm going to start the separate
> thread with its detailed explanation.

Attached patch with refactoring of compareDatetime() according
to the complaints of Tom Lane in [1]:
  * extracted four subroutines for type conversions
  * extracted subroutine for error reporting
  * added default cases to all switches
  * have_error flag is expected to be not-NULL always
  * fixed errhint() message style

[1] https://www.postgresql.org/message-id/32308.1569455803%40sss.pgh.pa.us

-- 
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Commits

  1. Allow datetime values in JsonbValue

  2. Error suppression support for upcoming jsonpath .datetime() method

  3. Implement jsonpath .datetime() method

  4. Implement parse_datetime() function

  5. Implement standard datetime parsing mode

  6. Support for SSSSS datetime format pattern

  7. Support for FF1-FF6 datetime format patterns