Использование SQL в Cypher

AGE не поддерживает прямое встраивание операторов SQL в запросы Cypher. Однако вы можете определять функции SQL и вызывать их из команд Cypher через пользовательские функции.

Примечание!
Поддерживаются только функции с типом возврата VOID и скалярные функции. Функции, возвращающие набор строк (SETOF или TABLE), в настоящее время не поддерживаются.

Создание функции

CREATE OR REPLACE FUNCTION public.get_event_year(name agtype) RETURNS agtype AS $$
        SELECT year::agtype
        FROM history AS h
        WHERE h.event_name = name::text
        LIMIT 1;
$$ LANGUAGE sql;

Выполнение запроса

SELECT * FROM cypher('graph_name', $$
        MATCH (e:event)
        WHERE e.year < public.get_event_year(e.name)
        RETURN e.name
$$) AS (n agtype);

Результат

name
"Apache Con 2021"
(1 строка)