Re: Transform for pl/perl

Поиск
Список
Период
Сортировка
От ilmari@ilmari.org (Dagfinn Ilmari Mannsåker)
Тема Re: Transform for pl/perl
Дата
Msg-id d8j604zjgtd.fsf@dalvik.ping.uio.no
обсуждение исходный текст
Ответ на Re: Transform for pl/perl  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Transform for pl/perl  (ilmari@ilmari.org (Dagfinn Ilmari Mannsåker))
Список pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> writes:

> ilmari@ilmari.org (Dagfinn Ilmari =?utf-8?Q?Manns=C3=A5ker?=) writes:
>> While playing around some more with the extension, I discoverered a few
>> more issues:
>> ...
>> 4) SV_to_JsonbValue() throws an error for infinite NVs, but not NaNs
>
> The others sound like bugs, but that one's intentional, since type
> numeric does have a concept of NaN.  If you're arguing that we should
> disallow that value in the context of jsonb, maybe so, but it'd likely
> take changes in quite a few more places than here.

The numeric type that's used internally to represent numbers in jsonb
might have the concept of NaN, but JSON itself does not:

    Numeric values that cannot be represented in the grammar below (such
    as Infinity and NaN) are not permitted.

      - https://tools.ietf.org/html/rfc7159#section-6

And it cannot be cast to json:

    =# create or replace function jsonbnan() returns jsonb immutable language plperlu transform for type jsonb as
'0+"NaN"';
    CREATE FUNCTION
    =# select jsonbnan();
    ┌──────────┐
    │ jsonbnan │
    ├──────────┤
    │ NaN      │
    └──────────┘

    =# select jsonb_typeof(jsonbnan());
    ┌──────────────┐
    │ jsonb_typeof │
    ├──────────────┤
    │ number       │
    └──────────────┘

    =# select jsonbnan()::json;
    ERROR:  invalid input syntax for type json
    DETAIL:  Token "NaN" is invalid.
    CONTEXT:  JSON data, line 1: NaN

- ilmari
-- 
"The surreality of the universe tends towards a maximum" -- Skud's Law
"Never formulate a law or axiom that you're not prepared to live with
 the consequences of."                              -- Skud's Meta-Law


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: lazy detoasting
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Faster inserts with mostly-monotonically increasing values