Opened 10 years ago
Last modified 10 years ago
#26506 new New feature
Implement support for TABLESAMPLE
| Reported by: | Nick Pope | Owned by: | nobody |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | dev |
| Severity: | Normal | Keywords: | tablesample |
| Cc: | pembo13@… | Triage Stage: | Accepted |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
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:
methodis one ofbernoulli,system,rowsortime,valueis the percentage, count or time argument to pass,seedis the value to use for theREPEATABLEoption.
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) androws(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
Change History (2)
comment:1 by , 10 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:2 by , 10 years ago
| Cc: | added |
|---|
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.