BUG #18356: Casting values from jsonb_each_text does not respect WHERE filter with sub select
От | PG Bug reporting form |
---|---|
Тема | BUG #18356: Casting values from jsonb_each_text does not respect WHERE filter with sub select |
Дата | |
Msg-id | 18356-a811d014209fd19c@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #18356: Casting values from jsonb_each_text does not respect WHERE filter with sub select
Re: BUG #18356: Casting values from jsonb_each_text does not respect WHERE filter with sub select Re: BUG #18356: Casting values from jsonb_each_text does not respect WHERE filter with sub select |
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 18356 Logged by: Ed Herrmann Email address: ewherrmann@gmail.com PostgreSQL version: 16.0 Operating system: Linux, MacOS Description: - Prior to v16, this statement would work for casting values of a k/v jsonb pair to an integer: SELECT id, mytdata.key, mytdata.value::integer FROM my_table as myt, jsonb_each_text(myt.data) as mytdata WHERE mytdata.key IN ( SELECT key from week_key_table ) - Where week_key_table stores keys such as "week01", "week02", and "week03". - And where the jsonb has some keys with alphanumeric values and some keys with numeric values, such as: { "key_figure": "Volume", "week01": "0", "week02": "0", "week03": "0"} However as of v16, this same statement causes the error: 'invalid input syntax for type double precision: "Volume"'. If the keys are specified directly, it will still work as normal, but thows the casting error when the keys are being selected from another table. Works: SELECT id, mytdata.key, mytdata.value::integer FROM my_table as myt, jsonb_each_text(myt.data) as mytdata WHERE mytdata.key IN ( "week01", "week02", "week03" ) Casting Error: SELECT id, mytdata.key, mytdata.value::integer FROM my_table as myt, jsonb_each_text(myt.data) as mytdata WHERE mytdata.key IN ( SELECT key from week_key_table )
В списке pgsql-bugs по дате отправления: