sqlty 0.2.1__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sqlty-0.2.1 → sqlty-0.3.0}/PKG-INFO +3 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/README.md +2 -1
- {sqlty-0.2.1 → sqlty-0.3.0}/pyproject.toml +6 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/Cargo.lock +385 -41
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/Cargo.toml +3 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-ext/Cargo.toml +1 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-ext/src/lib.rs +24 -5
- sqlty-0.3.0/rust/crates/sqlty-ext/src/server.rs +131 -0
- sqlty-0.3.0/rust/crates/sqlty-lsp/Cargo.toml +18 -0
- sqlty-0.3.0/rust/crates/sqlty-lsp/src/actions.rs +103 -0
- sqlty-0.3.0/rust/crates/sqlty-lsp/src/lib.rs +422 -0
- sqlty-0.3.0/rust/crates/sqlty-lsp/src/tests.rs +436 -0
- sqlty-0.3.0/rust/crates/sqlty-lsp/src/text.rs +134 -0
- sqlty-0.3.0/rust/crates/sqlty-lsp/src/worker.rs +200 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/checker.rs +260 -85
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/fixer.rs +5 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/rewriter.rs +91 -33
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/rules.rs +14 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/tokens.rs +49 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/Cargo.toml +2 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/compile.rs +25 -3
- sqlty-0.3.0/rust/crates/sqlty-sql/rules/sqlite/datetime.inference.toml +37 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/api.rs +121 -34
- sqlty-0.3.0/rust/crates/sqlty-sql/src/analyzer/dialect.rs +348 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/explain.rs +5 -3
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/expr.rs +23 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/functions.rs +6 -3
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/inference.rs +48 -20
- sqlty-0.3.0/rust/crates/sqlty-sql/src/analyzer/input.rs +342 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/mod.rs +6 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/narrowing.rs +111 -37
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/nullability.rs +39 -6
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/operators.rs +5 -5
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/params.rs +82 -46
- sqlty-0.3.0/rust/crates/sqlty-sql/src/analyzer/planner_hints.sql +527 -0
- sqlty-0.3.0/rust/crates/sqlty-sql/src/analyzer/preprocess.rs +345 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/query.rs +11 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/references.rs +36 -17
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/resolve.rs +58 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/respell.rs +84 -144
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/scope.rs +7 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__dml__tests__returning_columns_in_queries.snap +1 -1
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__casts.snap +11 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__misc_expressions.snap +3 -3
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__cte_columns_are_resolved_like_tables.snap +1 -1
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__quoted_names_keep_their_case_in_postgres_only.snap +2 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__system_columns_exist_without_being_declared.snap +1 -1
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__unknown_names_say_what_is_missing.snap +2 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/star_expand.rs +2 -5
- sqlty-0.3.0/rust/crates/sqlty-sql/src/analyzer/suggest.rs +82 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/tests.rs +183 -12
- sqlty-0.3.0/rust/crates/sqlty-sql/src/analyzer/tokens.rs +181 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/typed.rs +37 -5
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/builtin_catalog.sql +0 -38
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/loader.rs +53 -21
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/mod.rs +35 -0
- sqlty-0.3.0/rust/crates/sqlty-sql/src/catalog/pg_catalog_views.sql +124 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/read.rs +24 -11
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/resolve.rs +127 -92
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/diagnostics.rs +74 -9
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/tests/inference_compiler.rs +19 -6
- {sqlty-0.2.1 → sqlty-0.3.0}/skills/sqlty/SKILL.md +1 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/skills/sqlty-check/SKILL.md +38 -3
- {sqlty-0.2.1 → sqlty-0.3.0}/skills/sqlty-ci/SKILL.md +1 -1
- {sqlty-0.2.1 → sqlty-0.3.0}/skills/sqlty-rewrite/SKILL.md +26 -0
- sqlty-0.3.0/skills/sqlty-server/SKILL.md +101 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/__init__.py +29 -4
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_breaking.py +21 -10
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_check.py +302 -59
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_cli.py +256 -108
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_config.py +47 -12
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_core.pyi +7 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_drivers.py +14 -2
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_helpers.py +208 -50
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_json_types.py +4 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_lint.py +23 -2
- sqlty-0.3.0/src/sqlty/_lsp_breaking.py +148 -0
- sqlty-0.3.0/src/sqlty/_lsp_bridge.py +72 -0
- sqlty-0.3.0/src/sqlty/_param_types.py +141 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_params.py +18 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_psycopg.py +35 -1
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_snapshot.py +4 -3
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_source.py +64 -4
- sqlty-0.3.0/src/sqlty/_type_extractor/__init__.py +46 -0
- sqlty-0.3.0/src/sqlty/_type_extractor/_stdlib.py +2722 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_type_extractor/ast_fields.py +129 -18
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_type_extractor/compat.py +4 -11
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_type_extractor/extract.py +35 -63
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_type_extractor/generic.py +13 -33
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_type_extractor/info.py +0 -8
- sqlty-0.3.0/src/sqlty/_type_extractor/pydantic_types.py +133 -0
- sqlty-0.3.0/src/sqlty/_type_extractor/stdlib.py +46 -0
- sqlty-0.3.0/src/sqlty/_type_extractor/symbols.py +87 -0
- sqlty-0.3.0/src/sqlty/_variants.py +856 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/core.py +54 -21
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/drivers/psycopg.py +65 -19
- sqlty-0.3.0/src/sqlty/rules/dynamic-query.md +64 -0
- sqlty-0.3.0/src/sqlty/rules/params-type-mismatch.md +64 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unchecked-query.md +5 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unknown-column.md +33 -1
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unknown-type.md +1 -1
- sqlty-0.2.1/rust/crates/sqlty-sql/rules/sqlite/datetime.inference.toml +0 -28
- sqlty-0.2.1/rust/crates/sqlty-sql/src/analyzer/dialect.rs +0 -171
- sqlty-0.2.1/rust/crates/sqlty-sql/src/analyzer/preprocess.rs +0 -503
- sqlty-0.2.1/src/sqlty/_type_extractor/__init__.py +0 -51
- sqlty-0.2.1/src/sqlty/_type_extractor/sandbox.py +0 -385
- {sqlty-0.2.1 → sqlty-0.3.0}/LICENSE +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-ext/build.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/Cargo.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/edit.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/lib.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/options.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/scan.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-python/src/template.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/build.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/README.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/aggregates.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/arithmetic.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/comparison.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/concat.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/conditional.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/datetime.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/json.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/math.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/strings.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/common/window.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/dialects.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/aggregates.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/arithmetic.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/bits.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/comparison.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/concat.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/conditional.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/datetime.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/encryption.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/json.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/math.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/misc.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/spatial.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/strings.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/mysql/system.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/admin.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/aggregates.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/arithmetic.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/arrays.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/binary.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/comparison.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/concat.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/conditional.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/datetime.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/enums.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/events.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/extensions.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/formatting.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/geometry.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/json.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/math.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/merge.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/network.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/ranges.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/rows.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/sequences.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/series.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/strings.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/system.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/textsearch.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/uuid.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/postgres/xml.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/aggregates.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/arithmetic.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/bitwise.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/fts.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/json.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/math.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/scalar.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/rules/sqlite/strings.inference.toml +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/dml.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/grouping.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/hashing.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/json.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/literals.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/memo.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/merged_star.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/names.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/pg_record_functions.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/registry.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__arrays_and_subscripts.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__case_expressions.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__casts_without_a_schema_do_not_complain.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__composite_fields_and_json_access.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__literals_and_unary_operators.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__expr__tests__mysql_and_sqlite_expressions.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__functions__tests__aggregates_in_postgres.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__functions__tests__function_availability_differs_by_dialect.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__functions__tests__return_types_follow_the_argument.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__functions__tests__unknown_functions_are_untyped_and_explained.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__literals__tests__value_sets_flow_through_expressions.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__names__tests__column_names_follow_postgres_figure_colname.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__operators__tests__arithmetic_promotes_numbers_and_types_date_math.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__operators__tests__binary_operators_in_queries.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__operators__tests__common_type_follows_postgres_union_rules.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__operators__tests__division_differs_between_postgres_and_mysql.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__column_names_come_from_the_first_branch.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__ctes.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__dialects_name_and_type_the_same_query_differently.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__projection_forms.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__recursive_ctes_settle_nullability.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__set_operations_combine_nullability.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__set_operations_unify_types.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__statements_that_are_not_queries_have_no_columns.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__unsupported_query_forms_are_explained.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__query__tests__values_lists.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__ambiguous_names_are_reported_once_per_query.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__names_are_not_judged_without_a_schema.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__nullability_comes_from_the_declaration.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__star_over_unreadable_sources_names_the_reason.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__resolve__tests__unqualified_names_resolve_to_the_first_source_that_has_them.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__scope__tests__correlated_subqueries_see_the_outer_scope.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__scope__tests__derived_tables_ctes_and_views.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__scope__tests__nullability_follows_the_join_kind.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__scope__tests__opaque_sources_explain_themselves.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__scope__tests__star_expansion_over_joins.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/snapshots/sqlty_sql__analyzer__scope__tests__table_names_fold_by_dialect.snap +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/sql_type.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/table_functions.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/test_support.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/analyzer/text_names.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/alter.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/columns.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/catalog/names.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/ddl.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/json.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/lib.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/placeholders.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/src/values.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/rust/crates/sqlty-sql/tests/timing.rs +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/skills/sqlty-adopt/SKILL.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/skills/sqlty-breaking/SKILL.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/__main__.py +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_decode.py +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_gitignore.py +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_json_shape.py +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/_type_extractor/subtype.py +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/magic.py +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/py.typed +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/ambiguous-column.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/column-count-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/column-name-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/column-type-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/fstring-skipped.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/inline-sql-comment.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/insert-missing-column.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/insert-value-count.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/json-shape-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/literal-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/mysql-sql-marker.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/narrow-type.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/nullable-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/param-count-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/param-type-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/redundant-literal.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/redundant-optional.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/select-star-no-schema.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/select-star.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/stale-rewrite.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/stale-type.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/tstring-skipped.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/typeddict-inheritance.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/typeddict-key-mismatch.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/ungrouped-column.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unknown-function.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unknown-table.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unparsed-query.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unsupported-syntax.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/untyped-query.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty/rules/unused-ignore.md +0 -0
- {sqlty-0.2.1 → sqlty-0.3.0}/src/sqlty_magic.pth +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlty
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -193,7 +193,8 @@ sqlty strip . # undo: back to plain strings
|
|
|
193
193
|
sqlty one module at a time and back out. New project:
|
|
194
194
|
[Quickstart](https://jirikuncar.github.io/sqlty/quickstart/). Existing codebase:
|
|
195
195
|
[Migration](https://jirikuncar.github.io/sqlty/recipes/migration/), starting
|
|
196
|
-
with `pg_dump --schema-only app > schema.sql`.
|
|
196
|
+
with `pg_dump --schema-only app > schema.sql`. In the editor:
|
|
197
|
+
[VS Code](https://jirikuncar.github.io/sqlty/recipes/vscode/).
|
|
197
198
|
|
|
198
199
|
Not a fit for ORMs, SQL built at runtime, or runtime validation;
|
|
199
200
|
[Why SQLTy?](https://jirikuncar.github.io/sqlty/motivation/) compares it with
|
|
@@ -160,7 +160,8 @@ sqlty strip . # undo: back to plain strings
|
|
|
160
160
|
sqlty one module at a time and back out. New project:
|
|
161
161
|
[Quickstart](https://jirikuncar.github.io/sqlty/quickstart/). Existing codebase:
|
|
162
162
|
[Migration](https://jirikuncar.github.io/sqlty/recipes/migration/), starting
|
|
163
|
-
with `pg_dump --schema-only app > schema.sql`.
|
|
163
|
+
with `pg_dump --schema-only app > schema.sql`. In the editor:
|
|
164
|
+
[VS Code](https://jirikuncar.github.io/sqlty/recipes/vscode/).
|
|
164
165
|
|
|
165
166
|
Not a fit for ORMs, SQL built at runtime, or runtime validation;
|
|
166
167
|
[Why SQLTy?](https://jirikuncar.github.io/sqlty/motivation/) compares it with
|
|
@@ -80,6 +80,7 @@ dev = [
|
|
|
80
80
|
"rumdl>=0.3.0",
|
|
81
81
|
"vale>=3.22.0.0",
|
|
82
82
|
"zizmor>=1.31.1",
|
|
83
|
+
"pydantic[email]>=2.14.1",
|
|
83
84
|
]
|
|
84
85
|
cli = ["rich>=15.0.0"]
|
|
85
86
|
# Only the DuckDB type tests need it, and it has no wheel for every Python.
|
|
@@ -88,9 +89,12 @@ psycopg = ["psycopg>=3.2.12"]
|
|
|
88
89
|
fuzz = [
|
|
89
90
|
"hypothesis>=6.140",
|
|
90
91
|
]
|
|
92
|
+
bench = [
|
|
93
|
+
"pytest-codspeed>=5.0.3",
|
|
94
|
+
]
|
|
91
95
|
|
|
92
96
|
[tool.pytest.ini_options]
|
|
93
|
-
addopts = ["-p", "tests._mdtest.plugin", "--cov-report=term-missing", "--cov-report=html", "-v"]
|
|
97
|
+
addopts = ["-p", "tests._mdtest.plugin", "-p", "tests._no_exec", "--cov-report=term-missing", "--cov-report=html", "-v"]
|
|
94
98
|
pythonpath = ["."]
|
|
95
99
|
testpaths = ["tests", "docs", "src/sqlty/rules", "README.md"]
|
|
96
100
|
mdtest_paths = ["tests/mdtest", "docs", "src/sqlty/rules", "README.md", "skills"]
|
|
@@ -165,7 +169,7 @@ indent-style = "space"
|
|
|
165
169
|
[tool.rumdl]
|
|
166
170
|
# Long lines are tables and links; spaces in code spans show `--sql ` on purpose.
|
|
167
171
|
disable = ["MD013", "MD038"]
|
|
168
|
-
exclude = ["site", ".vale", ".github", "tests", "scripts/compat/reports", "
|
|
172
|
+
exclude = ["site", ".vale", ".github", "tests", "scripts/compat/reports", "plans/2026-02-13-future.md", "rust/target", "proofs/.lake"]
|
|
169
173
|
|
|
170
174
|
[tool.rumdl.per-file-ignores]
|
|
171
175
|
# The demo GIF needs HTML for its width and centering.
|