#26506: Implement support for TABLESAMPLE
----------------------------------------------+-------------------------
Reporter: pope1ni | Owner: nobody
Type: New feature | Status: new
Component: Database layer (models, ORM) | Version: master
Severity: Normal | Keywords: tablesample
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------------------+-------------------------
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
--
Ticket URL: <https://code.djangoproject.com/ticket/26506>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/050.0ce3d0f001baedd5170ba601766d0a1d%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.