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
--
Ticket URL: <https://code.djangoproject.com/ticket/26506>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_docs: => 0
* needs_tests: => 0
* stage: Unreviewed => Accepted
Comment:
Before doing any coding, please create a thread on the
DevelopersMailingList to get feedback on the proposed APIs and add a link
to it in this ticket.
--
Ticket URL: <https://code.djangoproject.com/ticket/26506#comment:1>
* cc: pembo13@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/26506#comment:2>