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 из любого места:-)