База данных 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 или новее.