Skip to content

Fix WHERE clause subquery extraction in parse_table_names()#12

Closed
danielbodart wants to merge 1 commit intohotdata-dev:mainfrom
danielbodart:fix/where-clause-subquery-extraction
Closed

Fix WHERE clause subquery extraction in parse_table_names()#12
danielbodart wants to merge 1 commit intohotdata-dev:mainfrom
danielbodart:fix/where-clause-subquery-extraction

Conversation

@danielbodart
Copy link

Summary

  • Fixes parse_table_names() missing tables referenced in WHERE clause subqueries
  • Adds expression tree walking for all expression contexts (WHERE, SELECT list, HAVING, QUALIFY, GROUP BY, ORDER BY, JOIN conditions)
  • Tables inside expression subqueries get subquery context

Example

-- Before:
SELECT parse_table_names('SELECT * FROM a WHERE x IN (SELECT y FROM b)');
-- Returns: [a]

-- After:
SELECT parse_table_names('SELECT * FROM a WHERE x IN (SELECT y FROM b)');
-- Returns: [a, b]

Test plan

  • Added test cases for WHERE clause subqueries
  • Added test cases for nested subqueries
  • Added test cases for SELECT list, HAVING, JOIN condition, ORDER BY subqueries
  • All existing tests pass

🤖 Generated with Claude Code

parse_table_names() was missing tables referenced in WHERE clause
subqueries. For example:

  SELECT * FROM a WHERE x IN (SELECT y FROM b)

Would only return ['a'], missing 'b'.

This fix adds expression tree walking to extract subqueries from:
- WHERE clause
- SELECT list (scalar subqueries)
- HAVING clause
- QUALIFY clause
- GROUP BY expressions
- ORDER BY expressions
- JOIN conditions

Tables inside expression subqueries get 'subquery' context while
tables in FROM clause subqueries keep their natural context.

Co-Authored-By: Claude <noreply@anthropic.com>
@danielbodart
Copy link
Author

Closing - this fix was already implemented in PR #11. Thanks!

@danielbodart danielbodart deleted the fix/where-clause-subquery-extraction branch January 30, 2026 08:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant