23 changes: 5 additions & 18 deletions ibis/backends/mssql/compiler.py
45 changes: 41 additions & 4 deletions ibis/backends/mssql/datatypes.py
27 changes: 3 additions & 24 deletions ibis/backends/mssql/tests/conftest.py
49 changes: 37 additions & 12 deletions ibis/backends/mssql/tests/test_client.py
62 changes: 27 additions & 35 deletions ibis/backends/mysql/__init__.py
40 changes: 25 additions & 15 deletions ibis/backends/mysql/compiler.py
21 changes: 6 additions & 15 deletions ibis/backends/mysql/datatypes.py
5 changes: 3 additions & 2 deletions ibis/backends/mysql/tests/conftest.py
35 changes: 22 additions & 13 deletions ibis/backends/mysql/tests/test_client.py
6 changes: 3 additions & 3 deletions ibis/backends/pandas/__init__.py
2 changes: 1 addition & 1 deletion ibis/backends/pandas/core.py
11 changes: 8 additions & 3 deletions ibis/backends/pandas/execution/decimal.py
6 changes: 4 additions & 2 deletions ibis/backends/pandas/execution/generic.py
4 changes: 1 addition & 3 deletions ibis/backends/pandas/tests/execution/test_maps.py
5 changes: 5 additions & 0 deletions ibis/backends/pandas/tests/test_client.py
19 changes: 9 additions & 10 deletions ibis/backends/pandas/tests/test_datatypes.py
10 changes: 7 additions & 3 deletions ibis/backends/polars/__init__.py
94 changes: 69 additions & 25 deletions ibis/backends/polars/compiler.py
12 changes: 8 additions & 4 deletions ibis/backends/polars/datatypes.py
62 changes: 29 additions & 33 deletions ibis/backends/postgres/__init__.py
25 changes: 16 additions & 9 deletions ibis/backends/postgres/compiler.py
53 changes: 34 additions & 19 deletions ibis/backends/postgres/registry.py
3 changes: 2 additions & 1 deletion ibis/backends/postgres/tests/conftest.py
47 changes: 11 additions & 36 deletions ibis/backends/postgres/tests/test_client.py
76 changes: 31 additions & 45 deletions ibis/backends/postgres/tests/test_functions.py
64 changes: 27 additions & 37 deletions ibis/backends/postgres/tests/test_udf.py
9 changes: 6 additions & 3 deletions ibis/backends/postgres/udf.py
24 changes: 16 additions & 8 deletions ibis/backends/pyarrow/datatypes.py
3 changes: 1 addition & 2 deletions ibis/backends/pyspark/__init__.py
2 changes: 1 addition & 1 deletion ibis/backends/pyspark/client.py
4 changes: 2 additions & 2 deletions ibis/backends/pyspark/compiler.py
22 changes: 15 additions & 7 deletions ibis/backends/pyspark/datatypes.py
102 changes: 65 additions & 37 deletions ibis/backends/snowflake/__init__.py
16 changes: 16 additions & 0 deletions ibis/backends/snowflake/datatypes.py
196 changes: 160 additions & 36 deletions ibis/backends/snowflake/registry.py
84 changes: 47 additions & 37 deletions ibis/backends/snowflake/tests/conftest.py
86 changes: 66 additions & 20 deletions ibis/backends/sqlite/__init__.py
21 changes: 12 additions & 9 deletions ibis/backends/sqlite/compiler.py
38 changes: 38 additions & 0 deletions ibis/backends/sqlite/datatypes.py
23 changes: 13 additions & 10 deletions ibis/backends/sqlite/registry.py
16 changes: 12 additions & 4 deletions ibis/backends/sqlite/tests/test_client.py
24 changes: 5 additions & 19 deletions ibis/backends/sqlite/tests/test_functions.py
4 changes: 2 additions & 2 deletions ibis/backends/tests/base.py
37 changes: 15 additions & 22 deletions ibis/backends/tests/test_aggregation.py
5 changes: 5 additions & 0 deletions ibis/backends/tests/test_api.py
22 changes: 9 additions & 13 deletions ibis/backends/tests/test_array.py
129 changes: 119 additions & 10 deletions ibis/backends/tests/test_client.py
20 changes: 14 additions & 6 deletions ibis/backends/tests/test_dot_sql.py
46 changes: 18 additions & 28 deletions ibis/backends/tests/test_export.py
711 changes: 601 additions & 110 deletions ibis/backends/tests/test_generic.py
88 changes: 69 additions & 19 deletions ibis/backends/tests/test_map.py
114 changes: 108 additions & 6 deletions ibis/backends/tests/test_numeric.py
48 changes: 17 additions & 31 deletions ibis/backends/tests/test_param.py
32 changes: 26 additions & 6 deletions ibis/backends/tests/test_register.py
7 changes: 7 additions & 0 deletions ibis/backends/tests/test_set_ops.py
3 changes: 1 addition & 2 deletions ibis/backends/tests/test_sql.py
28 changes: 8 additions & 20 deletions ibis/backends/tests/test_string.py
8 changes: 4 additions & 4 deletions ibis/backends/tests/test_struct.py
102 changes: 74 additions & 28 deletions ibis/backends/tests/test_temporal.py
16 changes: 8 additions & 8 deletions ibis/backends/tests/test_vectorized_udf.py
19 changes: 5 additions & 14 deletions ibis/backends/tests/test_window.py
31 changes: 18 additions & 13 deletions ibis/backends/trino/__init__.py
2 changes: 1 addition & 1 deletion ibis/backends/trino/compiler.py
76 changes: 60 additions & 16 deletions ibis/backends/trino/datatypes.py
25 changes: 21 additions & 4 deletions ibis/backends/trino/registry.py
77 changes: 35 additions & 42 deletions ibis/backends/trino/tests/conftest.py
1 change: 1 addition & 0 deletions ibis/common/parsing.py
72 changes: 69 additions & 3 deletions ibis/common/tests/test_validators.py
12 changes: 9 additions & 3 deletions ibis/common/typing.py
69 changes: 51 additions & 18 deletions ibis/common/validators.py
18 changes: 4 additions & 14 deletions ibis/config.py
94 changes: 91 additions & 3 deletions ibis/expr/api.py
20 changes: 3 additions & 17 deletions ibis/expr/datatypes/cast.py
176 changes: 94 additions & 82 deletions ibis/expr/datatypes/core.py
33 changes: 20 additions & 13 deletions ibis/expr/datatypes/parse.py
9 changes: 6 additions & 3 deletions ibis/expr/datatypes/value.py
47 changes: 0 additions & 47 deletions ibis/expr/operations/analytic.py
6 changes: 3 additions & 3 deletions ibis/expr/operations/core.py
6 changes: 5 additions & 1 deletion ibis/expr/operations/generic.py
11 changes: 3 additions & 8 deletions ibis/expr/operations/logical.py
29 changes: 12 additions & 17 deletions ibis/expr/operations/relations.py
6 changes: 4 additions & 2 deletions ibis/expr/operations/strings.py
1 change: 0 additions & 1 deletion ibis/expr/operations/temporal.py
15 changes: 10 additions & 5 deletions ibis/expr/rules.py
134 changes: 89 additions & 45 deletions ibis/expr/schema.py
286 changes: 286 additions & 0 deletions ibis/expr/selectors.py
17 changes: 10 additions & 7 deletions ibis/expr/sql.py
49 changes: 38 additions & 11 deletions ibis/expr/types/core.py
156 changes: 141 additions & 15 deletions ibis/expr/types/generic.py
12 changes: 8 additions & 4 deletions ibis/expr/types/groupby.py
12 changes: 12 additions & 0 deletions ibis/expr/types/logical.py
2 changes: 2 additions & 0 deletions ibis/expr/types/numeric.py
84 changes: 63 additions & 21 deletions ibis/expr/types/relations.py
2 changes: 2 additions & 0 deletions ibis/expr/types/ruff.toml
13 changes: 6 additions & 7 deletions ibis/expr/types/strings.py
16 changes: 8 additions & 8 deletions ibis/expr/types/structs.py
4 changes: 2 additions & 2 deletions ibis/expr/visualize.py
Empty file added ibis/py.typed
Empty file.
21 changes: 12 additions & 9 deletions ibis/tests/benchmarks/test_benchmarks.py
2 changes: 1 addition & 1 deletion ibis/tests/expr/mocks.py
26 changes: 20 additions & 6 deletions ibis/tests/expr/test_datatypes.py
2 changes: 1 addition & 1 deletion ibis/tests/expr/test_format.py
27 changes: 6 additions & 21 deletions ibis/tests/expr/test_interactive.py
2 changes: 1 addition & 1 deletion ibis/tests/expr/test_literal.py
16 changes: 14 additions & 2 deletions ibis/tests/expr/test_schema.py
92 changes: 92 additions & 0 deletions ibis/tests/expr/test_selectors.py
2 changes: 1 addition & 1 deletion ibis/tests/expr/test_sql.py
46 changes: 37 additions & 9 deletions ibis/tests/expr/test_table.py
8 changes: 8 additions & 0 deletions ibis/tests/expr/test_value_exprs.py
6 changes: 6 additions & 0 deletions ibis/tests/expr/test_visualize.py
12 changes: 6 additions & 6 deletions ibis/tests/sql/snapshots/test_compiler/test_union/out.sql
12 changes: 1 addition & 11 deletions ibis/tests/sql/test_select_sql.py
293 changes: 129 additions & 164 deletions ibis/tests/sql/test_sqlalchemy.py
14 changes: 10 additions & 4 deletions ibis/tests/strategies.py
23 changes: 23 additions & 0 deletions ibis/tests/test_util.py
67 changes: 43 additions & 24 deletions ibis/util.py
18 changes: 15 additions & 3 deletions justfile
4 changes: 3 additions & 1 deletion mkdocs.yml
11 changes: 10 additions & 1 deletion nix/overlay.nix
3 changes: 3 additions & 0 deletions poetry-overrides.nix
1,210 changes: 719 additions & 491 deletions poetry.lock
63 changes: 57 additions & 6 deletions pyproject.toml
141 changes: 107 additions & 34 deletions requirements.txt