Bird
0
0

Find the mistake in this recursive CTE:

medium📝 Debug Q7 of 15
PostgreSQL - Common Table Expressions
Find the mistake in this recursive CTE:
WITH RECURSIVE cte(node) AS ( SELECT node FROM graph WHERE node = 1 UNION ALL SELECT node + 1 FROM cte WHERE node <= 5 ) SELECT * FROM cte;
ACTE name conflicts with table name
BAnchor member selects wrong column
CRecursive member should use UNION instead of UNION ALL
DRecursive member condition allows infinite recursion
Step-by-Step Solution
Solution:
  1. Step 1: Analyze recursive member condition

    The condition 'node <= 5' includes 5, so recursion continues when node=5.
  2. Step 2: Check if recursion stops

    Since node increments by 1, it will go beyond 5, but condition allows node=5 again, causing infinite loop.
  3. Final Answer:

    Recursive member condition allows infinite recursion -> Option D
  4. Quick Check:

    Recursive condition must prevent infinite loops [OK]
Quick Trick: Use strict less than to stop recursion safely [OK]
Common Mistakes:
  • Using <= instead of < in recursion condition
  • Confusing UNION and UNION ALL effects
  • Ignoring anchor member correctness

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More PostgreSQL Quizzes