#python #postgresql #plpgsql #pg-trgm #gist-index
Вопрос:
У меня есть функция postgres под названием » medrealize ()», внутри которой я создаю временную таблицу и создаю индекс для временных таблиц, используя следующие строки
CREATE INDEX SQLOPS_RefICD_ICD10_idx ON t$SQLOPS_RefICD_ICD10 USING gist (code gist_trgm_ops ); CREATE INDEX regexes_idx ON t$regexes USING gist (icdregex gist_trgm_ops );
При вызове функции из pgadmin функция запускается без каких-либо проблем. Но при вызове функции из python с помощью
cursor.execute("BEGIN") cursor.execute("CALL medrealize();") cursor.execute("COMMIT")
Я получаю ошибку ниже
operator class "gist_trgm_ops" does not exist for access method "gist"
Есть идеи, почему он работает нормально при вызове из pgAdmin и вызывает ошибку при вызове из Python?
Комментарии:
1. Вам нужно будет показать фактическую процедуру(это не функция)
medrealize
. Также вы на самом деле используете$
имена таблиц? Вы уверены, что подключаетесь к одной и той же базе данных в случаях Python и pgAdmin.gist_trgm_ops
исходит отpg_trgm
расширения, так что это расширение должно быть установлено в базе данных.