/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
contrib/tsm_system_rows/sql/tsm_system_rows.sql
39 строк
1 KB
Tom Lane
Redesign tablesample method API, and do extensive code review.
25 июл 2015, 21:39
25 июл 2015, 21:39
dd7a8f6
Код
Авторство
О чём код?
CREATE EXTENSION tsm_system_rows; CREATE TABLE test_tablesample (id int, name text); INSERT INTO test_tablesample SELECT i, repeat(i::text, 1000) FROM generate_series(0, 30) s(i); ANALYZE test_tablesample; SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (0); SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (1); SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (10); SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (100); -- bad parameters should get through planning, but not execution: EXPLAIN (COSTS OFF) SELECT id FROM test_tablesample TABLESAMPLE system_rows (-1); SELECT id FROM test_tablesample TABLESAMPLE system_rows (-1); -- fail, this method is not repeatable: SELECT * FROM test_tablesample TABLESAMPLE system_rows (10) REPEATABLE (0); -- but a join should be allowed: EXPLAIN (COSTS OFF) SELECT * FROM (VALUES (0),(10),(100)) v(nrows), LATERAL (SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (nrows)) ss; SELECT * FROM (VALUES (0),(10),(100)) v(nrows), LATERAL (SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (nrows)) ss; CREATE VIEW vv AS SELECT count(*) FROM test_tablesample TABLESAMPLE system_rows (20); SELECT * FROM vv; DROP EXTENSION tsm_system_rows; -- fail, view depends on extension