-- Mateialize node DROP TABLE t1; CREATE TABLE t1 (a INT, b TEXT); INSERT INTO t1 SELECT x,repeat('a',1024) from generate_series(1,1000)x; CREATE INDEX ON t1(a); EXPLAIN (ANALYZE, COSTS OFF) SELECT count(t1.b) FROM (VALUES(1),(2)) t2(x) LEFT JOIN (SELECT * FROM t1 WHERE a <= 100) t1 ON TRUE; -- CTE Scan node EXPLAIN (ANALYZE, COSTS OFF) WITH RECURSIVE t(n) AS ( VALUES (1) UNION ALL SELECT n+1 FROM t WHERE n < 100 ) SELECT sum(n) OVER() FROM t; -- Table Function Scan node CREATE OR REPLACE VIEW public.jsonb_table_view6 AS SELECT js2, jsb2w, jsb2q, ia, ta, jba FROM JSON_TABLE( 'null'::jsonb, '$[*]' AS json_table_path_0 PASSING 1 + 2 AS a, '"foo"'::json AS "b c" COLUMNS ( js2 json PATH '$' WITHOUT WRAPPER KEEP QUOTES, jsb2w jsonb PATH '$' WITH UNCONDITIONAL WRAPPER KEEP QUOTES, jsb2q jsonb PATH '$' WITHOUT WRAPPER OMIT QUOTES, ia integer[] PATH '$' WITHOUT WRAPPER KEEP QUOTES, ta text[] PATH '$' WITHOUT WRAPPER KEEP QUOTES, jba jsonb[] PATH '$' WITHOUT WRAPPER KEEP QUOTES ) ); EXPLAIN (ANALYZE, COSTS OFF) SELECT * FROM jsonb_table_view6;