Re: ERROR: operator does not exist: json = json
От | Dagfinn Ilmari Mannsåker |
---|---|
Тема | Re: ERROR: operator does not exist: json = json |
Дата | |
Msg-id | 87wncnizq8.fsf@wibble.ilmari.org обсуждение исходный текст |
Ответ на | ERROR: operator does not exist: json = json (Erik Rijkers <er@xs4all.nl>) |
Ответы |
Re: ERROR: operator does not exist: json = json
|
Список | pgsql-hackers |
Erik Rijkers <er@xs4all.nl> writes: > Hi, > > Comparison of 2 values of type jsonb is allowed. > > Comparison of 2 values of type json gives an error. > > That seems like an oversight -- or is it deliberate? This is because json is just a textual representation, and different JSON strings can be semantically equal because e.g. whitespace and object key order is not significant. > Example: > > select '42'::json = '{}'::json; > --> ERROR: operator does not exist: json = json > > (of course, easily 'solved' by casting but that's not really the > point) To do a proper comparison you have to parse it into a semantic form, which is what casting to jsonb does. > Thanks, > > Erik Rijkers - ilmari
В списке pgsql-hackers по дате отправления: