diff --git a/docs/release_notes_generated.qmd b/docs/release_notes_generated.qmd index c4ac3a7712b5..f963ac156136 100644 --- a/docs/release_notes_generated.qmd +++ b/docs/release_notes_generated.qmd @@ -1,6 +1,112 @@ --- --- +## [9.4.0](https://github.com/ibis-project/ibis/compare/9.3.0...9.4.0) (2024-09-03) + +### Features + +* **api:** add `approx_quantiles` for computing approximate quantiles ([dcdb7a7](https://github.com/ibis-project/ibis/commit/dcdb7a7f7de14be46f6852c7d5444ca776d32acb)) +* **api:** add `DateValue.epoch` api for computing days since epoch ([#9856](https://github.com/ibis-project/ibis/issues/9856)) ([8b0fb66](https://github.com/ibis-project/ibis/commit/8b0fb66795547b42998cceb485c525cb6e3a9a21)) +* **api:** make the `null` function deferrable ([0613ef1](https://github.com/ibis-project/ibis/commit/0613ef10bdf29612d3cb64080f48c0969a164eb5)) +* **api:** support `SchemaLike` in `Backend.create_table()` ([#9885](https://github.com/ibis-project/ibis/issues/9885)) ([949fbea](https://github.com/ibis-project/ibis/commit/949fbea8816c20d5eeedf71a6f30687df6892a4a)) +* **api:** support deferred objects in `literal` ([#9904](https://github.com/ibis-project/ibis/issues/9904)) ([0a07906](https://github.com/ibis-project/ibis/commit/0a079062abbf203277b41ff9e87435981022034e)) +* **clickhouse:** partition kwargs for compile and execution in `to_pyarrow` and `to_pandas` ([2dd2c3f](https://github.com/ibis-project/ibis/commit/2dd2c3f438c56596b0864c3ac8ab2869f34c667c)) +* **clickhouse:** support ms/us/ns truncate units ([9881edb](https://github.com/ibis-project/ibis/commit/9881edb0c84a919c1d76ae8af745406f76cc6bea)) +* **decompile:** make the decompiler run on TPCH query 1 ([#9779](https://github.com/ibis-project/ibis/issues/9779)) ([0268044](https://github.com/ibis-project/ibis/commit/0268044140d8a6571e86cdd7d67d9da8b9c850aa)) +* **exasol:** implement `approx_nunique`, `std`, `var` ([d9c3daa](https://github.com/ibis-project/ibis/commit/d9c3daa9c7fe202d02c516d5cd60910e96ca829a)) +* **exasol:** implement `approx_nunique`, `std`, `var` ([63c20c0](https://github.com/ibis-project/ibis/commit/63c20c0aeb026d05b592170f4d11afc7f828f260)) +* **exasol:** implement `cov`/`corr` ([24f41b2](https://github.com/ibis-project/ibis/commit/24f41b2dbfbf2be1f74f9af7761848b9cc2f2d2f)) +* **exasol:** implement `median` and `approx_median` ([3cfc344](https://github.com/ibis-project/ibis/commit/3cfc344facc63733689f6008c9153a6fb2d509dd)) +* **exasol:** implement `quantile` ([ecbef94](https://github.com/ibis-project/ibis/commit/ecbef9417dbbb7035feb076f495544900ce3c0d5)) +* **exasol:** implement `Table.nunique` ([a24200c](https://github.com/ibis-project/ibis/commit/a24200c897650c0bdc5f3fee66d2d1c84364ce2c)) +* **exasol:** implement `Table.nunique` ([7ead7c7](https://github.com/ibis-project/ibis/commit/7ead7c7c7e8637a14c5d9ee4588baed08d3eac7a)) +* **flink:** array sort ([ca85ae2](https://github.com/ibis-project/ibis/commit/ca85ae232c0d0bbcb4d3af1ae3134067b8171a64)) +* **flink:** support `ArrayValue.collect` ([eb857e6](https://github.com/ibis-project/ibis/commit/eb857e69e2fa156c521839c2be12dfd4f5141334)) +* **impala:** add `tbl_properties` to `create_table` ([#9839](https://github.com/ibis-project/ibis/issues/9839)) ([e3d02bd](https://github.com/ibis-project/ibis/commit/e3d02bdbb74366f1c46a3f44da2e31a0bd134cde)) +* **mssql:** support connecting with a url ([#9894](https://github.com/ibis-project/ibis/issues/9894)) ([8bb12e1](https://github.com/ibis-project/ibis/commit/8bb12e1fb7a0107a1081a6b670dedfa360a935cc)), closes [#9856](https://github.com/ibis-project/ibis/issues/9856) +* **oracle:** implement `mode` aggregation ([#9914](https://github.com/ibis-project/ibis/issues/9914)) ([9ee910d](https://github.com/ibis-project/ibis/commit/9ee910d7dc485bc718763aee4a8c304de97f775e)) +* **output-formats:** add support for to_parquet_dir ([#9781](https://github.com/ibis-project/ibis/issues/9781)) ([80dfbe2](https://github.com/ibis-project/ibis/commit/80dfbe27ff46971f839c50309c9b203c6f009f86)) +* **polars:** array sort ([9a2563b](https://github.com/ibis-project/ibis/commit/9a2563bf5a0ff498ec3054b8ca1a6f3c6fda1d48)) +* **polars:** implement approx_nunique ([3f3738d](https://github.com/ibis-project/ibis/commit/3f3738dccda4935799b1c5e4db0680ce16f8464d)) +* **pyspark:** support `quantile` ([26d8516](https://github.com/ibis-project/ibis/commit/26d851624bcae7160f84ee0bba88a3aa7853e110)) +* **selectors:** support naming deferreds in across ([de1595c](https://github.com/ibis-project/ibis/commit/de1595ca9a09421ac2944efeda12beeafdd281ac)) +* **snowflake:** implement interval arithmetic ([#9794](https://github.com/ibis-project/ibis/issues/9794)) ([41e10ca](https://github.com/ibis-project/ibis/commit/41e10cacae07e43f36690508bb67004deaf0120a)), closes [#9783](https://github.com/ibis-project/ibis/issues/9783) +* **sql:** enable cross-database joins ([#9849](https://github.com/ibis-project/ibis/issues/9849)) ([c3ff6ae](https://github.com/ibis-project/ibis/commit/c3ff6ae037c3e95ff071fdc356ac02fe8c7a1388)) +* **sql:** fuse `distinct` with other select nodes when possible ([c31412b](https://github.com/ibis-project/ibis/commit/c31412b16113eef868af4fe47825fbefdde5c1de)) +* **sqlite:** support most date/timestamp interval arithmetic ([75f594d](https://github.com/ibis-project/ibis/commit/75f594d484fdfea9674a87632f1610a185b15b75)) +* **sql:** load parsed but unsupported types as unknown ([#9868](https://github.com/ibis-project/ibis/issues/9868)) ([a76acfc](https://github.com/ibis-project/ibis/commit/a76acfc053f0b798cd6c1b7225fb86191369199c)) +* **sql:** support inserts with default constraints ([#9844](https://github.com/ibis-project/ibis/issues/9844)) ([86a3c06](https://github.com/ibis-project/ibis/commit/86a3c061da3c8817d82197257f673333f9f081ff)) +* **timestamps:** add support for timestamp/date +/- intervals for additional backends ([#9799](https://github.com/ibis-project/ibis/issues/9799)) ([79cef68](https://github.com/ibis-project/ibis/commit/79cef68df8cd969a157579e09d03c0fa77e2ae07)) +* **trino:** support years and months in datetime arithmetic ([1133973](https://github.com/ibis-project/ibis/commit/1133973eef4192e18e52371e806fb1c6079347c9)) +* **trino:** wrap `auth` strings with `BasicAuthentication` ([#9960](https://github.com/ibis-project/ibis/issues/9960)) ([e0f54c9](https://github.com/ibis-project/ibis/commit/e0f54c93d7d851239a1f7964d16fcd18285a2ee0)) + +### Bug Fixes + +* **bigquery:** disallow column names longer than 300 characters ([#9916](https://github.com/ibis-project/ibis/issues/9916)) ([ea97794](https://github.com/ibis-project/ibis/commit/ea977948d711b0d8446fe4d9ca90531df79123c4)), closes [#8931](https://github.com/ibis-project/ibis/issues/8931) +* **clickhouse:** workaround `EXCEPT` and `INTERSECT` generation in sqlglot; add tpcds query 87 ([#9959](https://github.com/ibis-project/ibis/issues/9959)) ([910b8f5](https://github.com/ibis-project/ibis/commit/910b8f540a659ffb24703869d7a3a65fe4985cdf)) +* **datafusion:** fix creation of SessionContext in datafusion 40.1.0 ([eec5328](https://github.com/ibis-project/ibis/commit/eec53286f2f11ea35a9bcf7bf7abc595e02efe97)) +* **datafusion:** handle `NULL`s in array `flatten` ([ecc199f](https://github.com/ibis-project/ibis/commit/ecc199faac1b5717108d82b0b47074e5c7771c4c)) +* **deps:** update dependency datafusion to v40 ([4aa402a](https://github.com/ibis-project/ibis/commit/4aa402a6d84eca553f1e693244e6e9c5c77e9ced)) +* **deps:** update dependency sqlglot to >=23.4,<25.11 ([#9805](https://github.com/ibis-project/ibis/issues/9805)) ([84bfeb5](https://github.com/ibis-project/ibis/commit/84bfeb5b8b3019f8d7968710a26bb9d17a7ffca4)) +* **deps:** update dependency sqlglot to >=23.4,<25.12 ([#9834](https://github.com/ibis-project/ibis/issues/9834)) ([69a10d9](https://github.com/ibis-project/ibis/commit/69a10d9184875c82941f0b5960d6feb39a8ee008)) +* **deps:** update dependency sqlglot to >=23.4,<25.13 ([#9851](https://github.com/ibis-project/ibis/issues/9851)) ([6780a6b](https://github.com/ibis-project/ibis/commit/6780a6b8c430eca07adee8918187e2260f3954f5)) +* **deps:** update dependency sqlglot to >=23.4,<25.15 ([#9864](https://github.com/ibis-project/ibis/issues/9864)) ([d182e9e](https://github.com/ibis-project/ibis/commit/d182e9e0e395ff5c1c11de87ff132800c64db1e8)) +* **deps:** update dependency sqlglot to >=23.4,<25.16 ([#9875](https://github.com/ibis-project/ibis/issues/9875)) ([0a6765b](https://github.com/ibis-project/ibis/commit/0a6765b664636fa7deccaead38a4ee2bd8548232)) +* **deps:** update dependency sqlglot to >=23.4,<25.17 ([#9907](https://github.com/ibis-project/ibis/issues/9907)) ([9e52edb](https://github.com/ibis-project/ibis/commit/9e52edbe0a6b57e6c22e86f6ebfedaaea6c7330c)) +* **deps:** update dependency sqlglot to >=23.4,<25.18 ([#9935](https://github.com/ibis-project/ibis/issues/9935)) ([ee5116d](https://github.com/ibis-project/ibis/commit/ee5116d7d8eab25484d8562a84a2ba016660558f)) +* **deps:** update dependency sqlglot to >=23.4,<25.19 ([#9962](https://github.com/ibis-project/ibis/issues/9962)) ([4c136d8](https://github.com/ibis-project/ibis/commit/4c136d887c898418caea53752ed7bc75731b47d4)) +* **dot-sql:** ensure that CTEs can be used in `.sql` ([b63e0fd](https://github.com/ibis-project/ibis/commit/b63e0fd3ed08e558e8b3012d6a41d03ecc58e231)) +* **duckdb:** fix create_table() in databases with spaces in the name ([#9817](https://github.com/ibis-project/ibis/issues/9817)) ([9da3c9f](https://github.com/ibis-project/ibis/commit/9da3c9fa922e05efe601efc86fd0466201d6a755)) +* **exasol:** properly handle returning BIGINT values ([e20bdad](https://github.com/ibis-project/ibis/commit/e20bdad2b1fe93f45def30b4f1323e66c2faf101)) +* **ir:** convert analytic functions to window functions in filters ([31295dd](https://github.com/ibis-project/ibis/commit/31295ddd3dac9d01e362c8b7aa8938ed668455d3)) +* **mssql:** remove sort key to keep order ([#9848](https://github.com/ibis-project/ibis/issues/9848)) ([3780a13](https://github.com/ibis-project/ibis/commit/3780a13a1eca456c873ae3a0a45588dfecb28e08)) +* **mssql:** support `.cache()` for caching tables ([1de2f45](https://github.com/ibis-project/ibis/commit/1de2f4581f070b3179a26cdd3e989a759ef47019)) +* **oracle:** avoid double cursor closing by removing unnecessary `close` in `_fetch_from_cursor` ([#9913](https://github.com/ibis-project/ibis/issues/9913)) ([a402095](https://github.com/ibis-project/ibis/commit/a402095b24ce3bfee42d8ecf794c1386a8b178eb)) +* **oracle:** implement current_catalog and current_database correctly ([#9918](https://github.com/ibis-project/ibis/issues/9918)) ([4fdb707](https://github.com/ibis-project/ibis/commit/4fdb7079a9fcdc1848829e0235bebe7b333cb6f1)) +* **pickle:** make `Parameter` instances pickleable ([#9798](https://github.com/ibis-project/ibis/issues/9798)) ([d772c80](https://github.com/ibis-project/ibis/commit/d772c80966a28eff31c5a036fb52038fde5bf096)), closes [#9793](https://github.com/ibis-project/ibis/issues/9793) +* **pivot-wider:** handle the case of empty `id_cols` ([#9912](https://github.com/ibis-project/ibis/issues/9912)) ([4a4bc64](https://github.com/ibis-project/ibis/commit/4a4bc6479100495d9f1e855e75f1584a81aa0ca1)) +* **polars:** use `drop_table` when cleaning the cache and remove duplicated `_remove_table` method ([#9922](https://github.com/ibis-project/ibis/issues/9922)) ([ce51941](https://github.com/ibis-project/ibis/commit/ce519416eae19c1d3d846ea266ab540b25a197de)) +* **polars:** use `flatten` API for `ArrayFlatten` implementation to avoid large string upcast ([#9997](https://github.com/ibis-project/ibis/issues/9997)) ([7a6af8d](https://github.com/ibis-project/ibis/commit/7a6af8db91e6909dd8073a6aaa332141c02be163)), closes [#9995](https://github.com/ibis-project/ibis/issues/9995) +* **pyspark:** suppress errors for unsupported Databricks serverless compute properties ([#9830](https://github.com/ibis-project/ibis/issues/9830)) ([57f5ff6](https://github.com/ibis-project/ibis/commit/57f5ff6c11269b55d4f39c9c05a09580af3ccaa2)) +* **repr:** format scalar values with same logic as columnar values ([5cd58fa](https://github.com/ibis-project/ibis/commit/5cd58fa207bec8d295ba5920197e09987143de41)) +* **rewrite:** avoid accumulating context state during rewriting ([#9814](https://github.com/ibis-project/ibis/issues/9814)) ([9165255](https://github.com/ibis-project/ibis/commit/916525589197359202f81cb033a29b7dd47a9064)) +* **strings:** correct a typo in `startswith` docstring ([#9994](https://github.com/ibis-project/ibis/issues/9994)) ([f98aec5](https://github.com/ibis-project/ibis/commit/f98aec5d5d63ffd170ab4c131865a708ee85b75b)), closes [#1000](https://github.com/ibis-project/ibis/issues/1000) [#2000](https://github.com/ibis-project/ibis/issues/2000) [#3000](https://github.com/ibis-project/ibis/issues/3000) +* **trino:** remove hack that silently breaks join transpilation ([#9941](https://github.com/ibis-project/ibis/issues/9941)) ([c842453](https://github.com/ibis-project/ibis/commit/c842453dc147ae1a9136b034f36147d7a81b5dbb)) +* **ux:** get rid of duplicated tracebacks ([#10002](https://github.com/ibis-project/ibis/issues/10002)) ([7df4bdd](https://github.com/ibis-project/ibis/commit/7df4bdd9ffc551fe39d249b17dfd60dca1ac43e9)) + +### Documentation + +* add aggregate-udfs api page to index ([#9789](https://github.com/ibis-project/ibis/issues/9789)) ([01dc81e](https://github.com/ibis-project/ibis/commit/01dc81e8617b02b486a81225ca96c9e59044013f)) +* **blog:** ibis + clickhouse + shiny for better pypi stats ([#9880](https://github.com/ibis-project/ibis/issues/9880)) ([4d8d352](https://github.com/ibis-project/ibis/commit/4d8d352023d0608abd609b227620029d7a3dd170)) +* **blog:** kaggle competition using IbisML ([#9505](https://github.com/ibis-project/ibis/issues/9505)) ([7320c18](https://github.com/ibis-project/ibis/commit/7320c18c7fbbc382274f2fccb39f3a2e126d2f6c)) +* **blog:** mention dask in the pandeprecation post ([#9899](https://github.com/ibis-project/ibis/issues/9899)) ([2f2c3ed](https://github.com/ibis-project/ibis/commit/2f2c3ed5d700c176e380333c9b2501d6a8e5289d)) +* **blog:** minor edits to pandas blog ([#9920](https://github.com/ibis-project/ibis/issues/9920)) ([69a44c4](https://github.com/ibis-project/ibis/commit/69a44c461f063fdf74a6f1f15e93b3866f448dcd)) +* **blog:** post on why we are dropping the pandas backend ([#9896](https://github.com/ibis-project/ibis/issues/9896)) ([95104e5](https://github.com/ibis-project/ibis/commit/95104e5a0866592f8e53cd8d7199aa6be97e62ea)) +* **datatypes:** install rich traceback handler for prettier exception tracebacks ([#10004](https://github.com/ibis-project/ibis/issues/10004)) ([4b77e4f](https://github.com/ibis-project/ibis/commit/4b77e4f5cdc89ae786b0a621dafae97365dbd583)) +* fix doctests for postgres backend ([#9964](https://github.com/ibis-project/ibis/issues/9964)) ([497df15](https://github.com/ibis-project/ibis/commit/497df15e4edde6383125f9f2d9b68214d6502b4b)) +* **presentations:** positconf 2024 talk ([#9822](https://github.com/ibis-project/ibis/issues/9822)) ([e8b89e7](https://github.com/ibis-project/ibis/commit/e8b89e741f838285a5e31d4fef296c4f17d60e29)) +* **snowflake:** document using private key to connect to snowflake ([c70f55a](https://github.com/ibis-project/ibis/commit/c70f55ab159aade340f109032e23166f7ad6085f)) +* **snowflake:** fix the syntax for passing schema ([#9831](https://github.com/ibis-project/ibis/issues/9831)) ([c99cb4b](https://github.com/ibis-project/ibis/commit/c99cb4bfb926355f0689b3d0713d18802e15acfc)) +* **snowflake:** remove duplicate schema docstring ([#9829](https://github.com/ibis-project/ibis/issues/9829)) ([3183bef](https://github.com/ibis-project/ibis/commit/3183bef9aa10cf694993c15db316e2c54af12ee7)) + +### Refactors + +* **aliasing:** remove the need for renaming after execution ([#9996](https://github.com/ibis-project/ibis/issues/9996)) ([a0d7237](https://github.com/ibis-project/ibis/commit/a0d7237a9d5ffd4dedb5c935fa2fbb851f513421)) +* **api:** make unit required in IntegerValue.as_timestamp ([7fa7395](https://github.com/ibis-project/ibis/commit/7fa739521e18ed8dcbf625d4cc14e3b1561e0fb5)) +* **internals:** don't cache table accessor to avoid a circular reference ([fb604a5](https://github.com/ibis-project/ibis/commit/fb604a55afb154ca331371df8a83859f37a74851)) +* **intervals:** conslidate interval conversion under `_make_interval` base compiler implementation ([fe29210](https://github.com/ibis-project/ibis/commit/fe292101903c4dd8f43bba88de37c8883445409e)) +* make approximate ops subclasses of their non-approximate variants ([9d218d1](https://github.com/ibis-project/ibis/commit/9d218d1bb5e6075b1f69c06134aac0a7a5f7ead4)) +* remove base implementation for `quantile` ([3c49c6a](https://github.com/ibis-project/ibis/commit/3c49c6a76ce74f706675643e50fd4fc8e7f9ee8d)) +* **selectors:** remove janky `Predicate` class and unify `Selector`s under a single interface ([#9917](https://github.com/ibis-project/ibis/issues/9917)) ([c15a229](https://github.com/ibis-project/ibis/commit/c15a229e976a80dcd6e81718120e06b3d5d1f148)) +* simplify caching implementation ([afba988](https://github.com/ibis-project/ibis/commit/afba988061ddea17826ac494d61069585e2d8c32)) + +### Deprecations + +* **api:** deprecate `StructValue.destructure` API ([#9824](https://github.com/ibis-project/ibis/issues/9824)) ([98c5c76](https://github.com/ibis-project/ibis/commit/98c5c7623c7bcfb8efefc7913fcae2af85e5db44)) +* **api:** deprecate type coercion `to_*` methods in favor of `as_*` methods ([fb22e20](https://github.com/ibis-project/ibis/commit/fb22e206e84a2979f56372a65083e3e50d6dcfba)), closes [#9788](https://github.com/ibis-project/ibis/issues/9788) [/github.com/ibis-project/ibis/pull/9843#discussion_r1717545190](https://github.com/ibis-project//github.com/ibis-project/ibis/pull/9843/issues/discussion_r1717545190) +* **dask,pandas:** deprecate the dask and pandas backends ([910fa5c](https://github.com/ibis-project/ibis/commit/910fa5cfbddaa26f879b7c90b77c69546c648b59)) +* **expr-api:** deprecate useless `has_name` method ([#9901](https://github.com/ibis-project/ibis/issues/9901)) ([e0436aa](https://github.com/ibis-project/ibis/commit/e0436aa9519e16d2e0335534eab21bd73eafdcc4)) + ## [9.3.0](https://github.com/ibis-project/ibis/compare/9.2.0...9.3.0) (2024-08-07) ### Features diff --git a/ibis/__init__.py b/ibis/__init__.py index 36667d3d78e8..71792fca8e00 100644 --- a/ibis/__init__.py +++ b/ibis/__init__.py @@ -2,7 +2,7 @@ from __future__ import annotations -__version__ = "9.3.0" +__version__ = "9.4.0" import warnings from typing import Any diff --git a/pyproject.toml b/pyproject.toml index f3c3dd03e585..4c739aeab77b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ibis-framework" -version = "9.3.0" +version = "9.4.0" packages = [{ include = "ibis" }] include = ["ibis/examples/metadata.json", "ibis/examples/CITATIONS.md"] exclude = [