我正在尝试在Sqlite之上构建一些抽象函数,它们可以选择最好的函数来调用。我在自定义函数实现(不是在sql)中执行此操作。
一个例子:使用可能类似于:SELECT username FROM Users WHERE id='blah' AND password = BEST_HASH('some string')
。在这种情况下,我将实现best_hash,我希望它检查是否存在名为'sha1'或'bcrypt'的函数。当它找到最佳匹配时,请调用相应的函数。
我的实际案例需要从现有的一组函数中选择最好的函数(在程序之外没有任何意义,因此是不同的例子)。
作为一名程序员,我正在尝试制作一个通用案例来确定某个函数是否存在。我有一个特定版本,通过编译SELECT function_name(arg1, arg2, ...argN)
语句来工作。我如何将其概括为不知道有多少参数可用?
答案 0 :(得分:0)
我不知道sqlite是否支持information_schema,但是在执行的系统(例如postgres)中,您可以查询特定函数是否存在,如下所示:
select routine_name
from information_schema.routines
where routine_name = 'sha1';
答案 1 :(得分:0)
您可以从编译指示函数中进行选择,以查看SQLite中是否存在该函数。
select exists(select 1 from pragma_function_list where name='sum');
1