Skip to content

Commit 4e91401

Browse files
kszucscpcloud
authored andcommitted
docs(release): update breaking changes in the release notes for 4.0.0
1 parent f6701df commit 4e91401

File tree

1 file changed

+30
-52
lines changed

1 file changed

+30
-52
lines changed

docs/release_notes.md

Lines changed: 30 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -6,62 +6,40 @@ Release Notes
66

77
### ⚠ BREAKING CHANGES
88

9-
* Replace `HLLCardinality` with `ApproxCountDistinct` and `CMSMedian` with `ApproxMedian` operations.
10-
* **backends:** The dtype of returned execution results now more closely matches that of the ibis expression's type. Downstream code may need to be adjusted.
11-
* The `JSONB` type is replaced by the `JSON` type.
12-
* **dev-deps:** Expression types have been removed from `ibis.expr.api`. Use `import ibis.expr.types as ir` to access these types.
13-
* **ir:** removed @immutable_property decorator, use @attribute.default instead
14-
* **timestamps:** The `timezone` argument to `to_timestamp` is gone. This was only supported in the BigQuery backend. Append `%Z` to the format string and the desired time zone to the input column if necessary.
15-
* **deps:** Ibis now supports at minimum duckdb 0.3.3. Please upgrade your duckdb install as needed.
16-
* Previously `ibis.connect` would return a `Table` object
17-
when calling `connect` on a parquet/csv file. This now returns a backend
18-
containing a single table created from that file. When possible users
19-
may use `ibis.read` instead to read files into ibis tables.
20-
* The `closed` argument no longer exists because it never had any effect. Remove it from your `histogram` method calls.
21-
* The Pandas and Dask backends now interpret casting ints
22-
to/from timestamps as seconds since the unix epoch, matching other
23-
backends.
24-
* **datafusion:** `register_csv` and `register_parquet` are removed.
25-
Pass filename to `register` method instead.
26-
27-
This also adds in a general backend test for the `register` API so we
28-
can make sure things are consistent, and fixes a small bug with the
29-
dispatch in polars (and datafusion which I copied) that raises a
30-
recursion error if you pass in garbage.
31-
32-
Update ibis/backends/tests/test_client.py
33-
34-
Co-authored-by: Phillip Cloud <[email protected]>
35-
* **ir:** NodeList and ir.List are removed. Use tuples instead.
9+
* functions, methods and classes marked as deprecated are removed now
10+
* **ir:** replace `HLLCardinality` with `ApproxCountDistinct` and `CMSMedian` with `ApproxMedian` operations.
11+
* **backends:** the datatype of returned execution results now more closely matches that of the ibis expression's type. Downstream code may need to be adjusted.
12+
* **ir:** the `JSONB` type is replaced by the `JSON` type.
13+
* **dev-deps:** expression types have been removed from `ibis.expr.api`. Use `import ibis.expr.types as ir` to access these types.
14+
* **common:** removed `@immutable_property` decorator, use `@attribute.default` instead
15+
* **timestamps:** the `timezone` argument to `to_timestamp` is gone. This was only supported in the BigQuery backend. Append `%Z` to the format string and the desired time zone to the input column if necessary.
16+
* **deps:** ibis now supports at minimum duckdb 0.3.3. Please upgrade your duckdb install as needed.
17+
* **api:** previously `ibis.connect` would return a `Table` object when calling `connect` on a parquet/csv file. This now returns a backend containing a single table created from that file. When possible users may use `ibis.read` instead to read files into ibis tables.
18+
* **api:** `histogram()`'s `closed` argument no longer exists because it never had any effect. Remove it from your `histogram` method calls.
19+
* **pandas/dask:** the Pandas and Dask backends now interpret casting ints to/from timestamps as seconds since the unix epoch, matching other backends.
20+
* **datafusion:** `register_csv` and `register_parquet` are removed. Pass filename to `register` method instead.
21+
* **ir:** `ops.NodeList` and `ir.List` are removed. Use tuples to represent sequence of expressions instead.
3622
* **api:** `re_extract` now follows `re.match` behavior. In particular, the `0`th group is now the entire string if there's a match, otherwise the groups are 1-based.
37-
* **datatypes:** Enums are now strings. Likely no action needed since no functionality existed.
23+
* **datatypes:** enums are now strings. Likely no action needed since no functionality existed.
3824
* **ir:** Replace `t[t.x.topk(...)]` with `t.semi_join(t.x.topk(...), "x")`.
39-
* **ir:** ir.Analytic.type() and ir.TopK.type() methods are removed
40-
* The default limit for table/column expressions is now
41-
`None` (meaning no limit).
42-
* Previously all column names that collided between
43-
`left` and `right` tables were renamed with an appended suffix. Now for
44-
the case of inner joins with only equality predicates, colliding columns
45-
that are known to be equal due to the join predicates aren't renamed.
46-
* kerberos support is no longer installed by default for
47-
the `impala` backend. To add support you'll need to install the
48-
`kerberos` package separately.
25+
* **ir:** `ir.Analytic.type()` and `ir.TopK.type()` methods are removed.
26+
* **api:** the default limit for table/column expressions is now `None` (meaning no limit).
27+
* **ir**: join changes: previously all column names that collided between `left` and `right` tables were renamed with an appended suffix. Now for the case of inner joins with only equality predicates, colliding columns that are known to be equal due to the join predicates aren't renamed.
28+
* **impala:** kerberos support is no longer installed by default for the `impala` backend. To add support you'll need to install the `kerberos` package separately.
4929
* **ir:** `ops.DeferredSortKey` is removed. Use `ops.SortKey` directly instead.
50-
* **ir:** Annotable is mutable by default now
51-
* **ir:** node.has_resolved_name() is removed, use isinstance(node, ops.Named) instead; node.resolve_name() is removed use node.name instead
52-
* **ir:** removed Node.flat_args(), directly use node.args property instead
53-
* **ir:** removed ops.Node.inputs property, use the multipledispatched get_node_arguments() function in the pandas backend
54-
* **ir:** Node.blocks() method has been removed.
55-
* **ir:** HasSchema is no longer available, directly subclass ops.TableNode and implement schema property instead
56-
* **ir:** Removed Node.output_type in favor of abstractmethod Node.to_expr() which now must be explicitly implemented
57-
* **ir:** Expr(Op(Expr(Op(Expr(Op))))) is now represented as
58-
Expr(Op(Op(Op))), so code using ibis internals must be migrated
30+
* **ir:** `ibis.common.grounds.Annotable` is mutable by default now
31+
* **ir:** `node.has_resolved_name()` is removed, use `isinstance(node, ops.Named)` instead; `node.resolve_name()` is removed use `node.name` instead
32+
* **ir:** removed `ops.Node.flat_args()`, directly use `node.args` property instead
33+
* **ir:** removed `ops.Node.inputs` property, use the multipledispatched `get_node_arguments()` function in the pandas backend
34+
* **ir:** `Node.blocks()` method has been removed.
35+
* **ir:** `HasSchema` mixin class is no longer available, directly subclass `ops.TableNode` and implement schema property instead
36+
* **ir:** Removed `Node.output_type` property in favor of abstractmethod `Node.to_expr()` which now must be explicitly implemented
37+
* **ir:** `Expr(Op(Expr(Op(Expr(Op)))))` is now represented as `Expr(Op(Op(Op)))`, so code using ibis internals must be migrated
5938
* **pandas:** Use timezone conversion functions to compute the original machine localized value
60-
* **common:** use ibis.common.validators.{Patameter, Signature} instead
61-
* **ir:** ibis.expr.lineage.lineage() is now removed
62-
* **ir:** removed ir.DestructValue, ir.DestructScalar and ir.DestructColumn, use table.unpack() instead
63-
* **ir:** removed Node.root_tables() method, use ibis.expr.analysis.find_immediate_parent_tables() instead
64-
* functions, methods and classes marked as deprecated are removed now
39+
* **common:** use `ibis.common.validators.{Patameter, Signature}` instead
40+
* **ir:** `ibis.expr.lineage.lineage()` is now removed
41+
* **ir:** removed `ir.DestructValue`, `ir.DestructScalar` and `ir.DestructColumn`, use `table.unpack()` instead
42+
* **ir:** removed `Node.root_tables()` method, use `ibis.expr.analysis.find_immediate_parent_tables()` instead
6543
* **impala:** use other methods for pinging the database
6644

6745
### Features

0 commit comments

Comments
 (0)