Скрыть базу шаблонов в pgAdmin - PullRequest
0 голосов
/ 04 июня 2018

Чтобы изменить параметры сортировки шаблона базы данных PostgreSQL, я сбросил template1 и воссоздал его с «правильным» сопоставлением.Поэтому я получил вдохновение от этого вопроса .

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

Я хотел бы скрыть эту базу данных в виде дерева.Кто-нибудь, кто может понять это?

РЕДАКТИРОВАТЬ: этот не принес меня дальше

(PostgreSQL 9.6, pgAdmin 1.22)

1 Ответ

0 голосов
/ 04 июня 2018

PgAdmin использует следующее условие для отображения базы данных в дереве или нет:

/* Condition used to show database */
if (settings->GetShowSystemObjects() || !database->GetSystemObject())
    (...)

/* Function called above */
bool pgDatabase::GetSystemObject() const
{
    if (server)
    {
        if (this->GetName() == wxT("template0")) return true;
        return (this->GetOid() <= server->GetLastSystemOID());
    }
    else
    {
        return false;
    }
}

Если вы не отметили опцию «Показывать системные объекты в виде дерева», я думаючто oid вашего template1 больше, чем LastSystemOID (pg_database.datlastsysoid).В этом случае у вас есть три варианта:

  1. Восстановить кластер с правильной сортировкой;
  2. Принять это;
  3. или, если вы не работали, игратьс pg_database.datlastsysoid и дождитесь побочных эффектов.
...