59 changes: 38 additions & 21 deletions ibis/backends/mysql/__init__.py
81 changes: 39 additions & 42 deletions ibis/backends/mysql/compiler.py
142 changes: 142 additions & 0 deletions ibis/backends/mysql/datatypes.py
36 changes: 34 additions & 2 deletions ibis/backends/mysql/tests/test_client.py
41 changes: 27 additions & 14 deletions ibis/backends/oracle/__init__.py
88 changes: 41 additions & 47 deletions ibis/backends/oracle/compiler.py
37 changes: 37 additions & 0 deletions ibis/backends/pandas/__init__.py
8 changes: 6 additions & 2 deletions ibis/backends/pandas/executor.py
5 changes: 4 additions & 1 deletion ibis/backends/pandas/helpers.py
43 changes: 33 additions & 10 deletions ibis/backends/pandas/kernels.py
4 changes: 2 additions & 2 deletions ibis/backends/pandas/rewrites.py
8 changes: 4 additions & 4 deletions ibis/backends/pandas/tests/test_join.py
10 changes: 5 additions & 5 deletions ibis/backends/pandas/tests/test_window.py
109 changes: 84 additions & 25 deletions ibis/backends/polars/__init__.py
38 changes: 25 additions & 13 deletions ibis/backends/polars/compiler.py
11 changes: 7 additions & 4 deletions ibis/backends/polars/tests/conftest.py
60 changes: 40 additions & 20 deletions ibis/backends/postgres/__init__.py
71 changes: 46 additions & 25 deletions ibis/backends/postgres/compiler.py
38 changes: 20 additions & 18 deletions ibis/backends/postgres/tests/test_functions.py
6 changes: 0 additions & 6 deletions ibis/backends/postgres/tests/test_udf.py
346 changes: 259 additions & 87 deletions ibis/backends/pyspark/__init__.py
28 changes: 14 additions & 14 deletions ibis/backends/pyspark/compiler.py
70 changes: 70 additions & 0 deletions ibis/backends/pyspark/tests/conftest.py
19 changes: 19 additions & 0 deletions ibis/backends/pyspark/tests/test_import_export.py
44 changes: 44 additions & 0 deletions ibis/backends/pyspark/tests/test_udf.py
14 changes: 13 additions & 1 deletion ibis/backends/risingwave/__init__.py
26 changes: 12 additions & 14 deletions ibis/backends/risingwave/compiler.py
32 changes: 17 additions & 15 deletions ibis/backends/risingwave/tests/test_functions.py
110 changes: 58 additions & 52 deletions ibis/backends/snowflake/__init__.py
90 changes: 61 additions & 29 deletions ibis/backends/snowflake/compiler.py
1 change: 1 addition & 0 deletions ibis/backends/snowflake/tests/conftest.py
74 changes: 74 additions & 0 deletions ibis/backends/snowflake/tests/test_client.py
17 changes: 10 additions & 7 deletions ibis/backends/snowflake/tests/test_udf.py
75 changes: 47 additions & 28 deletions ibis/backends/sql/__init__.py
236 changes: 127 additions & 109 deletions ibis/backends/sql/compiler.py
32 changes: 26 additions & 6 deletions ibis/backends/sql/datatypes.py
191 changes: 157 additions & 34 deletions ibis/backends/sql/rewrites.py
34 changes: 25 additions & 9 deletions ibis/backends/sqlite/__init__.py
111 changes: 50 additions & 61 deletions ibis/backends/sqlite/compiler.py
2 changes: 1 addition & 1 deletion ibis/backends/sqlite/tests/test_client.py
5 changes: 4 additions & 1 deletion ibis/backends/sqlite/udf.py
2 changes: 2 additions & 0 deletions ibis/backends/tests/base.py
2 changes: 1 addition & 1 deletion ibis/backends/tests/sql/test_sql.py
103 changes: 56 additions & 47 deletions ibis/backends/tests/test_aggregation.py
100 changes: 44 additions & 56 deletions ibis/backends/tests/test_array.py
2 changes: 0 additions & 2 deletions ibis/backends/tests/test_asof_join.py
201 changes: 177 additions & 24 deletions ibis/backends/tests/test_client.py
14 changes: 14 additions & 0 deletions ibis/backends/tests/test_examples.py
19 changes: 18 additions & 1 deletion ibis/backends/tests/test_export.py
283 changes: 223 additions & 60 deletions ibis/backends/tests/test_generic.py
8 changes: 5 additions & 3 deletions ibis/backends/tests/test_map.py
49 changes: 34 additions & 15 deletions ibis/backends/tests/test_register.py
76 changes: 40 additions & 36 deletions ibis/backends/tests/test_sql.py
11 changes: 7 additions & 4 deletions ibis/backends/tests/test_string.py
36 changes: 14 additions & 22 deletions ibis/backends/tests/test_struct.py
40 changes: 40 additions & 0 deletions ibis/backends/tests/test_temporal.py
10 changes: 0 additions & 10 deletions ibis/backends/tests/test_udf.py
9 changes: 1 addition & 8 deletions ibis/backends/tests/test_window.py
10 changes: 8 additions & 2 deletions ibis/backends/tests/tpch/conftest.py
7 changes: 7 additions & 0 deletions ibis/backends/tests/tpch/test_h16.py
7 changes: 7 additions & 0 deletions ibis/backends/tests/tpch/test_h21.py
7 changes: 7 additions & 0 deletions ibis/backends/tests/tpch/test_h22.py
41 changes: 31 additions & 10 deletions ibis/backends/trino/__init__.py
42 changes: 24 additions & 18 deletions ibis/backends/trino/compiler.py
11 changes: 11 additions & 0 deletions ibis/backends/trino/tests/test_client.py
4 changes: 2 additions & 2 deletions ibis/common/annotations.py
5 changes: 4 additions & 1 deletion ibis/common/caching.py
14 changes: 8 additions & 6 deletions ibis/common/collections.py
3 changes: 2 additions & 1 deletion ibis/common/deferred.py
4 changes: 2 additions & 2 deletions ibis/common/dispatch.py
15 changes: 14 additions & 1 deletion ibis/common/exceptions.py
4 changes: 2 additions & 2 deletions ibis/common/graph.py
4 changes: 3 additions & 1 deletion ibis/common/patterns.py
4 changes: 0 additions & 4 deletions ibis/common/tests/conftest.py
3 changes: 2 additions & 1 deletion ibis/common/tests/test_grounds.py
17 changes: 5 additions & 12 deletions ibis/common/typing.py
3 changes: 2 additions & 1 deletion ibis/config.py
1 change: 1 addition & 0 deletions ibis/conftest.py
2 changes: 1 addition & 1 deletion ibis/examples/__init__.py
37 changes: 0 additions & 37 deletions ibis/expr/analysis.py

This file was deleted.

86 changes: 53 additions & 33 deletions ibis/expr/api.py
14 changes: 12 additions & 2 deletions ibis/expr/datatypes/core.py
2 changes: 0 additions & 2 deletions ibis/expr/datatypes/tests/test_core.py
6 changes: 3 additions & 3 deletions ibis/expr/format.py
41 changes: 18 additions & 23 deletions ibis/expr/operations/analytic.py
42 changes: 42 additions & 0 deletions ibis/expr/operations/arrays.py
60 changes: 40 additions & 20 deletions ibis/expr/operations/generic.py
2 changes: 2 additions & 0 deletions ibis/expr/operations/geospatial.py
4 changes: 4 additions & 0 deletions ibis/expr/operations/histograms.py
16 changes: 16 additions & 0 deletions ibis/expr/operations/json.py
38 changes: 27 additions & 11 deletions ibis/expr/operations/logical.py
19 changes: 19 additions & 0 deletions ibis/expr/operations/maps.py
78 changes: 54 additions & 24 deletions ibis/expr/operations/numeric.py
68 changes: 52 additions & 16 deletions ibis/expr/operations/reductions.py
73 changes: 61 additions & 12 deletions ibis/expr/operations/relations.py
2 changes: 1 addition & 1 deletion ibis/expr/operations/sortkeys.py
92 changes: 76 additions & 16 deletions ibis/expr/operations/strings.py
6 changes: 6 additions & 0 deletions ibis/expr/operations/structs.py
10 changes: 10 additions & 0 deletions ibis/expr/operations/subqueries.py
124 changes: 99 additions & 25 deletions ibis/expr/operations/temporal.py
2 changes: 2 additions & 0 deletions ibis/expr/operations/temporal_windows.py
4 changes: 0 additions & 4 deletions ibis/expr/operations/tests/conftest.py
28 changes: 16 additions & 12 deletions ibis/expr/operations/udf.py
6 changes: 6 additions & 0 deletions ibis/expr/operations/window.py
142 changes: 37 additions & 105 deletions ibis/expr/rewrites.py
17 changes: 10 additions & 7 deletions ibis/expr/schema.py
2 changes: 1 addition & 1 deletion ibis/expr/sql.py
14 changes: 7 additions & 7 deletions ibis/expr/tests/test_format.py
8 changes: 5 additions & 3 deletions ibis/expr/types/arrays.py
10 changes: 10 additions & 0 deletions ibis/expr/types/core.py
262 changes: 181 additions & 81 deletions ibis/expr/types/generic.py
18 changes: 14 additions & 4 deletions ibis/expr/types/geospatial.py
5 changes: 2 additions & 3 deletions ibis/expr/types/joins.py
61 changes: 45 additions & 16 deletions ibis/expr/types/logical.py
22 changes: 15 additions & 7 deletions ibis/expr/types/maps.py
18 changes: 9 additions & 9 deletions ibis/expr/types/numeric.py
5 changes: 4 additions & 1 deletion ibis/expr/types/pretty.py
467 changes: 318 additions & 149 deletions ibis/expr/types/relations.py
4 changes: 3 additions & 1 deletion ibis/expr/types/strings.py
8 changes: 6 additions & 2 deletions ibis/expr/types/structs.py
16 changes: 13 additions & 3 deletions ibis/expr/types/temporal.py
3 changes: 2 additions & 1 deletion ibis/expr/visualize.py
5 changes: 4 additions & 1 deletion ibis/legacy/udf/validate.py
6 changes: 3 additions & 3 deletions ibis/selectors.py
30 changes: 16 additions & 14 deletions ibis/tests/benchmarks/benchfuncs.py
33 changes: 33 additions & 0 deletions ibis/tests/benchmarks/test_benchmarks.py
75 changes: 75 additions & 0 deletions ibis/tests/expr/test_aggregation.py
6 changes: 3 additions & 3 deletions ibis/tests/expr/test_decimal.py
18 changes: 5 additions & 13 deletions ibis/tests/expr/test_literal.py
9 changes: 7 additions & 2 deletions ibis/tests/expr/test_selectors.py
2 changes: 1 addition & 1 deletion ibis/tests/expr/test_set_operations.py
12 changes: 6 additions & 6 deletions ibis/tests/expr/test_sql_builtins.py
46 changes: 38 additions & 8 deletions ibis/tests/expr/test_table.py
2 changes: 1 addition & 1 deletion ibis/tests/expr/test_timestamp.py
57 changes: 38 additions & 19 deletions ibis/tests/expr/test_value_exprs.py
4 changes: 2 additions & 2 deletions ibis/tests/expr/test_window_frames.py
2 changes: 0 additions & 2 deletions ibis/tests/strategies.py
14 changes: 9 additions & 5 deletions ibis/tests/test_api.py
5 changes: 4 additions & 1 deletion ibis/tests/util.py
16 changes: 10 additions & 6 deletions ibis/util.py
6 changes: 5 additions & 1 deletion justfile
10 changes: 5 additions & 5 deletions nix/ibis.nix
7 changes: 2 additions & 5 deletions nix/overlay.nix
25 changes: 21 additions & 4 deletions nix/quarto/default.nix
54 changes: 1 addition & 53 deletions poetry-overrides.nix
3,236 changes: 1,424 additions & 1,812 deletions poetry.lock
28 changes: 12 additions & 16 deletions pyproject.toml
492 changes: 235 additions & 257 deletions requirements-dev.txt