浏览代码

Refs #26608 -- Added a database feature for fixed frame range distance support.

Simon Charette 6 年之前
父节点
当前提交
b8c48d06fa
共有 3 个文件被更改,包括 3 次插入2 次删除
  1. 1 0
      django/db/backends/base/features.py
  2. 1 0
      django/db/backends/oracle/features.py
  3. 1 2
      tests/expressions_window/tests.py

+ 1 - 0
django/db/backends/base/features.py

@@ -239,6 +239,7 @@ class BaseDatabaseFeatures:
 
     # Does the backend support window expressions (expression OVER (...))?
     supports_over_clause = False
+    supports_frame_range_fixed_distance = False
 
     # Does the backend support CAST with precision?
     supports_cast_with_precision = True

+ 1 - 0
django/db/backends/oracle/features.py

@@ -52,6 +52,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
     """
     supports_callproc_kwargs = True
     supports_over_clause = True
+    supports_frame_range_fixed_distance = True
     supports_ignore_conflicts = False
     max_query_params = 2**16 - 1
     supports_partial_indexes = False

+ 1 - 2
tests/expressions_window/tests.py

@@ -536,8 +536,7 @@ class WindowFunctionTests(TestCase):
             ('Brown', 53000, 'Sales', datetime.date(2009, 9, 1), 108000),
         ], transform=lambda row: (row.name, row.salary, row.department, row.hire_date, row.sum))
 
-    @skipIf(connection.vendor == 'postgresql', 'n following/preceding not supported by PostgreSQL')
-    @skipIf(connection.vendor == 'sqlite', 'n following/preceding not supported by SQLite')
+    @skipUnlessDBFeature('supports_frame_range_fixed_distance')
     def test_range_n_preceding_and_following(self):
         qs = Employee.objects.annotate(sum=Window(
             expression=Sum('salary'),