This recursive CTE walks a graph that can contain cycles. Which technique correctly prevents infinite recursion in portable SQL?
WITH RECURSIVE walk(id, path) AS (
SELECT id, ARRAY[id] FROM nodes WHERE id = 1
UNION ALL
SELECT e.dst, w.path || e.dst
FROM walk w JOIN edges e ON e.src = w.id
WHERE /* ??? */
)
SELECT * FROM walk;