База данных Postgres 8.4 и выше содержит общие таблицы в таблице public
и конкретных для компании таблицах в схеме company
. company
имена схем всегда начинаются с 'company'
и заканчиваются номером компании.
Таким образом, могут быть схемы:
public
company1
company2
company3
...
companynn
Приложение всегда работает с одной компанией. search_path
указан соответственно в строке соединения odbc или npgsql, например:
search_path='company3,public'
Как проверить, существует ли данная таблица в указанной схеме companyn
?
select isSpecific('company3','tablenotincompany3schema')
должен возвращать false
и
select isSpecific('company3','tableincompany3schema')
должен возвращать true
.
В любом случае функция должна проверять только тег companyn
, а не другие схемы.
Если данная таблица существует как в public
, так и в переданной схеме, функция должна возвращать true
.
Он должен работать для Postgres 8.4 или новее.