#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.

Reply via email to