Re: Custom Operators Cannot be Found for Composite Type Values

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Custom Operators Cannot be Found for Composite Type Values
Дата
Msg-id 4F59080C.1060201@dunslane.net
обсуждение исходный текст
Ответ на Re: Custom Operators Cannot be Found for Composite Type Values  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Custom Operators Cannot be Found for Composite Type Values
Список pgsql-hackers

On 03/08/2012 02:16 PM, Tom Lane wrote:
> "David E. Wheeler"<david@justatheory.com>  writes:
>>      CREATE OPERATOR CLASS json_ops
>>      DEFAULT FOR TYPE JSON USING btree AS
>>      OPERATOR    3   =  (json, json),
>>      FUNCTION    1   json_cmp(json, json);
>> This seems to work.
> Urk.  You really ought to provide the whole opclass (all 5 operators).
> I'm not sure what will blow up if you leave it like that, but it won't
> be pretty.

Yeah. Note too that this is at best dubious:
    CREATE OR REPLACE FUNCTION json_cmp(        json,        json    ) RETURNS INTEGER LANGUAGE SQL STRICT IMMUTABLE AS
$$       SELECT bttextcmp($1::text, $2::text);    $$;
 


Two pieces of JSON might well be textually different but semantically 
identical (e.g. by one having additional non-semantic whitespace).


cheers

andrew


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

Предыдущее
От: Noah Misch
Дата:
Сообщение: Re: Collect frequency statistics for arrays
Следующее
От: "David E. Wheeler"
Дата:
Сообщение: Re: Custom Operators Cannot be Found for Composite Type Values