JSON is a nice format to store data and it has become quite prevalent. If we are not overwhelmed by the diversity of JSON now, we soon will be. There will be more JSON, of more different shapes, as the number of connected devices and the information they generate continues to increase. Unfortunately, databases do not handle it well, often a human is required to declare a schema that can hold the JSON before it can be queried.
Created a Python SQLite connector to store JSON documents in SQLite so that they are accessible via SQL(using JSON Query Expressions). This will serve a basis for a general document-relational map(DRM), and leverage the database’s query optimizer. It is also responsible for making the schema and changing it dynamically as new JSON schema are encountered and to ensure that the old queries against the new schema have the same meaning.
There is a test suite to confirm the expected behaviour: testing a variety of JSON forms and the queries that can be performed on them. Most tests are further split into three different output formats: list, table and cube. There is also a connector for Elastisearch and these two will be merged sometime in future.