Opened 8 years ago

Last modified 23 months ago

#29850 closed New feature

Add window support for RowRange frames — at Version 10

Reported by: Daniel Fuchs Owned by: nobody
Component: Database layer (models, ORM) Version: dev
Severity: Normal Keywords: GSoC
Cc: Raphael Michel, Mads Jensen, John Speno Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Mariusz Felisiak)

The current RowRange frame is missing handling for several cases.

None of the following are currently supported:
RowRange(start=-2, end=-1)
ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING
RowRange(start=1, end=2)
ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING

It's also missing support for EXCLUDE.
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW


Frame exclusion is supported in ​PostgreSQL 11+, ​SQLite 3.28+, and ​Oracle 21c+ other databases do not support exclusion (​MariaDB doc, and ​MySQL doc).

Change History (8)

comment:1 by Tim Graham, 8 years ago

Summary: Poor Window Support for RowRange Frames → Add window support for RowRange frames
Triage Stage: Unreviewed → Accepted
Type: Uncategorized → New feature

comment:3 by Mariusz Felisiak, 8 years ago

Description: modified (diff)
Version: 2.1 → master

comment:5 by Mariusz Felisiak, 7 years ago

Description: modified (diff)

Exclusion is supported also on SQLite 3.28+ (see ​release notes).

comment:6 by Mariusz Felisiak, 6 years ago

Keywords: GSoC added

comment:7 by Manav Agarwal, 6 years ago

Is it a good idea to add an argument named as exclude in WindowFrame class in django.db.models.expressions? This argument will contain the F() value of the row/range to be excluded.

comment:8 by Mariusz Felisiak, 5 years ago

Cc: Raphael Michel Mads Jensen added

comment:9 by John Speno, 4 years ago

Cc: John Speno added

comment:10 by Mariusz Felisiak, 4 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top