Instruction
As you could see, our query terminated with an error, but it's only because of the special database settings in our course. Normally, the database would not stop the query on its own. As a result, it would freeze and you would have to break the query manually. Please remember about that!
In Postgres, you can use another keyword LIMIT n, where n is the maximal number of rows you expect. Even if your query does not contain a termination check (or it does, but the check is faulty), LIMIT will take care of query termination:
WITH RECURSIVE counter(previous_value) AS (
SELECT
1 -- anchor member
UNION ALL
SELECT
previous_value + 1 -- recursive member
FROM counter
)
SELECT
*
FROM counter -- invocation
LIMIT 10; -- termination checkExercise
Run the template query with LIMIT and see for yourself how it works.



