#36718: Enable JSON negative indexing for Oracle 21c+ using [last-N]
-------------------------------------+-------------------------------------
     Reporter:  Clifford Gama        |                     Type:  New
                                     |  feature
       Status:  new                  |                Component:  Database
                                     |  layer (models, ORM)
      Version:  dev                  |                 Severity:  Normal
     Keywords:  JSONField array      |             Triage Stage:
  negative indexing                  |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
 Follow up to #36085 which added negative indexing for sqlite (as a new
 feature for 6.0).

 While doing some reading on JSON queries on Oracle, I found that you
 [https://docs.oracle.com/en/database/oracle/oracle-database/21/adjsn/json-
 path-expressions.html can index elements from the right] by using
 `[last-N]`.

 > An array index can also have the form last - N, where - is a minus sign
 (hyphen) and N is a literal whole number (0, 1, 2,…) that is no greater
 than the array size minus 1. The next-to-last array element can be
 referenced using index last-1, the second-to-last by index last-2, and so
 on. Whitespace surrounding the minus sign (hyphen) is ignored.

 I think we can use this to support negative indexing on Oracle versions
 that support `[last-N]`. Currently, trying to do so raises a
 `NotSupportedError` per #36085 which was focused on sqlite.

 I can't find Oracle release notes specifying when [last-N] indexing was
 added, but the note I quoted is only available in 21c+ docs.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36718>
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 view this discussion visit 
https://groups.google.com/d/msgid/django-updates/0107019a640146a8-86a445f4-1e32-466b-a791-2fc474c95245-000000%40eu-central-1.amazonses.com.

Reply via email to