I am writing here just because you change this specific part of code. Designing a custom node I found the problem with CTE and Subqueries. The reproduction sample looks quite similar to yours:
create view tt24v as with cte as materialized (select r from (values(1,2),(3,4)) r) select (r).column2 as col_a, (rr).column2 as col_b from cte join (select rr from (values(1,7),(3,8)) rr limit 2) ss on (r).column1 = (rr).column1; explain (verbose, costs off) select * from tt24v;
but fails with the error "failed to find plan for CTE ..." with a custom node over a JOIN.
The error message indicates that something must have gone wrong. I don't know well enough about custom scan, but I cannot reproduce this error with your query. Am I missing something?