sqlchecker 0.3.2__tar.gz → 0.3.3__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.
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/PKG-INFO +1 -1
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/pyproject.toml +1 -1
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/src/sqlchecker/detectors/syntax.py +0 -1
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/.gitignore +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/.readthedocs.yaml +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/LICENSE +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/Makefile +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/README.md +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/datasets/catalogs/constraints.json +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/datasets/catalogs/miedema.json +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/datasets/catalogs/unicorsi.json +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/datasets/sql/constraints.sql +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/datasets/sql/miedema.sql +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/datasets/sql/unicorsi.sql +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/docs/Makefile +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/docs/conf.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/docs/index.rst +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/docs/make.bat +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/docs/requirements.txt +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/requirements.txt +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/src/sqlchecker/__init__.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/src/sqlchecker/detectors/__init__.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/src/sqlchecker/detectors/base.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/src/sqlchecker/detectors/complications.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/src/sqlchecker/detectors/logical.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/src/sqlchecker/detectors/semantic.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/test_detector.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_002_ambiguous_column.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_004_undefined_column.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_005_undefined_function.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_006_undefined_parameter.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_007_undefined_object.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_008_invalid_schema_names.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_009_misspellings.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_013_data_type_mismatch.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_014_aggregate_function_outside_select_or_having.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_015_nested_aggregate_functions.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_016_extraneous_omitted_grouping_column.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_017_having_without_group_by.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_019_using_where_twice.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_020_omitted_from.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_021_comparison_with_null.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_022_038_additional_omitted_semicolons.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_024_duplicate_clause.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_026_too_many_columns_in_subquery.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_030_keywords_order.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_035_is_where_not_applicable.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_037_nonstandard_operators.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_107_108_curly_square_or_unmatched_brackets.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/2_sem/test_040_tautological_inconsistent_expressions.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/2_sem/test_041_distinct_sum_avg.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/2_sem/test_050_constant_column_output.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/2_sem/test_051_duplicate_column_output.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_043_wildcards_without_like.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_058_incorrect_table_reference.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_059_extraneous_table_reference.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_062_missing_table_reference.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_070_extraneous_column_in_select.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_071_missing_column_from_select.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_072_missing_distinct_from_select.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_073_missing_as_from_select.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_110_111_wrong_invalid_wildcard.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_112_118_missing_extraneous_where_clause.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_113_119_missing_extraneous_group_by_clause.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_114_120_missing_extraneous_having_clause.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_115_121_missing_extraneous_order_by_clause.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_116_121_123_missing_extraneous_incorrect_limit_clause.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_117_122_missing_extraneous_incorrect_offset_clause.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_083_unnecessary_distinct_in_select.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_088_like_without_wildcards.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_092_unnecessary_distinct_in_aggregate_function.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_095_group_by_with_singleton_groups.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_097_group_by_can_be_replaced_by_distinct.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_100_order_by_in_subquery.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_126_unused_cte.py +0 -0
- {sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlchecker
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: This project analyses SQL statements and labels possible errors or complications.
|
|
5
5
|
Project-URL: Repository, https://github.com/DavidePonzini/sqlchecker
|
|
6
6
|
Project-URL: Documentation, https://sqlchecker.readthedocs.io/en/latest/index.html
|
|
@@ -758,7 +758,6 @@ class SyntaxErrorDetector(BaseDetector):
|
|
|
758
758
|
import dav_tools
|
|
759
759
|
def parse_expression_for_columns(expr: exp.Expression, alias: str | None = None):
|
|
760
760
|
'''Recursively parse an expression to extract all column references, handling aliases and aggregate functions.'''
|
|
761
|
-
dav_tools.messages.debug(f"Parsing expression for columns: {expr.sql()} with alias {alias}")
|
|
762
761
|
|
|
763
762
|
if isinstance(expr, exp.Star):
|
|
764
763
|
# SELECT * case: expand to all columns from all referenced tables
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_016_extraneous_omitted_grouping_column.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_022_038_additional_omitted_semicolons.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/1_syn/test_107_108_curly_square_or_unmatched_brackets.py
RENAMED
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/2_sem/test_040_tautological_inconsistent_expressions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_112_118_missing_extraneous_where_clause.py
RENAMED
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_113_119_missing_extraneous_group_by_clause.py
RENAMED
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_114_120_missing_extraneous_having_clause.py
RENAMED
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/3_log/test_115_121_missing_extraneous_order_by_clause.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_083_unnecessary_distinct_in_select.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_095_group_by_with_singleton_groups.py
RENAMED
|
File without changes
|
{sqlchecker-0.3.2 → sqlchecker-0.3.3}/tests/4_com/test_097_group_by_can_be_replaced_by_distinct.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|