From 67720d19a5f1880862deb044ee5862b4953aeb55 Mon Sep 17 00:00:00 2001 From: Ghislain Fourny Date: Thu, 18 Jun 2026 11:08:01 +0200 Subject: [PATCH 1/5] Version bump. --- README.md | 4 ++++ pyproject.toml | 2 +- src/jsoniq/jars/rumbledb-2.1.7.jar | 3 --- src/jsoniq/jars/rumbledb-2.1.8.jar | 3 +++ 4 files changed, 8 insertions(+), 4 deletions(-) delete mode 100644 src/jsoniq/jars/rumbledb-2.1.7.jar create mode 100644 src/jsoniq/jars/rumbledb-2.1.8.jar diff --git a/README.md b/README.md index c8204dc..58a7a06 100644 --- a/README.md +++ b/README.md @@ -336,6 +336,10 @@ Even more queries can be found [here](https://colab.research.google.com/github/R # Latest updates +## Version 2.1.8 +- The order of the columns in output DataFrames were occasionally reshuffled. This new version keeps the column order more stable. +- Further improvements supporting built-in function and improved XML/XQuery 3.1 support. + ## Version 2.1.7 - Extend data frame detection to the presence of JSON nulls. - Many improvements supporting built-in function and improved XML/XQuery 3.1 support. diff --git a/pyproject.toml b/pyproject.toml index 5befc6f..228cb8e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "jsoniq" -version = "2.1.7" +version = "2.1.8" description = "Python edition of RumbleDB, a JSONiq engine" requires-python = ">=3.11" dependencies = [ diff --git a/src/jsoniq/jars/rumbledb-2.1.7.jar b/src/jsoniq/jars/rumbledb-2.1.7.jar deleted file mode 100644 index 40745ef..0000000 --- a/src/jsoniq/jars/rumbledb-2.1.7.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:250c001e4fa5b3b4d5dfd0795a0ae0a7dbbd172357187afc106b0473acaa24d7 -size 79699525 diff --git a/src/jsoniq/jars/rumbledb-2.1.8.jar b/src/jsoniq/jars/rumbledb-2.1.8.jar new file mode 100644 index 0000000..3a15a98 --- /dev/null +++ b/src/jsoniq/jars/rumbledb-2.1.8.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ef6213de358698daf6bd5ab43b7747ff74cda4c7d30226b1f3886f813c77f01 +size 79729772 From f3e4860a77f1f2ada18345103e477192433f81a4 Mon Sep 17 00:00:00 2001 From: Ghislain Fourny Date: Thu, 18 Jun 2026 11:09:46 +0200 Subject: [PATCH 2/5] Upgrade Spark. --- README.md | 1 + pyproject.toml | 2 +- requirements.txt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 58a7a06..9123be5 100644 --- a/README.md +++ b/README.md @@ -339,6 +339,7 @@ Even more queries can be found [here](https://colab.research.google.com/github/R ## Version 2.1.8 - The order of the columns in output DataFrames were occasionally reshuffled. This new version keeps the column order more stable. - Further improvements supporting built-in function and improved XML/XQuery 3.1 support. +- Update to Spark 4.0.3. ## Version 2.1.7 - Extend data frame detection to the presence of JSON nulls. diff --git a/pyproject.toml b/pyproject.toml index 228cb8e..a5692b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ version = "2.1.8" description = "Python edition of RumbleDB, a JSONiq engine" requires-python = ">=3.11" dependencies = [ - "pyspark==4.0.2", + "pyspark==4.0.3", "pandas>=2.2", "delta-spark==4.0" ] diff --git a/requirements.txt b/requirements.txt index f57f203..bc4a2fc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -pyspark==4.0.2 +pyspark==4.0.3 pandas==2.3 From 1f61c8f59b9fbe79294f526c935ba6adc83fa6e1 Mon Sep 17 00:00:00 2001 From: Ghislain Fourny Date: Thu, 18 Jun 2026 11:12:08 +0200 Subject: [PATCH 3/5] Add sentence to documentation. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9123be5..f352060 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ This is the Python edition of [RumbleDB](https://rumbledb.org/), which brings [JSONiq](https://www.jsoniq.org) to the world of Python. +The Python edition is relatively recent. In many cases, `pip install jsoniq` just works. In some other instances (e.g., another version of Spark is installed locally), it might be unstable. We welcome feedback to improve the installation experience. + JSONiq is a language considerably more powerful than SQL as it can process [messy, heterogeneous datasets](https://arxiv.org/abs/1910.11582), from kilobytes to Petabytes, with very little coding effort. Spark aficionados can also pass DataFrames to JSONiq queries and take back DataFrames. This gives them an environment in which both Spark SQL and JSONiq co-exist to manipulate the data. From 6b1482c92e49430166a3fda18a6528228a0ef4a0 Mon Sep 17 00:00:00 2001 From: Ghislain Fourny Date: Thu, 18 Jun 2026 11:12:43 +0200 Subject: [PATCH 4/5] Add link to tutorial. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f352060..07bdd0e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ This is the Python edition of [RumbleDB](https://rumbledb.org/), which brings [JSONiq](https://www.jsoniq.org) to the world of Python. +[See in action](https://colab.research.google.com/github/RumbleDB/rumble/blob/master/RumbleSandbox.ipynb)! + The Python edition is relatively recent. In many cases, `pip install jsoniq` just works. In some other instances (e.g., another version of Spark is installed locally), it might be unstable. We welcome feedback to improve the installation experience. JSONiq is a language considerably more powerful than SQL as it can process [messy, heterogeneous datasets](https://arxiv.org/abs/1910.11582), from kilobytes to Petabytes, with very little coding effort. From 74634d9880b3822298fac08383c1acb88c2ba515 Mon Sep 17 00:00:00 2001 From: Ghislain Fourny Date: Thu, 18 Jun 2026 15:06:08 +0200 Subject: [PATCH 5/5] Change jar version in the code. --- src/jsoniq/session.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jsoniq/session.py b/src/jsoniq/session.py index f86002d..163c9dd 100644 --- a/src/jsoniq/session.py +++ b/src/jsoniq/session.py @@ -7,7 +7,7 @@ import pandas as pd from importlib.resources import files, as_file -with as_file(files("jsoniq.jars").joinpath("rumbledb-2.1.7.jar")) as jar_path: +with as_file(files("jsoniq.jars").joinpath("rumbledb-2.1.8.jar")) as jar_path: if (os.name == 'nt'): jar_path_str = str(jar_path) else: