I would also be very interested in helping out. I don’t know if this is useful, but I’ve had a brief look at the feature support compared to our current baseline Postgres features:
MySQL: https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html - JSON_CONTAINS_PATH() can implement most of our has_* filtering, and we can also do array index lookups. Will need to convert lookups to path expressions. There also appears to be some nastiness relating to quoting we may need to take care of. Also supports partial updating of JSON columns. The ->> operator can be used for filtering. Sqlite: https://www.sqlite.org/json1.html - Some trickiness, sqlite preserves json objects with duplicate keys. Can do simple queries using json_extract(), but we may need to use json_each() for some lookups (which adds a bit of complexity). Supports updating values in-place as well. Oracle: https://docs.oracle.com/en/database/oracle/oracle-database/18/adjsn/query-json-data.html#GUID–119E5069–77F2–45DC-B6F0-A1B312945590 - Seems to support nesting lookups without needing a path expression, i.e SELECT json_field.some_key.some_value FROM table. Supports functions that take JSON paths as well so perhaps it’s easier to use those. Supports updating in place. It seems while all 4 backends support at least the minimum feature set Postgres does, they do so in pretty different ways (different functions, different arguments, etc). On 4 October 2018 at 19:47:03, Adam Johnson (m...@adamj.eu) wrote: I'd be up for helping with a database-agnostic one. One thing to note about MySQL world is that MariaDB diverges more from MySQL here and I haven't found the time to fix the differences here in Django-MySQL's JSONField. I'd get on with it if I knew someone needed the work for a DB-agnostic field though ;) On Thu, 4 Oct 2018 at 12:31, Carlton Gibson <carlton.gib...@gmail.com> wrote: > Sorry, what I meant was a Django field. (I wasn't clear enough.) > > Charles Leifer has good posts covering SQLite+JSON > http://charlesleifer.com/ > His Peewee ORM has a JSONField > http://docs.peewee-orm.com/en/latest/peewee/sqlite_ext.html#sqlite-ext > > I was just wondering if someone knew if someone had already wrapped up a > Django equivalent? > > (If so we'd have reference implementations for all the supported DBs...) > > On Thursday, 4 October 2018 13:12:42 UTC+2, Jon Dufresne wrote: >> >> > Anyone know of an SQLite implementation? >> >> A quick search shows the JSON1 extensions exists: >> https://www.sqlite.org/json1.html >> >> According to the release history (https://sqlite.org/changes.html) this >> was added in version 3.9.0 (2015-10-14). >> >> But I have no direct experience working with it. >> >> On Thu, Oct 4, 2018 at 12:19 AM Carlton Gibson <carlton...@gmail.com> >> wrote: >> >>> This has come up again, with an example implementation for Oracle: >>> >>> https://code.djangoproject.com/ticket/29821 >>> >>> Anyone know of an SQLite implementation? >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django developers (Contributions to Django itself)" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to django-develop...@googlegroups.com. >>> To post to this group, send email to django-d...@googlegroups.com. >>> Visit this group at https://groups.google.com/group/django-developers. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-developers/215a0e1c-6947-4375-ba1d-38d310c32411%40googlegroups.com >>> <https://groups.google.com/d/msgid/django-developers/215a0e1c-6947-4375-ba1d-38d310c32411%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > You received this message because you are subscribed to the Google Groups > "Django developers (Contributions to Django itself)" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to django-developers+unsubscr...@googlegroups.com. > To post to this group, send email to django-developers@googlegroups.com. > Visit this group at https://groups.google.com/group/django-developers. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-developers/593cb04e-6de6-4ccd-9b8d-d175f95d970f%40googlegroups.com > <https://groups.google.com/d/msgid/django-developers/593cb04e-6de6-4ccd-9b8d-d175f95d970f%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Adam -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To post to this group, send email to django-developers@googlegroups.com. Visit this group at https://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAMyDDM2qz8xTL388_LZ8Eoqnm80bcFt_W%2Bu3axcC%2BC7g52PUHQ%40mail.gmail.com <https://groups.google.com/d/msgid/django-developers/CAMyDDM2qz8xTL388_LZ8Eoqnm80bcFt_W%2Bu3axcC%2BC7g52PUHQ%40mail.gmail.com?utm_medium=email&utm_source=footer> . For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To post to this group, send email to django-developers@googlegroups.com. Visit this group at https://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFNZOJPA8F6k8Qyk7jYYiqb98F1xYwEeBRJw0UPqfVhgt238bA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.