Функция Postgres вызывает ошибку при вызове из скрипта Python, но работает нормально в pgAdmin

#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 расширения, так что это расширение должно быть установлено в базе данных.