﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
26506	Implement support for TABLESAMPLE	Nick Pope	nobody	"PostgreSQL 9.5 added support for the `TABLESAMPLE` feature from the SQL:2003 standard. It would be useful to add support for this to Django.

For PostgreSQL it would also be good to support the custom `tsm_system_rows` and `tsm_system_time` extensions to provide `SYSTEM_ROWS` and `SYSTEM_TIME` in addition to `BERNOULLI` and `SYSTEM` defined in the standard.

Note that `TABLESAMPLE` can also be used to update or delete only a sample of rows.

I suggest adding `.tablesample(method, value[, seed])` to `QuerySet` where:

- `method` is one of `bernoulli`, `system`, `rows` or `time`,
- `value` is the percentage, count or time argument to pass,
- `seed` is the value to use for the `REPEATABLE` option.

Note that `seed` should not be allowed with `rows` or `time` methods -- see links to extension documentation below.

Minimum versions for supported databases:

- PostgreSQL 9.5
- Microsoft SQL Server 2005 -- only supports `system` (percent) and `rows` (count)

References:

- http://www.neilconway.org/talks/hacking/ottawa/sql_standard.pdf
- https://wiki.postgresql.org/wiki/TABLESAMPLE_Implementation
- http://blog.2ndquadrant.com/tablesample-in-postgresql-9-5-2/
- http://www.depesz.com/2015/05/23/waiting-for-9-5-tablesample-sql-standard-and-extensible/
- http://www.postgresql.org/docs/9.5/static/tsm-system-time.html
- http://www.postgresql.org/docs/9.5/static/tsm-system-rows.html
- https://msdn.microsoft.com/en-us/library/ms189108(v=sql.105).aspx"	New feature	new	Database layer (models, ORM)	dev	Normal		tablesample	pembo13@…	Accepted	0	0	0	0	0	0
