Запрос столбца jsonb, содержащего массив json с одним элементом - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу иметь возможность использовать один и тот же синтаксис запроса для возврата обеих строк

Учитывая столбец jsonb с именем 'tags' в таблице с именем 'qux' с примерами данных встрока 1:

{
  "foo": ["1","2"]
}

и строка 2:

{
  "foo": ["3"]
}

и предварительный индекс, созданный для столбца 'tags':

CREATE INDEX tag_idx ON tags USING GIN (tags);

Когда язапустите следующий запрос:

SELECT count(*) FROM "qux" WHERE tags @> '{"foo": ["1"]}'

Я ожидаю получить строку назад, что является правильным.

Если я запущу:

SELECT count(*) FROM "qux" WHERE tags @> '{"foo": ["3"]}'

Я не получаю никакихряды назад, что кажется неожиданным.Я могу вернуть строку, если я уберу квадратные скобки во втором примере, однако синтаксис нарушает первый пример.

Это известная ошибка или проблема с индексированием?Версия postgres 9,5

...