如何在AGE中集成PostgreSQL原生函数?
无需修改AGE代码集成PostgreSQL原生函数的方案
用SQL函数封装后调用
先在PostgreSQL里把目标原生函数封装成一个SQL函数,之后就能直接在AGE的Cypher查询里调用这个封装函数。比如要调用PostgreSQL的upper():CREATE OR REPLACE FUNCTION pg_upper(text) RETURNS text AS $$ SELECT upper($1); $$ LANGUAGE SQL STABLE;然后在AGE查询里这么用:
MATCH (n:Person) RETURN pg_upper(n.name) AS upper_name;直接用AGE的
pgfunc语法调用
AGE本身支持通过pgfunc()在Cypher里直接调用PostgreSQL原生函数,这是官方支持的方式,完全不用改AGE代码。比如调用无参函数current_date():RETURN pgfunc('current_date') AS today;带参数的情况直接传参就行:
MATCH (n:Person) RETURN pgfunc('upper', n.name) AS upper_name;自定义操作符映射(可选)
要是觉得pgfunc()写法不够简洁,可以在PostgreSQL里创建自定义操作符,映射到目标原生函数,之后在AGE查询里用操作符就行。比如给upper()加个操作符:CREATE OPERATOR ~> ( LEFTARG = text, RIGHTARG = void, PROCEDURE = upper, RETURN TYPE = text );然后在AGE查询中使用:
MATCH (n:Person) RETURN n.name ~> () AS upper_name;
内容的提问来源于stack exchange,提问作者Muhammad Abdullah
相关产品推荐
相关产品推荐

