Запрос предка LTREE в Postgres не работает должным образом - PullRequest
0 голосов
/ 18 марта 2020

У меня есть таблица со столбцом LTREE, и данные примерно такие, как описано ниже.

ID  Label  Path
1.  ABC.   1
2.  DEF.   1.2
26. GHI.   1.2.26

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

SELECT *
    FROM
        my_table as tbl
    WHERE
        tbl.path @> (
            SELECT
                path 
            FROM
                my_table 
            WHERE
                id=26
        ) 

Однако, он возвращает только последнюю строку, тогда как я хочу все три строки. Что я делаю не так?

1 Ответ

0 голосов
/ 20 марта 2020

Я тоже новичок в Ltree, но думаю, что смогу вам помочь!

Ваша установка должна соответствовать индексу GIST для Ltree. См. F.21.3 часть официальной документации. https://www.postgresql.org/docs/current/ltree.html

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

...