Fix Assert failure in WITH RECURSIVE UNION queries
[pgsql.git] / contrib / tsm_system_rows / sql / tsm_system_rows.sql
blobe3ab4204eea5ae601aaf9e43c1edec6d0bda29d5
1 CREATE EXTENSION tsm_system_rows;
3 CREATE TABLE test_tablesample (id int, name text);
4 INSERT INTO test_tablesample SELECT i, repeat(i::text, 1000)
5   FROM generate_series(0, 30) s(i);
6 ANALYZE test_tablesample;
8 SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (0);
9 SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (1);
10 SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (10);
11 SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (100);
13 -- bad parameters should get through planning, but not execution:
14 EXPLAIN (COSTS OFF)
15 SELECT id FROM test_tablesample TABLESAMPLE system_rows (-1);
17 SELECT id FROM test_tablesample TABLESAMPLE system_rows (-1);
19 -- fail, this method is not repeatable:
20 SELECT * FROM test_tablesample TABLESAMPLE system_rows (10) REPEATABLE (0);
22 -- but a join should be allowed:
23 EXPLAIN (COSTS OFF)
24 SELECT * FROM
25   (VALUES (0),(10),(100)) v(nrows),
26   LATERAL (SELECT count(*) FROM test_tablesample
27            TABLESAMPLE system_rows (nrows)) ss;
29 SELECT * FROM
30   (VALUES (0),(10),(100)) v(nrows),
31   LATERAL (SELECT count(*) FROM test_tablesample
32            TABLESAMPLE system_rows (nrows)) ss;
34 CREATE VIEW vv AS
35   SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (20);
37 SELECT * FROM vv;
39 DROP EXTENSION tsm_system_rows;  -- fail, view depends on extension