Netezza - делает функции UDF доступными для нескольких БД

Руководство разработчика LUA (часть Netezza Analytics 3.0) содержит инструкции для "компиляции" функций.nzl с помощью команды "nzlua". К сожалению, эта функция, по-видимому, доступна только в БД, которая определена в переменной среды NZ_DATABASE при выполнении команды "nzlua" - см. Вывод команды непосредственно ниже.

Вопрос: Как сделать скомпилированную функцию доступной для всех баз данных на устройстве? т. е. без изменения переменной env NZ_DATABASE и повторного выполнения команды nzlua для каждой БД (включая пользовательские БД песочницы).

[nz@nzh1p01 examples]$ /nz/extensions/nz/nzlua/bin/nzl nzlua isdate.nzl
Compiling: isdate.nzl
####################################################################
UdxName      =  isdate
UdxType      =  UDF
Arguments    =  VARCHAR(40),VARCHAR(40)
Result       =  BOOL
Dependencies =  INZA.INZA.LIBNZLUA_3_0_0
NZUDXCOMPILE OPTIONS: (--nullcall --unfenced --mem 2m)
CREATE FUNCTION

2 ответа

Функция должна быть доступна во всех базах данных, однако вам нужно будет вызывать ее, используя полный путь. Database..function

Добавьте базу данных, в которой вы зарегистрировали функцию, в переменную среды search_path в /nz/data/postgresql.conf файл. Функция может быть ссылкой на d из любого места:-)

Другие вопросы по тегам