]> granicus.if.org Git - postgresql/commit
TABLESAMPLE, SQL Standard and extensible
authorSimon Riggs <simon@2ndQuadrant.com>
Fri, 15 May 2015 18:37:10 +0000 (14:37 -0400)
committerSimon Riggs <simon@2ndQuadrant.com>
Fri, 15 May 2015 18:37:10 +0000 (14:37 -0400)
commitf6d208d6e51810c73f0e02c477984a6b44627f11
tree99d540d0b7bda73ff60479f15444f554403d4679
parent11a83bbedd73800db70f6f2af5a8eb10d15d39d7
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
66 files changed:
contrib/file_fdw/file_fdw.c
contrib/postgres_fdw/postgres_fdw.c
doc/src/sgml/catalogs.sgml
doc/src/sgml/ref/select.sgml
src/backend/access/Makefile
src/backend/access/heap/heapam.c
src/backend/access/tablesample/Makefile [new file with mode: 0644]
src/backend/access/tablesample/bernoulli.c [new file with mode: 0644]
src/backend/access/tablesample/system.c [new file with mode: 0644]
src/backend/access/tablesample/tablesample.c [new file with mode: 0644]
src/backend/catalog/Makefile
src/backend/commands/analyze.c
src/backend/commands/explain.c
src/backend/executor/Makefile
src/backend/executor/execAmi.c
src/backend/executor/execCurrent.c
src/backend/executor/execProcnode.c
src/backend/executor/nodeSamplescan.c [new file with mode: 0644]
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/nodeFuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/plan/setrefs.c
src/backend/optimizer/plan/subselect.c
src/backend/optimizer/util/pathnode.c
src/backend/parser/gram.y
src/backend/parser/parse_clause.c
src/backend/parser/parse_func.c
src/backend/rewrite/rewriteHandler.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/cache/lsyscache.c
src/backend/utils/cache/syscache.c
src/backend/utils/misc/sampling.c
src/include/access/heapam.h
src/include/access/relscan.h
src/include/access/tablesample.h [new file with mode: 0644]
src/include/catalog/indexing.h
src/include/catalog/pg_proc.h
src/include/catalog/pg_tablesample_method.h [new file with mode: 0644]
src/include/executor/nodeSamplescan.h [new file with mode: 0644]
src/include/nodes/execnodes.h
src/include/nodes/nodes.h
src/include/nodes/parsenodes.h
src/include/nodes/plannodes.h
src/include/optimizer/cost.h
src/include/optimizer/pathnode.h
src/include/parser/kwlist.h
src/include/parser/parse_func.h
src/include/port.h
src/include/utils/lsyscache.h
src/include/utils/rel.h
src/include/utils/sampling.h
src/include/utils/syscache.h
src/port/erand48.c
src/test/regress/expected/rowsecurity.out
src/test/regress/expected/sanity_check.out
src/test/regress/expected/tablesample.out [new file with mode: 0644]
src/test/regress/parallel_schedule
src/test/regress/serial_schedule
src/test/regress/sql/rowsecurity.sql
src/test/regress/sql/tablesample.sql [new file with mode: 0644]