26 июня 2010

Получить комментарий к pgsql объектам "по-быструхе"

Attention: используется Qt Script. 
Механизм комментариев в postgresql представляет собой очень такой упругий клапан: комментарий задать легче простого, получить его обратно "почти невозможно". Официальная postgres документация, рассказывает о 4 функциях. google.com на запрос "postgresql get object comment" отсылает к оф. документации.
Если у кого есть отточенный механизм, то он скорее всего выужен из исходного кода psql или pgAdmin. Мне туда лезть пока не хочеться, хватает дебрей Qt.

Итак отобрать обратно комментарий от собственно самой базы данных, к которой мы сейчас подключены:
var query = new QSqlQuery(database);
query.exec("select description from pg_shdescription join pg_database on objoid = oid and datname = current_database()");
query.next();
print(query.value(0));

Получить комментарий к таблице:
var tableName = "tableName";
var sqlQuery = new QSqlQuery(database);
sqlQuery.exec("select description from pg_description where objsubid = 0 and objoid = '%1'::regclass ".arg(tableName));
query.next();
print(sqlQuery.value(0));

Получить комментарий к столбцу:
var columnIndex = 1;
var tableName = "tableName";
var sqlQuery = new QSqlQuery(database);
sqlQuery.exec("select description from pg_description where objsubid = %2 and objoid = '%1'::regclass ".arg(tableName).arg(columnIndex));
query.next();
print(sqlQuery.value(0));

Комментариев нет:

Отправить комментарий