diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix index d4d45713de25..683ea7b867ab 100644 --- a/pkgs/development/libraries/duckdb/default.nix +++ b/pkgs/development/libraries/duckdb/default.nix @@ -17,29 +17,15 @@ let in stdenv.mkDerivation rec { pname = "duckdb"; - version = "0.4.0"; + version = "0.5.0"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "sha256-pQ/t26dv9ZWLl0MHcAn0sgxryW2T2hM8XyOkXyfC5CY="; + sha256 = "sha256-dU8JXb++8OMEokr+4OyxLvcEc0vmdBvKDLxjeaWNkq0="; }; - patches = [ - ./version.patch - (fetchpatch { - name = "fix-tpce-test.patch"; - url = "https://github.com/duckdb/duckdb/commit/82e13a4bb9f0683af6c52468af2fb903cce4286d.patch"; - sha256 = "sha256-m0Bs0DOJQtkadbKZKk88NHyBFJkjxXUsiWYciuRIJLU="; - }) - (fetchpatch { - name = "fix-list-type-metadata.patch"; - url = "https://github.com/duckdb/duckdb/commit/26d123fdc57273903573c72b1ddafc52f365e378.patch"; - sha256 = "sha256-ttqs5EjeSLhZQOXc43Y5/N5IYSESQTD1FZWV1uJ15Fo="; - }) - ]; - postPatch = '' substituteInPlace CMakeLists.txt --subst-var-by DUCKDB_VERSION "v${version}" ''; @@ -52,8 +38,6 @@ stdenv.mkDerivation rec { "-DBUILD_JSON_EXTENSION=ON" "-DBUILD_ODBC_DRIVER=${enableFeature withOdbc}" "-DBUILD_PARQUET_EXTENSION=ON" - "-DBUILD_REST=ON" - "-DBUILD_SUBSTRAIT_EXTENSION=ON" "-DBUILD_TPCDS_EXTENSION=ON" "-DBUILD_TPCE=ON" "-DBUILD_TPCH_EXTENSION=ON" @@ -63,7 +47,9 @@ stdenv.mkDerivation rec { doInstallCheck = true; - preInstallCheck = lib.optionalString stdenv.isDarwin '' + preInstallCheck = '' + export HOME="$(mktemp -d)" + '' + lib.optionalString stdenv.isDarwin '' export DYLD_LIBRARY_PATH="$out/lib''${DYLD_LIBRARY_PATH:+:}''${DYLD_LIBRARY_PATH}" ''; diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix index aa3610622b63..afe9b98d0745 100644 --- a/pkgs/development/python-modules/duckdb-engine/default.nix +++ b/pkgs/development/python-modules/duckdb-engine/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "duckdb-engine"; - version = "0.5.0"; + version = "0.6.4"; format = "pyproject"; disabled = pythonOlder "3.7"; @@ -21,8 +21,8 @@ buildPythonPackage rec { src = fetchFromGitHub { repo = "duckdb_engine"; owner = "Mause"; - rev = "refs/tags/v${version}"; - hash = "sha256-6bR2pt7gUHZu4I7VmJgVsFT9u3/e4c9RAKHHlbX/Tyk="; + rev = "v${version}"; + hash = "sha256-7PfrI4bNz0XtBa/cb8T43j06BJ3B2S5zIyBZsEusyXc="; }; nativeBuildInputs = [ @@ -34,6 +34,15 @@ buildPythonPackage rec { sqlalchemy ]; + preCheck = '' + export HOME="$(mktemp -d)" + ''; + + # this test tries to download the httpfs extension + disabledTests = [ + "test_preload_extension" + ]; + checkInputs = [ pytestCheckHook hypothesis diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix index 3638ee3d3e48..87f2eb692620 100644 --- a/pkgs/development/python-modules/ibis-framework/default.nix +++ b/pkgs/development/python-modules/ibis-framework/default.nix @@ -36,11 +36,12 @@ , python , pytz , regex +, rich , rsync , shapely , sqlalchemy +, sqlglot , sqlite -, tabulate , toolz }: let @@ -62,7 +63,7 @@ in buildPythonPackage rec { pname = "ibis-framework"; - version = "3.1.0"; + version = "3.2.0"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -71,18 +72,9 @@ buildPythonPackage rec { repo = "ibis"; owner = "ibis-project"; rev = version; - hash = "sha256-/mQWQLiJa1DRZiyiA6F0/lMyn3wSY1IUwJl2S0IFkvs="; + hash = "sha256-YRP1nGJs4btqXQirm0GfEDKNPCVXexVrwQ6sE8JtD2o="; }; - patches = [ - (fetchpatch { - name = "xfail-datafusion-0.4.0"; - url = "https://github.com/ibis-project/ibis/compare/c162abba4df24e0d531bd2e6a3be3109c16b43b9...6219d6caee19b6fd3171983c49cd8d6872e3564b.patch"; - hash = "sha256-pCYPntj+TwzqCtYWRf6JF5/tJC4crSXHp0aepRocHck="; - excludes = ["poetry.lock"]; - }) - ]; - nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ @@ -96,7 +88,7 @@ buildPythonPackage rec { pydantic pytz regex - tabulate + rich toolz ]; @@ -131,7 +123,9 @@ buildPythonPackage rec { set -eo pipefail export IBIS_TEST_DATA_DIRECTORY - IBIS_TEST_DATA_DIRECTORY="$(mktemp -d)" + IBIS_TEST_DATA_DIRECTORY="ci/ibis-testing-data" + + mkdir -p "$IBIS_TEST_DATA_DIRECTORY" # copy the test data to a directory rsync --chmod=Du+rwx,Fu+rw --archive "${ibisTestingData}/" "$IBIS_TEST_DATA_DIRECTORY" @@ -147,16 +141,16 @@ buildPythonPackage rec { passthru = { optional-dependencies = { - clickhouse = [ clickhouse-cityhash clickhouse-driver lz4 ]; + clickhouse = [ clickhouse-cityhash clickhouse-driver lz4 sqlglot ]; dask = [ dask pyarrow ]; datafusion = [ datafusion ]; - duckdb = [ duckdb duckdb-engine sqlalchemy ]; + duckdb = [ duckdb duckdb-engine pyarrow sqlalchemy sqlglot ]; geospatial = [ geoalchemy2 geopandas shapely ]; - mysql = [ pymysql sqlalchemy ]; + mysql = [ sqlalchemy pymysql sqlglot ]; pandas = [ ]; - postgres = [ psycopg2 sqlalchemy ]; + postgres = [ psycopg2 sqlalchemy sqlglot ]; pyspark = [ pyarrow pyspark ]; - sqlite = [ sqlalchemy sqlite ]; + sqlite = [ sqlalchemy sqlite sqlglot ]; visualization = [ graphviz-nox ]; }; }; diff --git a/pkgs/development/python-modules/sqlglot/default.nix b/pkgs/development/python-modules/sqlglot/default.nix new file mode 100644 index 000000000000..4a540b978392 --- /dev/null +++ b/pkgs/development/python-modules/sqlglot/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, pytestCheckHook +, python-dateutil +, duckdb +}: +buildPythonPackage rec { + pname = "sqlglot"; + version = "6.0.7"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + repo = "sqlglot"; + owner = "tobymao"; + rev = "v${version}"; + hash = "sha256-7PBhf9NN/mCi92xSkB9ygfmfxTyOYaEyrNvL309sG5Y="; + }; + + propagatedBuildInputs = [ python-dateutil ]; + + checkInputs = [ pytestCheckHook duckdb ]; + + pythonImportsCheck = [ "sqlglot" ]; + + meta = with lib; { + description = "A no dependency Python SQL parser, transpiler, and optimizer"; + homepage = "https://github.com/tobymao/sqlglot"; + license = licenses.mit; + maintainers = with maintainers; [ cpcloud ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7bbbe1b301a8..056263b2f6f3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10480,6 +10480,8 @@ in { sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { }; + sqlglot = callPackage ../development/python-modules/sqlglot { }; + sqlitedict = callPackage ../development/python-modules/sqlitedict { }; sqlite-fts4 = callPackage ../development/python-modules/sqlite-fts4 { };