Matthew Schinckel avatar Matthew Schinckel committed 72828f4

Postgres 9.2 cannot query against json fields.
We now test if we can run a query, and use that result. Expected that
every db will currently return 'text'.

Comments (0)

Files changed (2)

 History
 ----------
 
-0.9.1
+0.9.3
 ~~~~~
-Add support for storing data using Postgres' 9.2's JSON data type.
+Remove support for storing data using Postgres' 9.2's JSON data type, as
+you cannot currently query against this!
 
 
 0.9.0

jsonfield/fields.py

         return 'TextField'
     
     def db_type(self, connection):
-        # Test to see if we support JSON
+        # Test to see if we support JSON querying.
+        # (Protip: nothing does, at this stage).
         cursor = connection.cursor()
         try:
             sid = transaction.savepoint()
-            cursor.execute('SELECT \'{"a":"json object"}\'::json;')
+            cursor.execute('SELECT \'{}\'::json = \'{}\'::json;')
         except DatabaseError:
             transaction.savepoint_rollback(sid)
             return 'text'
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.