hello
基于业务需求和生产使用中的问题,我们于release-3.2-subgraphmatch版本做了些开发,目前能支持简单的udf功能,由于对c++不太熟悉,代码比较丑。
大体思路和neo4j、hive使用方式类似,graphd中定义GraphFunction函数统一接口,用户自定义函数实现其相应方法,实现完的函数打包so,放入指定lib加载目录;graphd会定时扫描lib目录将udf放入缓存。当系统函数不存在时,会查询用户定义函数缓存,调用相应方法。
目前存在的问题是没办法循环调用(函数里面套ngql),这可能要从语法层做起,先不考虑了,后续可能会先专注优化器部分,希望使用的语句都能做到谓词下推。
项目地址: