Использую Astra Linux 1.6
Установлен пакет python3-psycopg2 версии 2.6.2-1.
Пишу минимальный код:
#!/usr/bin/python3
import sys
import enum
from psycopg2 import connect
from psycopg2 import sql
И при запуске вижу ошибку:
Traceback (most recent call last):
File "./sample_import.py", line 7, in <module>
from psycopg2 import sql
ImportError: cannot import name 'sql'
То есть, connect импортируется нормально, а sql - нет.
Это потому что кривая (старая) библиотека, как у этого товарища: https://github.com/OCA/openupgradelib/issues/193
Похоже, что SQL string composition появилось только в версии 2.7?
А как же тогда раньше генерировали безопасные запросы, которые имеют динамические имена объектов БД? (Имеется в виду именно динамические имена объектов БД а не представление данных, пишущихся в БД).
Получается, что все что написано здесь:
https://www.psycopg.org/docs/usage.html#passing-parameters-to-sql-queries
и здесь:
https://www.psycopg.org/docs/sql.html
в моем случае неприменимо, т. к. система сертифицирована и замена пакетов не допускается.
Получается, что технотролли здесь:
psycopg2 генерирует неправильные команды для комментариев и схем
и здесь
psycopg2 не может работать со схемой «validate»
зря выплясывали, потому что я даже не могу увидеть то о чем идет речь, не говоря уже о том чтобы воспользоваться.