Skip to content

5.1.0

Compare
Choose a tag to compare
@ibis-project-bot ibis-project-bot released this 11 Apr 17:44

5.1.0 (2023-04-11)

Features

  • api: expand distinct API for dropping duplicates based on column subsets (3720ea5)
  • api: implement pyarrow memtables (9d4fbbd)
  • api: support passing a format string to Table.relabel (0583959)
  • api: thread kwargs around properly to support more complex connection arguments (7e0e15b)
  • backends: add more array functions (5208801)
  • bigquery: make to_pyarrow_batches() smarter (42f5987)
  • bigquery: support bignumeric type (d7c0f49)
  • default repr to showing all columns in Jupyter notebooks (91a0811)
  • druid: add re_search support (946202b)
  • duckdb: add map operations (a4c4e77)
  • duckdb: support sqlalchemy 2 (679bb52)
  • mssql: implement ops.StandardDev, ops.Variance (e322f1d)
  • pandas: support memtable in pandas backend (6e4d621), closes #5467
  • polars: implement count distinct (aea4ccd)
  • postgres: implement ops.Arbitrary (ee8dbab)
  • pyspark: pivot_longer (f600c90)
  • pyspark: add ArrayFilter operation (2b1301e)
  • pyspark: add ArrayMap operation (e2c159c)
  • pyspark: add DateDiff operation (bfd6109)
  • pyspark: add partial support for interval types (067120d)
  • pyspark: add read_csv, read_parquet, and register (7bd22af)
  • pyspark: implement count distinct (db29e10)
  • pyspark: support basic caching (ab0df7a)
  • snowflake: add optional 'connect_args' param (8bf2043)
  • snowflake: native pyarrow support (ce3d6a4)
  • sqlalchemy: support unknown types (fde79fa)
  • sqlite: implement ops.Arbitrary (9bcdf77)
  • sql: use temp views where possible (5b9d8c0)
  • table: implement pivot_wider API (60e7731)
  • ux: move ibis.expr.selectors to ibis.selectors and deprecate for removal in 6.0 (0ae639d)

Bug Fixes

  • api: disambiguate attribute errors from a missing resolve method (e12c4df)
  • api: support filter on literal followed by aggregate (68d65c8)
  • clickhouse: do not render aliases when compiling aggregate expression components (46caf3b)
  • clickhouse: ensure that clickhouse depends on sqlalchemy for make_url usage (ea10a27)
  • clickhouse: ensure that truncate works (1639914)
  • clickhouse: fix create_table implementation (5a54489)
  • clickhouse: workaround sqlglot issue with calling match (762f4d6)
  • deps: support pandas 2.0 (4f1d9fe)
  • duckdb: branch to avoid unnecessary dataframe construction (9d5d943)
  • duckdb: disable the progress bar by default (1a1892c)
  • duckdb: drop use of experimental parallel csv reader (47d8b92)
  • duckdb: generate SIMILAR TO instead of tilde to workaround sqlglot issue (434da27)
  • improve typing signature of .dropna() (e11de3f)
  • mssql: improve aggregation on expressions (58aa78d)
  • mssql: remove invalid aggregations (1ce3ef9)
  • polars: backwards compatibility for the time_zone and time_unit properties (3a2c4df)
  • postgres: allow inference of unknown types (343fb37)
  • pyspark: fail when aggregation contains a having filter (bd81a9f)
  • pyspark: raise proper error when trying to generate sql (51afc13)
  • snowflake: fix new array operations; remove ArrayRemove operation (772668b)
  • snowflake: make sure ephemeral tables following backend quoting rules (9a845df)
  • snowflake: make sure pyarrow is used when possible (01f5154)
  • sql: ensure that set operations resolve to a single relation (3a02965)
  • sql: generate consistent pivot_longer semantics in the presence of multiple unnests (6bc301a)
  • sqlglot: work with newer versions (6f7302d)
  • trino,duckdb,postgres: make cumulative notany/notall aggregations work (c2e985f)
  • trino: only support how='first' with arbitrary reduction (315b5e7)
  • ux: use guaranteed length-1 characters for NULL values (8618789)

Refactors

  • api: remove explicit use of .projection in favor of the shorter .select (73df8df)
  • cache: factor out ref counted cache (c816f00)
  • duckdb: simplify to_pyarrow_batches implementation (d6235ee)
  • duckdb: source loaded and installed extensions from duckdb (fb06262)
  • duckdb: use native duckdb parquet reader unless auth required (e9f57eb)
  • generate uuid-based names for temp tables (a1164df)
  • memtable: clean up dispatch code (9a19302)
  • memtable: dedup table proxy code (3bccec0)
  • sqlalchemy: remove unused _meta instance attributes (523e198)

Deprecations

  • api: deprecate Table.set_column in favor of Table.mutate (954a6b7)

Documentation

  • add a getting started guide (8fd03ce)
  • add warning about comparisons to None (5cf186a)
  • blog: add campaign finance blog post (383c708)
  • blog: add campaign finance to SUMMARY.md (0bdd093)
  • clean up agg argument descriptions and add join examples (93d3059)
  • comparison: add a "why ibis" page (011cc19)
  • move conda before nix in dev setup instructions (6b2cbaa)
  • nth: improve docstring for nth() (fb7b34b)
  • patch docs build to fix anchor links (51be459)
  • penguins: add citation for palmer penguins data (679848d)
  • penguins: change to flipper (eec3706)
  • refresh environment setup pages (b609571)
  • selectors: make doctests more complete and actually run them (c8f2964)
  • style and review fixes in getting started guide (3b0f8db)