pgsql: TABLESAMPLE, SQL Standard and extensible

Поиск
Список
Период
Сортировка
От Simon Riggs
Тема pgsql: TABLESAMPLE, SQL Standard and extensible
Дата
Msg-id E1YtKVU-0001M2-1k@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
TABLESAMPLE, SQL Standard and extensible

Add a TABLESAMPLE clause to SELECT statements that allows
user to specify random BERNOULLI sampling or block level
SYSTEM sampling. Implementation allows for extensible
sampling functions to be written, using a standard API.
Basic version follows SQLStandard exactly. Usable
concrete use cases for the sampling API follow in later
commits.

Petr Jelinek

Reviewed by Michael Paquier and Simon Riggs

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/f6d208d6e51810c73f0e02c477984a6b44627f11

Modified Files
--------------
contrib/file_fdw/file_fdw.c                  |    2 +-
contrib/postgres_fdw/postgres_fdw.c          |    2 +-
doc/src/sgml/catalogs.sgml                   |  120 +++++++++
doc/src/sgml/ref/select.sgml                 |   61 ++++-
src/backend/access/Makefile                  |    3 +-
src/backend/access/heap/heapam.c             |   41 ++-
src/backend/access/tablesample/Makefile      |   17 ++
src/backend/access/tablesample/bernoulli.c   |  235 ++++++++++++++++
src/backend/access/tablesample/system.c      |  186 +++++++++++++
src/backend/access/tablesample/tablesample.c |  368 ++++++++++++++++++++++++++
src/backend/catalog/Makefile                 |    5 +-
src/backend/commands/analyze.c               |    2 +-
src/backend/commands/explain.c               |   21 ++
src/backend/executor/Makefile                |    2 +-
src/backend/executor/execAmi.c               |    8 +
src/backend/executor/execCurrent.c           |    1 +
src/backend/executor/execProcnode.c          |   14 +
src/backend/executor/nodeSamplescan.c        |  256 ++++++++++++++++++
src/backend/nodes/copyfuncs.c                |   60 +++++
src/backend/nodes/equalfuncs.c               |   37 +++
src/backend/nodes/nodeFuncs.c                |   28 ++
src/backend/nodes/outfuncs.c                 |   48 ++++
src/backend/nodes/readfuncs.c                |   45 ++++
src/backend/optimizer/path/allpaths.c        |   49 ++++
src/backend/optimizer/path/costsize.c        |   67 +++++
src/backend/optimizer/plan/createplan.c      |   69 +++++
src/backend/optimizer/plan/planner.c         |   15 +-
src/backend/optimizer/plan/setrefs.c         |   11 +
src/backend/optimizer/plan/subselect.c       |    1 +
src/backend/optimizer/util/pathnode.c        |   22 ++
src/backend/parser/gram.y                    |   36 ++-
src/backend/parser/parse_clause.c            |   56 ++++
src/backend/parser/parse_func.c              |  143 ++++++++++
src/backend/rewrite/rewriteHandler.c         |    3 +
src/backend/utils/adt/ruleutils.c            |   50 ++++
src/backend/utils/cache/lsyscache.c          |   27 ++
src/backend/utils/cache/syscache.c           |   23 ++
src/backend/utils/misc/sampling.c            |   33 ++-
src/include/access/heapam.h                  |    4 +
src/include/access/relscan.h                 |    1 +
src/include/access/tablesample.h             |   60 +++++
src/include/catalog/indexing.h               |    5 +
src/include/catalog/pg_proc.h                |   27 ++
src/include/catalog/pg_tablesample_method.h  |   78 ++++++
src/include/executor/nodeSamplescan.h        |   24 ++
src/include/nodes/execnodes.h                |    9 +
src/include/nodes/nodes.h                    |    4 +
src/include/nodes/parsenodes.h               |   37 +++
src/include/nodes/plannodes.h                |    6 +
src/include/optimizer/cost.h                 |    1 +
src/include/optimizer/pathnode.h             |    2 +
src/include/parser/kwlist.h                  |    1 +
src/include/parser/parse_func.h              |    5 +
src/include/port.h                           |    4 +
src/include/utils/lsyscache.h                |    1 +
src/include/utils/rel.h                      |    1 -
src/include/utils/sampling.h                 |   15 +-
src/include/utils/syscache.h                 |    2 +
src/port/erand48.c                           |    3 -
src/test/regress/expected/rowsecurity.out    |   26 ++
src/test/regress/expected/sanity_check.out   |    1 +
src/test/regress/expected/tablesample.out    |  231 ++++++++++++++++
src/test/regress/parallel_schedule           |    2 +-
src/test/regress/serial_schedule             |    1 +
src/test/regress/sql/rowsecurity.sql         |    4 +
src/test/regress/sql/tablesample.sql         |   74 ++++++
66 files changed, 2756 insertions(+), 40 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: pgsql: Silence create_index regression test failure.
Следующее
От: Robert Haas
Дата:
Сообщение: pgsql: doc: CREATE FOREIGN TABLE now allows CHECK ( ... ) NO INHERIT