GRDB自定义的纯函数
在GRDB中,用户可以自定义SQlite函数。这样,在SQL语句中,可以直接调用这些函数。但是在定义的时候,用户需要指定函数的pure属性,表示该函数是否为纯函数。纯函数是编程语言的一个理论概念。如果一个函数获取的所有数据均来自于函数参数,函数的所有输出均以返回值表现,这样的函数被称为纯函数。
例如,函数获取的某个数据由随机函数产生,或者修改了全局变量,或者向终端输出内容,这样的函数都被称为非纯函数。对于纯函数,SQLite可以进行各种优化,从而提高运行效率。但是对于非纯函数进行优化,则可能导致各种错误。所以,使用GRDB自定义函数时,必须合理设置pure属性。如果不确定,则建议保守设置为false,从而避免未知的错误。