#33548: Use -> operator to implement KeyTransform on SQLite 3.38+
-------------------------------------+-------------------------------------
     Reporter:  Sage Abdullah        |                    Owner:
         Type:                       |  rajdesai24
  Cleanup/optimization               |                   Status:  assigned
    Component:  Database layer       |                  Version:  dev
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  sqlite jsonfield     |             Triage Stage:  Accepted
  keytransform                       |
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by rajdesai24):

 I am quite new to this topic but based on what I can understand how about
 we put a simple version check and return the value accordingly
 something like the following which checks the version and returns the
 value accordingly.
 {{{
         if connection.sqlite_version >= '3.38':
                     return (
                     "(CASE WHEN JSON_TYPE(%s, %%s) IN (%s) "
                     "THEN JSON_TYPE(%s, %%s) ELSE (%s ->> %%s) END)"
                     ) % (lhs, datatype_values, lhs, lhs), (tuple(params) +
 (json_path,)) * 3

         else:
             return (
             "(CASE WHEN JSON_TYPE(%s, %%s) IN (%s) "
             "THEN JSON_TYPE(%s, %%s) ELSE JSON_EXTRACT(%s, %%s) END)"
             ) % (lhs, datatype_values, lhs, lhs), (tuple(params) +
 (json_path,)) * 3


 }}}
 This might make it redundant but please let me know of any suggestions.
 Till then I will dive deeper

-- 
Ticket URL: <https://code.djangoproject.com/ticket/33548#comment:4>
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 django-updates+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/010701863d083ebe-9452f15f-9e82-48ff-bc55-3c4d4da5f5a0-000000%40eu-central-1.amazonses.com.

Reply via email to