|
1 | 1 | Release notes
|
2 | 2 | ---
|
3 | 3 |
|
| 4 | +## [7.2.0](https://github.com/ibis-project/ibis/compare/7.1.0...7.2.0) (2023-12-18) |
| 5 | + |
| 6 | + |
| 7 | +### Features |
| 8 | + |
| 9 | +* **api:** add `ArrayValue.flatten` method and operation ([e6e995c](https://github.com/ibis-project/ibis/commit/e6e995c2f444ffe6f66165a35e2943c25b49ac23)) |
| 10 | +* **api:** add `ibis.range` function for generating sequences ([f5a0a5a](https://github.com/ibis-project/ibis/commit/f5a0a5a7dcd14efdacd91d7f0ba8d6578a739be9)) |
| 11 | +* **api:** add timestamp range ([c567fe0](https://github.com/ibis-project/ibis/commit/c567fe07d546f797b0e3b04f79c3fc24319abfc8)) |
| 12 | +* **base:** add `to_pandas` method to BaseBackend ([3d1cf66](https://github.com/ibis-project/ibis/commit/3d1cf6683907cde17b1c4f5a5056eade0c36c8d8)) |
| 13 | +* **clickhouse:** implement array flatten support ([d15c6e6](https://github.com/ibis-project/ibis/commit/d15c6e662a9d483ceff219a4955839ddc6ee2d79)) |
| 14 | +* **common:** `node.replace()` now supports mappings for quick lookup-like substitutions ([bbc93c7](https://github.com/ibis-project/ibis/commit/bbc93c7d7a5cdf668b81668f70ef5908ae517b05)) |
| 15 | +* **common:** add `node.find_topmost()` method to locate matching nodes without descending further to their children ([15acf7d](https://github.com/ibis-project/ibis/commit/15acf7d83b23c7004c2878e100f6d913984b56e7)) |
| 16 | +* **common:** allow matching on dictionaries in possibly nested patterns ([1d314f7](https://github.com/ibis-project/ibis/commit/1d314f76531a016567973e1de9f9ea7c8b1e9cbd)) |
| 17 | +* **common:** expose `node.__children__` property to access the flattened list of children of a node ([2e91476](https://github.com/ibis-project/ibis/commit/2e914760603932448b9d6e1453d5a9d1160112d0)) |
| 18 | +* **duckdb:** add initial support for geospatial functions ([65f496c](https://github.com/ibis-project/ibis/commit/65f496c300e1af91b9dd7c736b85220e9b2e1b9f)) |
| 19 | +* **duckdb:** add read_geo function ([b19a8ce](https://github.com/ibis-project/ibis/commit/b19a8ce9ce4e2135928c7b36836a39dfb1a3a30b)) |
| 20 | +* **duckdb:** enforce aswkb for projections, coerce to geopandas ([33327dc](https://github.com/ibis-project/ibis/commit/33327dce13fadbe7f517c2286ef845726810a6db)) |
| 21 | +* **duckdb:** implement array flatten support ([0a0eecc](https://github.com/ibis-project/ibis/commit/0a0eecca14e3c869f6c84a89298d904ce4cb51d4)) |
| 22 | +* **exasol:** add exasol backend ([295903d](https://github.com/ibis-project/ibis/commit/295903dcd7aacfe6e8dca5d08675c34c8ba88125)) |
| 23 | +* **export:** allow passing keyword arguments to PyArrow `ParquetWriter` and `CSVWriter` ([40558fd](https://github.com/ibis-project/ibis/commit/40558fdd9959c79293f3963c673fe0fafbdc0572)) |
| 24 | +* **flink:** implement nested schema support ([057fabc](https://github.com/ibis-project/ibis/commit/057fabc21224cbea2156a858c78fd2957f2a9dd1)) |
| 25 | +* **flink:** implement windowed computations ([256767f](https://github.com/ibis-project/ibis/commit/256767f4ace61ea3a168bcce1c4c7715d9547a31)) |
| 26 | +* **geospatial:** add support for GeoTransform on duckdb ([ec533c1](https://github.com/ibis-project/ibis/commit/ec533c1c003f05ab15a447d1b5ee1c430081c2fe)) |
| 27 | +* **geospatial:** update read_geo to support url ([3baf509](https://github.com/ibis-project/ibis/commit/3baf509bbccc15a2173ad82fe81613916a4a0c9f)) |
| 28 | +* **pandas/dask:** implement flatten ([c2e8d9d](https://github.com/ibis-project/ibis/commit/c2e8d9dd3b34cafe2bb1dce0aba8b1812e5a13b6)) |
| 29 | +* **polars:** add `streaming` kwarg to `to_pandas` ([703507f](https://github.com/ibis-project/ibis/commit/703507f312a3af797dafacc57f9b02d8eb3b361a)) |
| 30 | +* **polars:** implement array flatten support ([19b2aa0](https://github.com/ibis-project/ibis/commit/19b2aa0fd028e021c22058920eec979bf6352a20)) |
| 31 | +* **pyspark:** enable multiple values in `.substitute` ([291a290](https://github.com/ibis-project/ibis/commit/291a290c194e8337207a82c890237ce288e5386c)) |
| 32 | +* **pyspark:** implement array flatten support ([5d1fadf](https://github.com/ibis-project/ibis/commit/5d1fadf9a3cce74150d6a627d67914e2393db319)) |
| 33 | +* **snowflake:** implement array flatten support ([d3c754f](https://github.com/ibis-project/ibis/commit/d3c754f09502be979e5dcc79f968b15052590bd0)) |
| 34 | +* **snowflake:** read_csv with https ([72752eb](https://github.com/ibis-project/ibis/commit/72752eb754eaa45c578188cd88b47de96fdbcdb7)) |
| 35 | +* **snowflake:** support udf arguments for reading from staged files ([529a3a2](https://github.com/ibis-project/ibis/commit/529a3a26fcd16e186f3e491a7ded7fa767c79d69)) |
| 36 | +* **snowflake:** use upstream `array_sort` ([9624341](https://github.com/ibis-project/ibis/commit/96243416771109fbaf383167470ac2481fe938ef)) |
| 37 | +* **sqlalchemy:** support expressions in window bounds ([5dbb3b1](https://github.com/ibis-project/ibis/commit/5dbb3b1d1d90a2e212d04f93a2b956f6aa5c85aa)) |
| 38 | +* **trino:** implement array flatten support ([0d1faaa](https://github.com/ibis-project/ibis/commit/0d1faaa3dffdf316d6b3043340b11d6efa1b439b)) |
| 39 | + |
| 40 | + |
| 41 | +### Bug Fixes |
| 42 | + |
| 43 | +* **api:** avoid casting to bool for `table.info()` `nullable` column ([3b3bd7b](https://github.com/ibis-project/ibis/commit/3b3bd7bd77e9c0b922f90f238901c99703e003c4)) |
| 44 | +* **bigquery:** escape the schema (project ID) for BQ builtin UDFs ([8096552](https://github.com/ibis-project/ibis/commit/809655257b9c277e228fb37dba90ca83196edc7c)) |
| 45 | +* **bigquery:** fully qualified memtable names in compile ([a81e432](https://github.com/ibis-project/ibis/commit/a81e4328e8baeb9f4138a811c60f9b4c2bea7614)) |
| 46 | +* **clickhouse:** use backwards compatible methods of getting query metadata ([975556f](https://github.com/ibis-project/ibis/commit/975556fbb58597e558c04c520c6268b0c0b4a812)) |
| 47 | +* **datafusion:** bring back UDF registration ([43084fa](https://github.com/ibis-project/ibis/commit/43084fab5555424ab80dfb8f72e05e974485e4bf)) |
| 48 | +* **datafusion:** ensure that non-matching re_search calls return bool values when patterns do not match ([088b027](https://github.com/ibis-project/ibis/commit/088b027ea4b223a7d602d3a72d8d794183b3f8ec)) |
| 49 | +* **datafusion:** support computed group by when the aggregation is count distinct ([18bdb7e](https://github.com/ibis-project/ibis/commit/18bdb7e6957f83439d8f3670174177a904e788e6)) |
| 50 | +* **decompile:** handle isin ([6857751](https://github.com/ibis-project/ibis/commit/6857751e7d99f6e37b1edbc8c9046502c6c4d826)) |
| 51 | +* **deferred:** don't pass expression in fstringified error message ([724859d](https://github.com/ibis-project/ibis/commit/724859d8508c48322101e8b2275d5c999d5361d9)) |
| 52 | +* **deps:** update dependency datafusion to v33 ([57047a2](https://github.com/ibis-project/ibis/commit/57047a28cbc274e13821ceeaeec79f090e90f290)) |
| 53 | +* **deps:** update dependency sqlglot to v20 ([13bc6e2](https://github.com/ibis-project/ibis/commit/13bc6e2a673e098fef4e766232eb6d17b58f7bce)) |
| 54 | +* **duckdb:** ensure that already quoted identifiers are not erased ([45ee391](https://github.com/ibis-project/ibis/commit/45ee39179665bf0d824ff1967645d2d98b697d87)) |
| 55 | +* **duckdb:** ensure that parameter names are unlikely to overlap with column names ([d93dbe2](https://github.com/ibis-project/ibis/commit/d93dbe23f8d8699d915aae9e1da1d43de7512c24)) |
| 56 | +* **duckdb:** gate geoalchemy import in duckdb geospatial ([8f012c4](https://github.com/ibis-project/ibis/commit/8f012c42df7739f613fac2898a5b2d0d34316724)) |
| 57 | +* **duckdb:** render dates, times, timestamps and none literals correctly ([5d8866a](https://github.com/ibis-project/ibis/commit/5d8866a36ac8055a93d0643bd697993fb4129629)) |
| 58 | +* **duckdb:** use functions for temporal literals ([b1407f8](https://github.com/ibis-project/ibis/commit/b1407f8d1ca524f8ff8f4622200acd040874de1f)) |
| 59 | +* **duckdb:** use the UDF's signature instead of arguments' output type for generating a duckdb signature ([233dce1](https://github.com/ibis-project/ibis/commit/233dce1d655e50efab74ded03a628431811debaa)) |
| 60 | +* **flink:** add more test ([33e1a31](https://github.com/ibis-project/ibis/commit/33e1a319456bbc3a78fb93ba318124b97402987f)) |
| 61 | +* **flink:** add os to the cache key ([1b92b33](https://github.com/ibis-project/ibis/commit/1b92b33f887d1adb21eeae8d350732e8714f515e)) |
| 62 | +* **flink:** add test cases for recreate table ([1413de9](https://github.com/ibis-project/ibis/commit/1413de9e4568fea623ed52d2185eeae266fa9efb)) |
| 63 | +* **flink:** customize the list of base idenitifers ([0b5d343](https://github.com/ibis-project/ibis/commit/0b5d343897a071a2bc70796b8d478c8f9b93d923)) |
| 64 | +* **flink:** fix recreating table/view issue on flink backend ([0c9791f](https://github.com/ibis-project/ibis/commit/0c9791f6cfc258bb08f9f0fd03950216873dfcf4)) |
| 65 | +* **flink:** implement TypeMapper and SchemaMapper for Flink backend ([f983bfa](https://github.com/ibis-project/ibis/commit/f983bfa1cf4234cbf1100ee24e9544a262217f1c)) |
| 66 | +* **flink:** use lazy import to prevent premature loading of pyflink during gen_matrix ([d042402](https://github.com/ibis-project/ibis/commit/d042402a553bd46d721df9fbb088d70dc3bcf5c4)) |
| 67 | +* **geospatial:** pretty print data in interactive mode ([afb04ed](https://github.com/ibis-project/ibis/commit/afb04ed72ba7da2bfef3ec9561a71608fadec06b)) |
| 68 | +* **ir:** ensure that join projection columns are all always nullable ([f5f35c6](https://github.com/ibis-project/ibis/commit/f5f35c63a6118907db71fec03856876a4692f4c4)) |
| 69 | +* **ir:** handle renaming for scalar operations ([6f77f17](https://github.com/ibis-project/ibis/commit/6f77f1799812f979f004df08e1b152765a3fa730)) |
| 70 | +* **ir:** handle the case of non-overlapping data and add a test ([1c9ae1b](https://github.com/ibis-project/ibis/commit/1c9ae1b15f97f31940550689649f2e27c5298ea1)) |
| 71 | +* **ir:** implicitly convert `None` literals with `dt.Null` type to the requested type during value coercion ([d51ec4e](https://github.com/ibis-project/ibis/commit/d51ec4efb8c31c027fb49d4b0deab0e20b5dd5eb)) |
| 72 | +* **ir:** merge window frames for bound analytic window functions with a subsequent over call ([e12ce8d](https://github.com/ibis-project/ibis/commit/e12ce8dc19d05e44242bc0871481bd9ff1cf86b1)) |
| 73 | +* **ir:** raise if `Concrete.copy()` receives unexpected arguments ([442199a](https://github.com/ibis-project/ibis/commit/442199af5dcb63eb318c613359d651a10a623602)) |
| 74 | +* **memtable:** ensure column names match provided data ([faf99df](https://github.com/ibis-project/ibis/commit/faf99dfc99b6f7d9e48562c10a2dbd28f3497551)) |
| 75 | +* **memtables:** disallow duplicate column names when constructing memtables ([4937b48](https://github.com/ibis-project/ibis/commit/4937b486ea5d52447c2c3113acff22efcfc5632e)) |
| 76 | +* **mssql:** compute the length of strings correctly ([64d2957](https://github.com/ibis-project/ibis/commit/64d29575fb9406ae78b9092a0a1b9cc3b2e157bc)) |
| 77 | +* **mssql:** render dates, times and timestamps correctly ([aca30e1](https://github.com/ibis-project/ibis/commit/aca30e1509be678bb0030fe409b9e22bfd2fc0d2)) |
| 78 | +* **mysql:** render dates and timestamps correctly ([19e878c](https://github.com/ibis-project/ibis/commit/19e878cb467b4def69d9a1e50efd9c4567ddc182)) |
| 79 | +* **oracle:** ensure that `.sql` metadata results are in column-definition order ([26a3c1f](https://github.com/ibis-project/ibis/commit/26a3c1f3d75963d649ea1f84b662da77fcb98e7c)) |
| 80 | +* **oracle:** render dates and timestamps correctly ([66fbad6](https://github.com/ibis-project/ibis/commit/66fbad64a974f5aecd86a6119714518e58372866)) |
| 81 | +* **pandas-format:** convert map keys ([bb92e9f](https://github.com/ibis-project/ibis/commit/bb92e9f9cd0d15891bb49047f7b2ded5a91b71f2)) |
| 82 | +* **pandas:** ensure that empty arrays unnest to nothing ([fa9831f](https://github.com/ibis-project/ibis/commit/fa9831f24d1db9b81078fc355b8e395b4083bbe7)) |
| 83 | +* **pandas:** fix integer wraparound when extracting epoch seconds ([e98fa3c](https://github.com/ibis-project/ibis/commit/e98fa3caa9a6325bdc647324f6a9e18e5fab43ca)) |
| 84 | +* **pandas:** handle non-nullable type mapping ([c6a6c56](https://github.com/ibis-project/ibis/commit/c6a6c56deec9efd664a1d41e48cf97024c24a42d)) |
| 85 | +* **parse_sql:** parse IN clauses ([8b1f7b5](https://github.com/ibis-project/ibis/commit/8b1f7b5a299ae06259c4c15c7d02d772259bf6bc)) |
| 86 | +* **polars:** handle new categorical types ([5d6d6ae](https://github.com/ibis-project/ibis/commit/5d6d6ae974fcf20c061767154d95df94e54f0a9f)) |
| 87 | +* **polars:** handle the case of an empty `InValues` list ([b26aa55](https://github.com/ibis-project/ibis/commit/b26aa5593694db405c6c77ffc29f1f08e7b89333)) |
| 88 | +* **polars:** project first when creating computed grouping keys ([7f9fdd4](https://github.com/ibis-project/ibis/commit/7f9fdd4e60150b33fcae0528d81fb081f807ede5)) |
| 89 | +* **postgres:** render dates, times, timestamps and none literals correctly ([a3c1c07](https://github.com/ibis-project/ibis/commit/a3c1c0775cdd3ea977205325c14c883426e2dbad)) |
| 90 | +* **pyarrow:** avoid catching `ValueError` and hiding legitimate failures ([b7f650c](https://github.com/ibis-project/ibis/commit/b7f650c4be98483c2cfb56b8937777ea92734f95)) |
| 91 | +* **pyspark,polars:** add packaging extra ([bdde3a4](https://github.com/ibis-project/ibis/commit/bdde3a45d4b23ed6144ade7833576a74455a4986)) |
| 92 | +* **pyspark:** custom format converter to handle pyspark timestamps ([758ec25](https://github.com/ibis-project/ibis/commit/758ec2528242798938ba06fdf3c52c26ba2a0dd8)) |
| 93 | +* **snowflake:** convert arrays, maps and structs using the base class implementation ([f361891](https://github.com/ibis-project/ibis/commit/f361891dfd00bf8aa144423e1976d0f346af778b)) |
| 94 | +* **snowflake:** convert path to `str` when checking for a prefix ([c5f884c](https://github.com/ibis-project/ibis/commit/c5f884c46f024347d00fc0a9abdce5752cf402b1)) |
| 95 | +* **snowflake:** ensure that empty arrays unnest to nothing ([28c2498](https://github.com/ibis-project/ibis/commit/28c2498908cdd18f7fe84ff7652a34d88bbb8586)) |
| 96 | +* **snowflake:** fix array printing by using a pyarrow extension type ([7d8fe5a](https://github.com/ibis-project/ibis/commit/7d8fe5a4db0632f8e497eaec11a375ac5365535e)) |
| 97 | +* **snowflake:** fix creating table in a different database ([9b65b48](https://github.com/ibis-project/ibis/commit/9b65b48ce74b2d46dc1e508c3a686b454df9e588)) |
| 98 | +* **snowflake:** fix quoting across all apis ([7bf8e84](https://github.com/ibis-project/ibis/commit/7bf8e84f7628efbc81004064b590a8c5dba7b991)) |
| 99 | +* **substitute:** allow mappings with `None` keys ([4b28ff1](https://github.com/ibis-project/ibis/commit/4b28ff13effa77482475c663eaf596a4db3d2df9)) |
| 100 | + |
| 101 | + |
| 102 | +### Documentation |
| 103 | + |
| 104 | +* add exasol to the backend coverage app ([3575858](https://github.com/ibis-project/ibis/commit/35758589c3d054ae167583dbb46a1111a5896256)) |
| 105 | +* **arrays:** document behavior of unnest in the presence of empty array rows ([5526c40](https://github.com/ibis-project/ibis/commit/5526c402784879b76beb1d0bea46cfa7e628b8f5)) |
| 106 | +* **backends:** include docs for inherited members ([c04bf67](https://github.com/ibis-project/ibis/commit/c04bf6759d7a51dfedf54277e3ba9ac3ee6ebf3c)) |
| 107 | +* **blog-post:** add blog post comparing ibis to pandas and dask ([a7fd32b](https://github.com/ibis-project/ibis/commit/a7fd32ba3d8f8b2a98ff89a86d36319dec96433a)) |
| 108 | +* **blog-post:** add blogpost ibis duckdb geospatial ([def8031](https://github.com/ibis-project/ibis/commit/def803155f8c6f18fe020a27554000d6279bfc6c)) |
| 109 | +* **blog-post:** pydata performance part 2; polars and datafusion ([36e1db5](https://github.com/ibis-project/ibis/commit/36e1db56b59e6ca6f2851fd81b996ee095273284)) |
| 110 | +* **blog:** add dbt-ibis post ([d73c156](https://github.com/ibis-project/ibis/commit/d73c15610ecd772bcadabe769f4dc7605c4b99ba)) |
| 111 | +* **blog:** add pypi compiled file extension blog ([751cfcf](https://github.com/ibis-project/ibis/commit/751cfcfe80875b74a85ab3ab99aa6e8db5334360)) |
| 112 | +* **build:** allow building individual docs without rendering api docs first ([529ee6c](https://github.com/ibis-project/ibis/commit/529ee6c96cded9005d5170e5de3674bae08e45a8)) |
| 113 | +* **build:** turn off interactive mode before every example ([502b88c](https://github.com/ibis-project/ibis/commit/502b88cb0c86d33b1bd6fdd0b35a6d19f283268b)) |
| 114 | +* fix minor typo in sql.qmd ([17aa929](https://github.com/ibis-project/ibis/commit/17aa929627420d2c5fe211e9ee341d2a30b78954)) |
| 115 | +* fix typo in `ir.Table` docstring ([e3b9611](https://github.com/ibis-project/ibis/commit/e3b9611212a0e556d9aaee00a13020432497fc49)) |
| 116 | +* fix typos ([9a4d1f8](https://github.com/ibis-project/ibis/commit/9a4d1f8502ab81edba3679dea38df458a3f2bdbc)) |
| 117 | +* make minor edits to duckdb-geospatial post ([2365e10](https://github.com/ibis-project/ibis/commit/2365e10240ec067ea5b04a9517833e56014f7819)) |
| 118 | +* **name:** improve docstring of `ibis.param` API ([2f9ec90](https://github.com/ibis-project/ibis/commit/2f9ec902af83838b13ecfb6a8cd5533c698ed3d2)) |
| 119 | +* **name:** improve docstring of `Value.name` API ([dd66af2](https://github.com/ibis-project/ibis/commit/dd66af218612343f9ef3c91254f8185cae7aaa16)) |
| 120 | +* **perf:** use an unordered list instead of an ordered one ([297be44](https://github.com/ibis-project/ibis/commit/297be44abd176d77aaa5d03a73d2b4d82a6e0abb)) |
| 121 | +* **pypi-metadata-post:** add Fortran pattern and fix regex ([12058f2](https://github.com/ibis-project/ibis/commit/12058f259696037592eaadd6f4b5946cf2baab87)) |
| 122 | +* remove confusing backend page ([c1d19c7](https://github.com/ibis-project/ibis/commit/c1d19c76e55ec820cfbafb3b5b19f19ecca938d5)) |
| 123 | +* replace deprecated `relabel`s with `rename`s ([6bc9e15](https://github.com/ibis-project/ibis/commit/6bc9e1522d0e480a2546ab82c0b7fa1d55df7c3b)) |
| 124 | +* **sql:** emphasize the need to close a `raw_sql` cursor only when using `SELECT` statements ([74379a8](https://github.com/ibis-project/ibis/commit/74379a822cd24181a7b587e3899261f1ecd51a78)) |
| 125 | +* **tests:** add API docs for the testing base classes ([173e9a9](https://github.com/ibis-project/ibis/commit/173e9a9786d96c98c82a14e7183651a175d360bb)) |
| 126 | +* **tests:** document class variables in BackendTest ([e814c6b](https://github.com/ibis-project/ibis/commit/e814c6b0163da625529e7d41aac3a7143783a35d)) |
| 127 | + |
| 128 | + |
| 129 | +### Refactors |
| 130 | + |
| 131 | +* **analysis:** always merge frames during windowization ([66fd69c](https://github.com/ibis-project/ibis/commit/66fd69c9d64b6cd31b26eff2b62dafa88b6cc893)) |
| 132 | +* **bigquery:** move `BigQueryType` to use sqlglot for type parsing and generation ([6e3219f](https://github.com/ibis-project/ibis/commit/6e3219f8f24ddf306e7c12d6f204a5a0f2f600c9)) |
| 133 | +* **clickhouse:** clean up session timezone handling ([66220c7](https://github.com/ibis-project/ibis/commit/66220c71e73f94cd73dc2b5fab4925c9119f75a8)) |
| 134 | +* **clickhouse:** use isoformat instead of manual specification ([a3fac3e](https://github.com/ibis-project/ibis/commit/a3fac3ea7383e6be29538784fb5349db7fae2ce4)) |
| 135 | +* **common:** consolidate the finder and replacer inputs for the various graph methods ([a1881eb](https://github.com/ibis-project/ibis/commit/a1881ebe792edb5e086ef5c5254cfb7d6a320337)) |
| 136 | +* **common:** remove `traverse()` function's `filter` argument since it can be expressed using the visitor ([e4e2993](https://github.com/ibis-project/ibis/commit/e4e2993cb48ca68c8096e846b3454ba094f34418)) |
| 137 | +* **common:** unify the `node.find()` and `node.match()` methods to transparently support types and patterns ([3c14091](https://github.com/ibis-project/ibis/commit/3c14091490ce41ec9e81e8c475a069af3d62b53d)) |
| 138 | +* **datafusion:** simplify `execute` and `to_pyarrow` implementations ([c572eab](https://github.com/ibis-project/ibis/commit/c572eabaef7e02ec36eff146e33b693e74d8a6f0)) |
| 139 | +* **duckdb:** use pyarrow for all memtable registration ([d6a2f09](https://github.com/ibis-project/ibis/commit/d6a2f0922ea92b0e03a0431bf9011e7103565061)) |
| 140 | +* **formats:** move the `TableProxy` object to formats from the operations ([05964b1](https://github.com/ibis-project/ibis/commit/05964b106554bf5ef19a712903596de89bf6a76f)) |
| 141 | +* **pandas-format:** move to classmethods to pickup super class behavior where possible ([7bb0470](https://github.com/ibis-project/ibis/commit/7bb04707aca707b301ba47f1ae9206e777c58c41)) |
| 142 | +* **snowflake:** use upstream map-from-arrays function instead of a custom UDF ([318459c](https://github.com/ibis-project/ibis/commit/318459cd54214bcda548c43d1d2425ec39a890d2)) |
| 143 | +* **tests:** remove test rounding mixins ([3b730d9](https://github.com/ibis-project/ibis/commit/3b730d977581905bff2c825dc6cc51473326b0c9)) |
| 144 | +* **tests:** remove UnorderedComparator class ([ab0a8f6](https://github.com/ibis-project/ibis/commit/ab0a8f61a989908e9b02bee95acd9fe392d085cd)) |
| 145 | + |
| 146 | + |
| 147 | +### Performance |
| 148 | + |
| 149 | +* **common:** improve the performance of replacing nodes by using a specialized `node.__recreate__()` method ([f3da926](https://github.com/ibis-project/ibis/commit/f3da9265c5af8e624fe7dea9ac3ac170c95b6e0c)) |
| 150 | + |
4 | 151 | ## [7.1.0](https://github.com/ibis-project/ibis/compare/7.0.0...7.1.0) (2023-11-16)
|
5 | 152 |
|
6 | 153 |
|
|
0 commit comments