add support for recursive CTEs