Package: jx-sqlite
jx-sqliteJSON query expressions using SQLiteSummaryThis library will manage your database schema to store JSON documents. You get all the speed of a well-formed database schema without the schema migration headaches.StatusSignificant updates to the supporting libraries has broken this code.  It still works for the simple cases that require itJan 2024- 118 of 334 tests ignoredInstallationpip install jx-sqliteCode ExampleThe smoke test, found in thetestsis a simple example of how to use this library.importjx_sqlitetable=(jx_sqlite.Container(filename="my.db").get_or_create_facts("my_table").insert([{"os":"linux","value":42}]).query({"select":"os","where":{"gt":{"value":0}}}))MoreThis project is an attempt to store JSON documents in SQLite so that they are accessible via SQL. The hope is this will serve a basis for a general document-relational map (DRM), and leverage the database's query optimizer.jx-sqliteis responsible for expanding the schema dynamically as new JSON documents are encountered.  It also strives to ensure old queries against the new schema have the same meaning; the same results.The most interesting, and most important feature is that we query nested object arrays as if they were just another table.  This is important for two reasons:Inner objects{"a": {"b": 0}}are a shortcut for nested arrays{"a": [{"b": 0}]}, plusSchemas can be expanded from one-to-one  to one-to-many{"a": [{"b": 0}, {"b": 1}]}.MotivationJSON is a nice format to store data, and it has become quite prevalent. 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. 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.ContributingContributions are always welcome! The best thing to do is find a failing test, and try to fix it.These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.$ git clone https://github.com/klahnakoski/jx-sqlite
$ cd jx-sqliteRunning testsThere are over 300 tests used to confirm the expected behaviour: They test 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).export PYTHONPATH=.
python -m unittest discover -v -s testsTechnical DocsJson Query ExpressionNomenclatureSnowflakeJSON in DatabaseThe FutureLicenseThis project is licensed under Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one athttp://mozilla.org/MPL/2.0/.HistoryJan 2024- Attempt to resurrect this project (118 of 334 tests ignored)Sep 2018- Upgrade libs, start refactoring to work with other libsDec 2017- A number of tests were added, but they do not pass.Sep 2017- GSoC work completed, all but a few tests pass.GSOCGood work by Rohit Kumar.  You may see the end result ongsoc branch.  Installation requires python2.7,  and will require some version fixing to get running.Seethe demonstration videoWork done up to the deadline of GSoC'17:Pull RequestsCommits