Пользовательская функция SQL отлично работает для меня, когда она используется в клиентском приложении Java, как описано в https://apacheignite -sql.readme.io / docs / custom-sql-functions .Тем не менее, когда он развертывается на узлах сервера Ignite в своем каталоге lib и вызывается через стандартный SQL через JDBC, Ignite сообщает
"Ошибка SQL [42000] ... Функция ... не найдена ... [90022-195]».
Ниже приведена конфигурация Ignite, используемая при запуске.
<property name="cacheConfiguration">
<list>
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="MyFunctions"/>
<property name="sqlFunctionClasses" value="MyFunctions"/>
</bean>
</list>
</property>
Я также пробовал имя кэша «default», но у него та же проблема.Если я использую имя кэша для пользовательской функции SQL, которое совпадает с именем таблицы, Ignite говорит
"Несоответствие конфигурации кэша (локальный кэш был создан с помощью Ignite API, а удаленный кэш был создан с помощью CREATE TABLE): "
Ignite точно загрузил пользовательский файл jar Java, потому что, когда он не был развернут, Ignite сказал бы, что не может загрузить пользовательский класс.
Запрос:
SELECT * FROM Страна WHERE sqr (2)> 100;
Какие изменения необходимы для узлов сервера Ignite для использования пользовательских функций SQL в операторах SQL, которыевыдаются через JDBC?
Спасибо.