Opened 6 years ago

Last modified 13 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, 6 years ago

Summary: Poor Window Support for RowRange FramesAdd window support for RowRange frames
Triage Stage: UnreviewedAccepted
Type: UncategorizedNew feature

comment:3 by Mariusz Felisiak, 6 years ago

Description: modified (diff)
Version: 2.1master

comment:5 by Mariusz Felisiak, 5 years ago

Description: modified (diff)

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

comment:6 by Mariusz Felisiak, 4 years ago

Keywords: GSoC added

comment:7 by Manav Agarwal, 4 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, 3 years ago

Cc: Raphael Michel Mads Jensen added

comment:9 by John Speno, 2 years ago

Cc: John Speno added

comment:10 by Mariusz Felisiak, 22 months ago

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