A modular SQL linter and auto-formatter with support for multiple dialects and templated code.
This report summarizes scanner evidence for sqlfluff/sqlfluff, a Python project with 9,942 GitHub stars. SynthScan examined 248,784 lines of code across 684 source files, recording 2033 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 11.8 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1488 finding(s).
Are imports declared and package/API names verified? 288 finding(s).
Are wrappers, guards, and repeated structures necessary? 1263 finding(s).
Which changes need focused human review? 2033 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2033 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util.py | 21 | def _extract_whats_changed_section(release_body: str) -> str: | CODE |
| LOW | test/conftest.py | 46 | def config_overrides_for_fixture( | CODE |
| LOW | test/conftest.py | 187 | def _generate_test_segments_func(elems): | CODE |
| LOW | test/conftest.py | 269 | def raise_critical_errors_after_fix(monkeypatch): | CODE |
| LOW | test/conftest.py | 284 | def fail_on_parse_error_after_fix(monkeypatch): | CODE |
| LOW | test/conftest.py | 295 | def raise_error_apply_fixes_check_issue(message, *args): # pragma: no cover | CODE |
| LOW | test/conftest.py | 299 | def raise_error_conflicting_fixes_same_anchor(message: str): # pragma: no cover | CODE |
| LOW⚡ | test/docsv_redirect_rules_test.py | 202 | def test_directory_targets_count_as_present(assemble_site, dist): | CODE |
| LOW⚡ | test/docsv_redirect_rules_test.py | 209 | def test_missing_targets_can_be_downgraded_to_a_warning(assemble_site, dist): | CODE |
| LOW⚡ | test/docsv_redirect_rules_test.py | 216 | def test_sphinx_builds_skip_target_validation(assemble_site, tmp_path): | CODE |
| LOW⚡ | test/docsv_redirect_rules_test.py | 323 | def test_malformed_keys_are_rejected(assemble_site, tmp_path, key, expected): | CODE |
| LOW⚡ | test/docsv_redirect_rules_test.py | 332 | def test_a_dotdot_target_is_rejected(assemble_site, tmp_path): | CODE |
| LOW⚡ | test/docsv_redirect_rules_test.py | 342 | def test_targets_with_no_page_are_rejected(assemble_site, tmp_path, target): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 60 | def test_both_url_suffixes_are_covered(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 75 | def test_rules_are_version_agnostic(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 96 | def test_rules_are_not_forced(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 108 | def test_fragments_are_preserved(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 117 | def test_a_permalink_to_a_permalink_is_followed(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 141 | def test_a_permalink_cycle_is_rejected(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 147 | def test_rules_follow_the_root_redirects(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 161 | def test_no_permalink_map_leaves_the_root_redirects_alone(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 172 | def test_comment_keys_are_dropped(assemble_site, tmp_path): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 185 | def test_a_missing_map_is_not_fatal(assemble_site, tmp_path): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 190 | def test_a_missing_target_fails_the_publish(assemble_site, dist): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 254 | def test_every_shipped_permalink_resolves(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 295 | def test_malformed_targets_are_rejected(assemble_site, tmp_path, target): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 355 | def test_validation_and_rule_generation_normalise_alike(assemble_site): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 370 | def test_the_reason_an_entry_was_rejected_is_reported(assemble_site, tmp_path): | CODE |
| LOW | test/docsv_redirect_rules_test.py | 382 | def test_the_shipped_map_loads_cleanly(assemble_site): | CODE |
| LOW | test/generate_parse_fixture_yml.py | 79 | def _is_matching_new_criteria(example: ParseExample): | CODE |
| LOW | test/generate_parse_fixture_yml.py | 95 | def generate_one_parse_fixture( | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 75 | def test_published_at_is_overwritten_when_supplied_on_rebuild(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 85 | def test_published_at_is_absent_for_a_new_release_without_one(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 94 | def test_published_at_is_not_applied_to_channels(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 218 | def test_channels_sort_before_releases(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 227 | def test_releases_sort_newest_first(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 237 | def test_post_release_sorts_above_the_release_it_follows(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 263 | def test_shorter_versions_sort_as_if_padded(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 272 | def test_unparseable_keys_sort_last(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 281 | def test_builder_is_recorded_on_the_entry(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 290 | def test_entries_are_listed_by_default(assemble_site): | CODE |
| LOW⚡ | test/docsv_assemble_site_test.py | 299 | def test_unlisted_entries_are_flagged(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 52 | def test_published_at_is_recorded_when_supplied(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 61 | def test_published_at_is_preserved_when_omitted_on_rebuild(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 133 | def test_unsafe_channels_are_rejected(assemble_site, channel): | CODE |
| LOW | test/docsv_assemble_site_test.py | 143 | def test_drive_qualified_channels_are_rejected(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 161 | def test_real_channels_are_accepted(assemble_site, channel): | CODE |
| LOW | test/docsv_assemble_site_test.py | 169 | def test_assemble_site_refuses_to_escape_the_output_dir(assemble_site, tmp_path): | CODE |
| LOW | test/docsv_assemble_site_test.py | 194 | def test_rebuild_leaves_other_versions_untouched(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 252 | def test_prereleases_sort_below_their_own_release(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 318 | def test_shared_assets_are_republished_every_run(assemble_site, tmp_path): | CODE |
| LOW | test/docsv_assemble_site_test.py | 359 | def test_versions_page_lists_unlisted_versions(assemble_site, tmp_path): | CODE |
| LOW | test/docsv_assemble_site_test.py | 383 | def test_versions_page_groups_releases_by_major(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 402 | def test_versions_page_shows_release_date_before_version(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 420 | def test_versions_page_accepts_date_only_release_metadata(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 434 | def test_versions_page_ignores_invalid_release_date(assemble_site, capsys): | CODE |
| LOW | test/docsv_assemble_site_test.py | 461 | def test_headers_do_not_cache_shared_assets_immutably(assemble_site): | CODE |
| LOW | test/docsv_assemble_site_test.py | 471 | def test_beta_headers_keep_archived_sphinx_pages_out_of_search( | CODE |
| LOW | test/docsv_assemble_site_test.py | 482 | def test_production_indexing_keeps_only_stable_search_facing( | CODE |
| LOW | test/docsv_assemble_site_test.py | 516 | def test_stable_html_gets_a_single_canonical_without_beta_noindex( | CODE |
| 934 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/core/parser/rust_cp01_arena_test.py | 0 | apply the rust arena detection's fixes by leaf index, return fixed sql. | STRING |
| HIGH | test/core/parser/rust_cp03_arena_test.py | 0 | apply the rust arena detection's fixes by leaf index, return fixed sql. | STRING |
| HIGH | test/core/parser/rust_cp04_arena_test.py | 0 | apply the rust arena detection's fixes by leaf index, return fixed sql. | STRING |
| HIGH | test/dialects/conftest.py | 0 | test that specific segments parse as expected. nb: we're testing the parse function not the match function although this | STRING |
| HIGH | test/dialects/postgres_test.py | 0 | test that specific segments parse as expected. nb: we're testing the parse function not the match function although this | STRING |
| HIGH | test/dialects/ansi_test.py | 0 | test that specific segments parse as expected. nb: we're testing the parse function not the match function although this | STRING |
| HIGH | test/rules/cp04_rust_dispatch_test.py | 0 | fixing through the linter is identical with use_rust_rules on vs off. | STRING |
| HIGH | test/rules/cp01_rust_dispatch_test.py | 0 | fixing through the linter is identical with use_rust_rules on vs off. | STRING |
| HIGH | test/rules/cp03_rust_dispatch_test.py | 0 | fixing through the linter is identical with use_rust_rules on vs off. | STRING |
| HIGH | test/rules/cp04_rust_dispatch_test.py | 0 | ignore_words is honoured identically on the rust path. | STRING |
| HIGH | test/rules/cp01_rust_dispatch_test.py | 0 | ignore_words is honoured identically on the rust path. | STRING |
| HIGH | test/rules/cp03_rust_dispatch_test.py | 0 | ignore_words is honoured identically on the rust path. | STRING |
| HIGH | test/rules/cp04_rust_dispatch_test.py | 0 | the rust detection is called when enabled, and not when disabled. | STRING |
| HIGH | test/rules/cp01_rust_dispatch_test.py | 0 | the rust detection is called when enabled, and not when disabled. | STRING |
| HIGH | test/rules/cp03_rust_dispatch_test.py | 0 | the rust detection is called when enabled, and not when disabled. | STRING |
| HIGH | test/rules/cp04_rust_dispatch_test.py | 0 | ignore_words_regex isn't implemented natively -> python fallback, no call. | STRING |
| HIGH | test/rules/cp01_rust_dispatch_test.py | 0 | ignore_words_regex isn't implemented natively -> python fallback, no call. | STRING |
| HIGH | test/rules/cp03_rust_dispatch_test.py | 0 | ignore_words_regex isn't implemented natively -> python fallback, no call. | STRING |
| HIGH | src/sqlfluff/core/parser/segments/file.py | 0 | a segment representing a whole file or script. this is also the default "root" segment of the dialect, and so is usually | STRING |
| HIGH | src/sqlfluff/dialects/dialect_ansi.py | 0 | a segment representing a whole file or script. this is also the default "root" segment of the dialect, and so is usually | STRING |
| HIGH | src/sqlfluff/dialects/dialect_bigquery.py | 0 | a segment representing a whole file or script. this is also the default "root" segment of the dialect, and so is usually | STRING |
| HIGH | src/sqlfluff/core/templaters/placeholder.py | 0 | process a string and return one or more variant renderings. note that the arguments are enforced as keywords because tem | STRING |
| HIGH | src/sqlfluff/core/templaters/python.py | 0 | process a string and return one or more variant renderings. note that the arguments are enforced as keywords because tem | STRING |
| HIGH | src/sqlfluff/core/templaters/jinja.py | 0 | process a string and return one or more variant renderings. note that the arguments are enforced as keywords because tem | STRING |
| HIGH | src/sqlfluff/utils/functional/segment_predicates.py | 0 | defines commonly used raw file slice predicates for rule writers. for consistency, all the predicates in this module are | STRING |
| HIGH | …ff/utils/functional/templated_file_slice_predicates.py | 0 | defines commonly used raw file slice predicates for rule writers. for consistency, all the predicates in this module are | STRING |
| HIGH | …sqlfluff/utils/functional/raw_file_slice_predicates.py | 0 | defines commonly used raw file slice predicates for rule writers. for consistency, all the predicates in this module are | STRING |
| HIGH | src/sqlfluff/utils/functional/segment_predicates.py | 0 | returns a function that determines if segment is one the types. | STRING |
| HIGH | …sqlfluff/utils/functional/raw_file_slice_predicates.py | 0 | returns a function that determines if segment is one the types. | STRING |
| HIGH | …ff/utils/functional/templated_file_slice_predicates.py | 0 | returns a function that determines if segment is one the types. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_teradata.py | 0 | a column definition, e.g. for create table or alter table. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_oracle.py | 0 | a column definition, e.g. for create table or alter table. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_mysql.py | 0 | a column definition, e.g. for create table or alter table. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_ansi.py | 0 | a column definition, e.g. for create table or alter table. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_trino.py | 0 | a column definition, e.g. for create table or alter table. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_teradata.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_impala.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_postgres.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_exasol.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_vertica.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_ansi.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_snowflake.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_trino.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_flink.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_materialize.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_greenplum.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_redshift.py | 0 | a generic segment, to any of its child subsegments. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_doris.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_tsql.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_mariadb.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_exasol.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_mysql.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_ansi.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_starrocks.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_postgres.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_vertica.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_snowflake.py | 0 | a column option; each create table column can have 0 or more. https://docs.snowflake.com/en/sql-reference/sql/create-tab | STRING |
| HIGH | src/sqlfluff/dialects/dialect_tsql.py | 0 | overriding statementsegment to allow for additional segment parsing. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_hive.py | 0 | overriding statementsegment to allow for additional segment parsing. | STRING |
| HIGH | src/sqlfluff/dialects/dialect_athena.py | 0 | overriding statementsegment to allow for additional segment parsing. | STRING |
| 81 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/rules/std_LT01_jinja_alignment_test.py | 7 | CODE | |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 40 | CODE | |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 42 | CODE | |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 43 | CODE | |
| LOW | plugins/sqlfluff-templater-dbt/test/templater_test.py | 27 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 36 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 37 | CODE | |
| LOW | docsv/scripts/assemble-site.py | 4 | CODE | |
| LOW | docsv/scripts/inject-shared-picker.py | 18 | CODE | |
| LOW | docsv/scripts/smoke-check-assembled-site.py | 4 | CODE | |
| LOW | utils/rust_to_python_grammar.py | 17 | CODE | |
| LOW | src/sqlfluff/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/formatter.py | 19 | CODE | |
| LOW | src/sqlfluff/core/formatter.py | 20 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 6 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 9 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 9 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 22 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 23 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 23 | CODE | |
| LOW | src/sqlfluff/core/__init__.py | 26 | CODE | |
| LOW | src/sqlfluff/core/errors.py | 17 | CODE | |
| LOW | src/sqlfluff/core/errors.py | 17 | CODE | |
| LOW | src/sqlfluff/core/errors.py | 18 | CODE | |
| LOW | src/sqlfluff/core/errors.py | 18 | CODE | |
| LOW | src/sqlfluff/core/errors.py | 21 | CODE | |
| LOW | src/sqlfluff/core/errors.py | 21 | CODE | |
| LOW | src/sqlfluff/core/config/__init__.py | 12 | CODE | |
| LOW | src/sqlfluff/core/config/__init__.py | 13 | CODE | |
| LOW | src/sqlfluff/core/config/__init__.py | 13 | CODE | |
| LOW | src/sqlfluff/core/config/__init__.py | 13 | CODE | |
| LOW | src/sqlfluff/core/config/__init__.py | 13 | CODE | |
| LOW | src/sqlfluff/core/config/__init__.py | 13 | CODE | |
| LOW | src/sqlfluff/core/config/fluffconfig.py | 3 | CODE | |
| LOW | src/sqlfluff/core/config/loader.py | 9 | CODE | |
| LOW | src/sqlfluff/core/linter/__init__.py | 3 | CODE | |
| LOW | src/sqlfluff/core/linter/__init__.py | 4 | CODE | |
| LOW | src/sqlfluff/core/linter/__init__.py | 4 | CODE | |
| LOW | src/sqlfluff/core/linter/__init__.py | 4 | CODE | |
| LOW | src/sqlfluff/core/linter/__init__.py | 5 | CODE | |
| LOW | src/sqlfluff/core/linter/__init__.py | 6 | CODE | |
| LOW | src/sqlfluff/core/linter/__init__.py | 7 | CODE | |
| LOW | src/sqlfluff/core/linter/fix.py | 12 | CODE | |
| LOW | src/sqlfluff/core/linter/linting_result.py | 14 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 41 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 47 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 48 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 49 | CODE | |
| LOW | src/sqlfluff/core/plugin/hookspecs.py | 13 | CODE | |
| LOW | src/sqlfluff/core/parser/match_result.py | 15 | CODE | |
| 154 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util.py | 112 | CODE | |
| LOW | test/conftest.py | 61 | CODE | |
| LOW | test/conftest.py | 112 | CODE | |
| LOW | test/conftest.py | 187 | CODE | |
| LOW | test/generate_parse_fixture_yml.py | 26 | CODE | |
| LOW | test/core/parser/parity/compare.py | 462 | CODE | |
| LOW | test/core/parser/parity/compare.py | 539 | CODE | |
| LOW | test/cli/commands_test.py | 2001 | CODE | |
| LOW | test/cli/commands_test.py | 2184 | CODE | |
| LOW | test/cli/test_parse_with_positions.py | 222 | CODE | |
| LOW | test/cli/test_parse_with_positions.py | 256 | CODE | |
| LOW | test/rules/std_fix_auto_test.py | 47 | CODE | |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 634 | CODE | |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 654 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 66 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 83 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 504 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 575 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 593 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 668 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 687 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 728 | CODE | |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 84 | CODE | |
| LOW | docsv/scripts/generate-cli-docs.py | 89 | CODE | |
| LOW | docsv/scripts/generate-api-docs.py | 27 | CODE | |
| LOW | docsv/scripts/generate-api-docs.py | 112 | CODE | |
| LOW | docsv/scripts/generate-api-docs.py | 198 | CODE | |
| LOW | docsv/scripts/generate-api-docs.py | 450 | CODE | |
| LOW | docsv/scripts/generate-rules-docs.py | 209 | CODE | |
| LOW | docsv/scripts/generate-rules-docs.py | 536 | CODE | |
| LOW | utils/build_parsers.py | 263 | CODE | |
| LOW | utils/build_parsers.py | 376 | CODE | |
| LOW | utils/build_parsers.py | 1365 | CODE | |
| LOW | utils/compare_parser_metrics.py | 104 | CODE | |
| LOW | utils/compare_parser_metrics.py | 336 | CODE | |
| LOW | utils/benchmark_parsing.py | 69 | CODE | |
| LOW | examples/01_basic_api_usage.py | 48 | CODE | |
| LOW | src/sqlfluff/diff_quality_plugin.py | 54 | CODE | |
| LOW | src/sqlfluff/core/config/validate.py | 23 | CODE | |
| LOW | src/sqlfluff/core/config/loader.py | 51 | CODE | |
| LOW | src/sqlfluff/core/config/ini.py | 12 | CODE | |
| LOW | src/sqlfluff/core/linter/patch.py | 58 | CODE | |
| LOW | src/sqlfluff/core/linter/patch.py | 271 | CODE | |
| LOW | src/sqlfluff/core/linter/runner.py | 174 | CODE | |
| LOW | src/sqlfluff/core/linter/discovery.py | 179 | CODE | |
| LOW | src/sqlfluff/core/linter/fix.py | 107 | CODE | |
| LOW | src/sqlfluff/core/linter/linted_dir.py | 228 | CODE | |
| LOW | src/sqlfluff/core/linter/linting_result.py | 135 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 170 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 457 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 1141 | CODE | |
| LOW | src/sqlfluff/core/parser/match_result.py | 197 | CODE | |
| LOW | src/sqlfluff/core/parser/rust_parser.py | 190 | CODE | |
| LOW | src/sqlfluff/core/parser/context.py | 165 | CODE | |
| LOW | src/sqlfluff/core/parser/lexer.py | 496 | CODE | |
| LOW | src/sqlfluff/core/parser/lexer.py | 195 | CODE | |
| LOW | src/sqlfluff/core/parser/match_algorithms.py | 140 | CODE | |
| LOW | src/sqlfluff/core/parser/match_algorithms.py | 366 | CODE | |
| LOW | src/sqlfluff/core/parser/match_algorithms.py | 553 | CODE | |
| LOW | src/sqlfluff/core/parser/grammar/sequence.py | 36 | CODE | |
| 114 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | requirements_dev.txt | 4 | # --------------------------- | COMMENT |
| MEDIUM | requirements_dev.txt | 10 | # -------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 16 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 18 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 69 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 71 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 550 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 552 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 1121 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/rust_parser_test.py | 1130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 632 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 634 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 693 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 702 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 950 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 961 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/parity/compare.py | 346 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/parity/compare.py | 354 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/parity/compare.py | 424 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/core/parser/parity/compare.py | 426 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/segments/segments_base_test.py | 338 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/core/parser/segments/segments_base_test.py | 342 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 17 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 136 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 138 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 174 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …s/sqlfluff-templater-sqlmesh/test/tier_mapping_test.py | 176 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docsv/scripts/generate-internals-docs.py | 38 | # ── per-page introductory text ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | docsv/scripts/generate-internals-docs.py | 119 | # ── introspection helpers ───────────────────────────────────────────────────── | STRING |
| MEDIUM | docsv/scripts/generate-internals-docs.py | 194 | # ── markdown rendering ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docsv/scripts/generate-internals-docs.py | 279 | # ── page builders ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docsv/scripts/generate-internals-docs.py | 387 | # ── sidebar config ──────────────────────────────────────────────────────────── | STRING |
| MEDIUM | docsv/scripts/generate-internals-docs.py | 405 | # ── entry point ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/sqlfluff/core/dialects/common.py | 78 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/sqlfluff/core/dialects/common.py | 87 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/sqlfluff/core/dialects/common.py | 348 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | src/sqlfluff/core/dialects/common.py | 350 | # ============================================================================= | COMMENT |
| MEDIUM | src/sqlfluff/utils/reflow/respace.py | 27 | # --------------------------- | COMMENT |
| MEDIUM | src/sqlfluff/utils/reflow/respace.py | 29 | # --------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tox.ini | 41 | # consistent results. | COMMENT |
| LOW | test/core/linter/linted_file_test.py | 121 | # which should trigger the logic to ensure that the source | COMMENT |
| LOW | test/core/parser/rust_parser_test.py | 941 | recovered a proper set_expression with both arms intact - now both | COMMENT |
| LOW | test/utils/reflow/reindent_test.py | 401 | # JOIN | COMMENT |
| LOW | test/utils/reflow/reindent_test.py | 501 | _IndentPoint(7, 1, 0, 1, 5, False, ()), | COMMENT |
| LOW | test/utils/reflow/reindent_test.py | 541 | ( | COMMENT |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 141 | # This one seems to be less of an issue in testing, but I'm | COMMENT |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 741 | # The explanation on the undefined macro error is already fairly | COMMENT |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 801 | # 1. Assertion errors in TemplatedFile, when it sanity checks the | COMMENT |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 821 | # So for files that have no templated elements in them, render_func | COMMENT |
| LOW | docsv/configuration/index.md | 61 | COMMENT | |
| LOW | docsv/configuration/index.md | 101 | exclude_rules = ambiguous.column_count, structure.column_order | COMMENT |
| LOW | docsv/configuration/index.md | 121 | [sqlfluff:indentation] | COMMENT |
| LOW | utils/build_parsers.py | 101 | # specify casefold | COMMENT |
| LOW | utils/build_parsers.py | 281 | # Pin the object so its id() cannot be reused by a different grammar | COMMENT |
| LOW | examples/01_basic_api_usage.py | 21 | # ... | COMMENT |
| LOW | examples/03_getting_rules_and_dialects.py | 21 | # ... | COMMENT |
| LOW | .github/FUNDING.yml | 1 | # sqlfluff is free to use to improve sql in whatever context you | COMMENT |
| LOW | .github/workflows/ci-tests.yml | 1 | ############################# | COMMENT |
| LOW | .github/workflows/publish-docs.yaml | 101 | "got '${DISPATCH_VERSION}'." >&2 | COMMENT |
| LOW | sqlfluffrs/pyproject.toml | 1 | [build-system] | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_api.rs | 1 | //! Ergonomic API for Table-Driven Grammar Access | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_inst.rs | 1 | //! Table-Driven Grammar Instruction Format | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_inst.rs | 61 | // pub enum ParseMode { | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_inst.rs | 181 | /// | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_inst.rs | 201 | /// | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_inst.rs | 221 | /// - Use `exclude_idx` if HAS_EXCLUDE flag set | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_inst.rs | 241 | pub parse_mode: ParseMode, | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/identity.rs | 1 | //! Process-global unique identifiers for tokens. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/string.rs | 1 | //! Small string helpers shared across the workspace. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/parser.rs | 101 | COMMENT | |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_tables.rs | 1 | //! Table-Driven Grammar Storage | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_tables.rs | 21 | //! Sequence( | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_tables.rs | 41 | COMMENT | |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_tables.rs | 61 | /// Instructions index into this table via `first_terminator_idx` + `terminator_count`. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_tables.rs | 81 | /// - simple_hint indices (optional) | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_tables.rs | 101 | /// Contains pre-computed simple hints for fast pruning of OneOf alternatives. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/grammar_tables.rs | 121 | COMMENT | |
| LOW | sqlfluffrs/sqlfluffrs_types/src/token/fmt.rs | 1 | use super::Token; | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/token/mod.rs | 721 | } | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/token/mod.rs | 741 | // let mut subkeys = Vec::new(); | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_types/src/token/mod.rs | 761 | // result.insert(key, Some(serde_json::Value::Object(merged_map))); | COMMENT |
| LOW | sqlfluffrs/tests/test_delimited_terminator_timing.rs | 1 | //! Test cases to verify terminator timing behavior in Delimited grammar | COMMENT |
| LOW | sqlfluffrs/tests/test_delimited_terminator_timing.rs | 21 | fn test_delimited_where_terminator_matches_element() { | COMMENT |
| LOW | sqlfluffrs/tests/test_delimited_terminator_timing.rs | 41 | COMMENT | |
| LOW | sqlfluffrs/tests/test_delimited_terminator_timing.rs | 61 | /// 5. Match "b" ✓ | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_benchmarks/build.rs | 1 | //! Build script for the TPC benchmark crate. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_benchmarks/examples/time_tpc.rs | 1 | /// time_tpc: timing and parser-stats harness for TPC-H and TPC-DS benchmarks. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_benchmarks/benches/tpc_bench.rs | 1 | /// TPC-H and TPC-DS lex and parse benchmarks. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_benchmarks/src/lib.rs | 1 | //! Shared helpers for the TPC-H / TPC-DS lex and parse benchmarks. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_python/src/marker.rs | 101 | self.0.source_str() | COMMENT |
| LOW | …luffrs/sqlfluffrs_python/src/templater/templatefile.rs | 21 | /// POINTER first (see `sqlfluffrs_types/src/marker.rs`), so one Python object | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_rules/src/lib.rs | 1 | //! Rust-native lint rules, run over the parse arena's public read API. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_rules/src/cp03.rs | 1 | //! CP03 (function-name capitalisation) detection over the parse arena. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_rules/src/capitalisation.rs | 1 | //! Shared detection logic for the capitalisation rule bundle (CP01/CP03/CP04 | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_rules/src/cp01.rs | 1 | //! CP01 (keyword capitalisation) detection over the parse arena. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_rules/src/python.rs | 1 | //! PyO3 bindings for the Rust-native rules. | COMMENT |
| LOW | sqlfluffrs/benches/baseline_phase1.rs | 1 | /// Phase 1 Baseline Benchmarks for Table-Driven Grammar Migration | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_dialects/build.rs | 1 | //! Cargo build script for `sqlfluffrs_dialects`. | COMMENT |
| LOW | sqlfluffrs/sqlfluffrs_dialects/build.rs | 21 | //! | COMMENT |
| 105 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/core/plugin_test.py | 40 | except KeyError: | CODE |
| HIGH | test/core/plugin_test.py | 44 | except KeyError: | CODE |
| HIGH | test/core/linter/linted_file_test.py | 263 | except Exception: | CODE |
| HIGH | test/dialects/conftest.py | 35 | except TypeError: | CODE |
| HIGH | plugins/sqlfluff-templater-dbt/test/templater_test.py | 30 | except ModuleNotFoundError: | CODE |
| HIGH | docsv/scripts/generate-internals-docs.py | 189 | except Exception: | CODE |
| HIGH | docsv/scripts/generate-internals-docs.py | 149 | except Exception: | CODE |
| HIGH | docsv/scripts/generate-api-docs.py | 166 | except (ValueError, TypeError): | CODE |
| HIGH | docsv/scripts/generate-api-docs.py | 183 | except Exception: | CODE |
| HIGH | utils/build_parsers.py | 370 | except Exception: | CODE |
| HIGH | utils/build_parsers.py | 345 | except Exception: | CODE |
| HIGH | utils/benchmark_parsing.py | 126 | except Exception: | CODE |
| HIGH | src/sqlfluff/core/errors.py | 22 | except ImportError: | CODE |
| HIGH | src/sqlfluff/core/config/removed.py | 322 | except KeyError: | CODE |
| HIGH | src/sqlfluff/core/linter/linted_file.py | 430 | except FileNotFoundError: | CODE |
| HIGH | src/sqlfluff/core/parser/grammar/base.py | 54 | except KeyError: | CODE |
| HIGH | src/sqlfluff/core/parser/segments/base.py | 257 | except (AttributeError, KeyError): # pragma: no cover | CODE |
| HIGH | src/sqlfluff/core/templaters/jinja.py | 157 | except UndefinedError: | CODE |
| HIGH | src/sqlfluff/core/templaters/python.py | 768 | except ValueError: | CODE |
| HIGH | src/sqlfluff/core/templaters/python.py | 787 | except ValueError: | CODE |
| HIGH | src/sqlfluff/utils/reflow/rebreak.py | 418 | except UnboundLocalError: | CODE |
| HIGH | src/sqlfluff/utils/reflow/rebreak.py | 819 | except UnboundLocalError: # pragma: no cover | CODE |
| HIGH | src/sqlfluff/rules/structure/ST06.py | 332 | except (AttributeError, AssertionError): | CODE |
| HIGH | src/sqlfluff/rules/structure/ST06.py | 344 | except (AttributeError, AssertionError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/core/parser/lexer_test.py | 490 | # Create a mock templated file | COMMENT |
| MEDIUM | test/core/parser/lexer_test.py | 553 | # Create a mock token with an unknown type | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 313 | # Create a parser | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 346 | # Create a parser | COMMENT |
| MEDIUM | test/core/parser/rust_parser_test.py | 380 | # Create a parser | COMMENT |
| MEDIUM | test/core/parser/segments/segments_meta_test.py | 64 | # Create a TemplateSegment with position marker | COMMENT |
| MEDIUM | test/core/templaters/jinja_test.py | 1762 | # Create a TemplatedFile from the results. This runs some useful sanity | COMMENT |
| MEDIUM | test/core/templaters/jinja_test.py | 2059 | # Create a config with dotted notation in the context section | COMMENT |
| MEDIUM | test/utils/analysis/query_test.py | 19 | # Create a crawler from the root segment. | COMMENT |
| MEDIUM | test/utils/reflow/reindent_test.py | 867 | # Create a custom reflow config with the specific settings | COMMENT |
| MEDIUM | test/utils/reflow/reindent_test.py | 880 | # Create a reflow sequence with the custom config | COMMENT |
| MEDIUM | test/utils/reflow/reindent_test.py | 923 | # Create a custom reflow config with: | COMMENT |
| MEDIUM | test/utils/reflow/reindent_test.py | 939 | # Create a reflow sequence with the custom config | COMMENT |
| MEDIUM | test/utils/reflow/reindent_test.py | 974 | # Create a custom reflow config with: | COMMENT |
| MEDIUM | test/utils/reflow/reindent_test.py | 990 | # Create a reflow sequence with the custom config | COMMENT |
| MEDIUM | test/cli/commands_test.py | 3228 | # Create a SQL file larger than the byte limit. | COMMENT |
| MEDIUM | test/cli/commands_test.py | 3257 | # Create a SQL file larger than the byte limit. | COMMENT |
| MEDIUM⚡ | test/cli/test_parse_with_positions.py | 139 | # Create a templated file for position tracking | COMMENT |
| MEDIUM⚡ | test/cli/test_parse_with_positions.py | 143 | # Create an Indent meta segment with position marker at line 2 | COMMENT |
| MEDIUM | plugins/sqlfluff-templater-dbt/test/templater_test.py | 420 | # Create a real file structure with a symlink mimicking dbt local packages: | COMMENT |
| MEDIUM | …f-templater-sqlmesh/test/templater_integration_test.py | 203 | # Create a SQL file in a temp directory that has no .sqlfluff override | COMMENT |
| MEDIUM⚡ | …ns/sqlfluff-templater-sqlmesh/test/integration_test.py | 139 | # Create a basic SQLMesh project structure | COMMENT |
| MEDIUM⚡ | …ns/sqlfluff-templater-sqlmesh/test/integration_test.py | 143 | # Create a basic config file (SQLMesh looks for config.py or config.yml) | COMMENT |
| MEDIUM | utils/build_parsers.py | 784 | # Create a synthetic OneOf for the elements | COMMENT |
| MEDIUM | src/sqlfluff/core/parser/types.py | 20 | # Define the potential parse modes. These are used in grammars | COMMENT |
| MEDIUM | src/sqlfluff/core/parser/rust_parser.py | 178 | # Create the Rust parser | COMMENT |
| MEDIUM | src/sqlfluff/core/parser/grammar/sequence.py | 590 | # Create the final match result | COMMENT |
| MEDIUM | src/sqlfluff/core/parser/grammar/anyof.py | 45 | # Create an unmatched segment | COMMENT |
| MEDIUM | src/sqlfluff/core/parser/segments/base.py | 142 | # Create a cache key on definition. | COMMENT |
| MEDIUM | src/sqlfluff/core/rules/loader.py | 20 | # Create a rules dictionary for importing in | COMMENT |
| MEDIUM | src/sqlfluff/core/rules/base.py | 706 | """This method is monkey patched into a "raise" for certain tests.""" | STRING |
| MEDIUM | src/sqlfluff/core/templaters/jinja.py | 1024 | # Create a mapping of the original source slices before modification so | COMMENT |
| MEDIUM | src/sqlfluff/core/helpers/dict.py | 279 | # Create an empty dictionary if key not found. | COMMENT |
| MEDIUM | src/sqlfluff/utils/testing/logging.py | 58 | # Create a placeholder class that will never be instantiated | COMMENT |
| MEDIUM | src/sqlfluff/dialects/dialect_ansi.py | 324 | # The following functions can be called without parentheses per ANSI specification | COMMENT |
| MEDIUM | src/sqlfluff/rules/layout/LT08.py | 220 | # Create a result, anchored on the start of the next content. | COMMENT |
| MEDIUM | src/sqlfluff/rules/convention/CV06.py | 419 | # Create the final semi-colon if it does not yet exist. | COMMENT |
| MEDIUM | src/sqlfluff/rules/structure/ST06.py | 361 | # Create a list of all the edit fixes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/core/templaters/python_test.py | 461 | # For the render_func we just use a function which just returns the | COMMENT |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 742 | # explanatory, so just pass it straight through. | COMMENT |
| MEDIUM | plugins/sqlfluff-templater-dbt/test/templater_test.py | 511 | # Log the rendered file to facilitate better debugging of the files. | COMMENT |
| MEDIUM | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 380 | # more robust than the regex header split and, crucially, keeps | COMMENT |
| LOW | docsv/scripts/generate-dialects-docs.py | 60 | # If no definition found, just return as plain text | COMMENT |
| LOW | .github/workflows/create-release-pull-request.yaml | 84 | # merged, so we just add "YYYY-MM-DD" for now as a placeholder. | COMMENT |
| LOW | src/sqlfluff/core/linter/discovery.py | 96 | # to process and just return None. | COMMENT |
| LOW | src/sqlfluff/core/linter/discovery.py | 154 | # Does it have a relevant extension? If not, just return an empty list. | COMMENT |
| LOW | src/sqlfluff/core/linter/discovery.py | 165 | # If not ignored, just return the file. | COMMENT |
| MEDIUM | src/sqlfluff/core/linter/fix.py | 83 | # Definitely valid (i.e. no conflict) if 0 or 1. In practice, this | COMMENT |
| MEDIUM | src/sqlfluff/core/linter/fix.py | 92 | # Definitely bad if > 2. | COMMENT |
| LOW | src/sqlfluff/core/linter/fix.py | 163 | # No fix matches here, just add the segment and move on. | COMMENT |
| LOW | src/sqlfluff/core/linter/fix.py | 328 | # Don't any apply fixes from within this region and just return the | COMMENT |
| LOW | src/sqlfluff/core/parser/match_result.py | 129 | # If the current match is empty, just return the other. | COMMENT |
| LOW | src/sqlfluff/core/parser/match_result.py | 132 | # If the same is true of the other, just return self. | COMMENT |
| LOW | src/sqlfluff/core/parser/match_result.py | 169 | # If it's a failed (empty) match, then just pass straight | COMMENT |
| MEDIUM | src/sqlfluff/core/parser/parser.py | 49 | # a unique entry point to facilitate exactly this. All other segments | COMMENT |
| LOW | src/sqlfluff/core/parser/match_algorithms.py | 98 | # then we should just return immediately. Nothing will match. | COMMENT |
| LOW | src/sqlfluff/core/parser/match_algorithms.py | 522 | # If there's either no match, or we hit a target, just pass the result. | COMMENT |
| LOW | src/sqlfluff/core/parser/grammar/sequence.py | 180 | # If it's a raw meta, just add it to our list. | COMMENT |
| LOW | src/sqlfluff/core/parser/grammar/sequence.py | 332 | # If it did, then just add it as a child match and we're done. Move on. | COMMENT |
| LOW | src/sqlfluff/core/parser/grammar/anyof.py | 34 | # If we're being strict, just return. | COMMENT |
| MEDIUM | src/sqlfluff/core/templaters/jinja.py | 895 | # The JinjaTracer slicing algorithm is more robust, but it requires | COMMENT |
| LOW | src/sqlfluff/core/templaters/python.py | 813 | # if we don't have anything to anchor on, then just return (coalescing | COMMENT |
| MEDIUM | src/sqlfluff/core/templaters/slicers/tracer.py | 567 | # by keeping tokens as Jinja returns them, the code is more robust. | COMMENT |
| LOW | src/sqlfluff/core/helpers/dict.py | 292 | # If we don't, then just set the value: | COMMENT |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 1420 | # If indent compensation is not needed, simply return the desired indent. | COMMENT |
| MEDIUM | src/sqlfluff/utils/reflow/sequence.py | 143 | # This is to facilitate better evaluation of the ends of files. | COMMENT |
| LOW | src/sqlfluff/dialects/dialect_ansi.py | 3032 | # than just add optional=True to BracketedColumnReferenceListGrammar). | COMMENT |
| LOW | src/sqlfluff/dialects/dialect_snowflake.py | 9915 | # we will just use that. | COMMENT |
| MEDIUM | src/sqlfluff/dialects/dialect_redshift.py | 1738 | # TODO: This logic can be streamlined. However, there are some odd parsing issues. | COMMENT |
| LOW | src/sqlfluff/rules/references/RF03.py | 327 | # If it's the right kind already, just return. | COMMENT |
| LOW | src/sqlfluff/rules/convention/CV10.py | 171 | # We can't just set the primary type, but we have to ensure that the | STRING |
| LOW | src/sqlfluff/rules/ambiguous/AM07.py | 80 | # set expression, just use the first query. If that first query isn't | COMMENT |
| LOW | src/sqlfluff/rules/ambiguous/AM06.py | 135 | # If there are no column references then just return | COMMENT |
| MEDIUM | src/sqlfluff/rules/aliasing/AL09.py | 185 | # should be done in conjunction with RF06 & CP02 (see docstring). | COMMENT |
| MEDIUM | src/sqlfluff/rules/structure/ST06.py | 380 | # approach would leverage difflib.SequenceMatcher.get_opcodes(), | COMMENT |
| MEDIUM | src/sqlfluff/rules/structure/ST06.py | 384 | # final application of patches (in "sqlfluff fix") more robust. | COMMENT |
| LOW | src/sqlfluff/rules/structure/ST11.py | 105 | # If we can't find a reference, just return an empty string | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CHANGELOG.md | 6322 | One of the biggest new features in this release is the support for SQLAlchemy and other "placeholder" templating within | CODE |
| LOW | test/core/config/fluffconfig_test.py | 95 | ("placeholder", PlaceholderTemplater, False), | CODE |
| LOW⚡ | test/core/config/loader_test.py | 245 | os.path.join("test", "fixtures", "config", "placeholder"), | CODE |
| LOW⚡ | test/core/config/loader_test.py | 255 | "placeholder": { | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 244 | "placeholder", | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 247 | ("", "\n select 1 as test\n", "literal", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 249 | ("", "{% endcall %}", "block_end", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 255 | "placeholder", | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 277 | ("", "{% macro render_name(title) %}", "block_start", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 279 | ("", "\n '", "literal", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 280 | ("", "{{ title }}", "templated", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 281 | ("", ". foo' as ", "literal", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 282 | ("", "{{ caller() }}", "templated", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 283 | ("", "\n", "literal", "placeholder"), | CODE |
| LOW⚡ | test/core/parser/lexer_test.py | 285 | ("", "{% endmacro %}", "block_end", "placeholder"), | CODE |
| LOW | test/core/parser/lexer_test.py | 302 | ("", "\n bar\n ", "literal", "placeholder"), | CODE |
| LOW | test/core/parser/lexer_test.py | 304 | ("", "{% endcall %}", "block_end", "placeholder"), | CODE |
| LOW | test/core/parser/lexer_test.py | 389 | ("", "{# comment #}", "comment", "placeholder"), | CODE |
| LOW | test/core/parser/lexer_test.py | 417 | ("", "", "special_type", "placeholder"), | CODE |
| LOW | test/core/parser/lexer_test.py | 614 | "templater": "placeholder", | CODE |
| LOW | test/core/parser/lexer_test.py | 619 | "placeholder": { | CODE |
| LOW | test/core/parser/lexer_test.py | 702 | "templater": "placeholder", | CODE |
| LOW | test/core/parser/lexer_test.py | 707 | "placeholder": { | CODE |
| LOW | test/core/parser/segments/segments_meta_test.py | 78 | assert tuple_with_pos[0] == "placeholder" | CODE |
| LOW | test/core/templaters/jinja_test.py | 778 | assert seg_types == ["placeholder", "end_of_file"] | CODE |
| LOW | test/core/templaters/jinja_test.py | 884 | seg.is_type("placeholder") | CODE |
| LOW | test/utils/reflow/respace_test.py | 135 | "placeholder": { | CODE |
| LOW | sqlfluffrs/sqlfluffrs_types/src/token/construction.rs | 275 | token.token_type = Cow::Borrowed("placeholder"); | CODE |
| LOW | sqlfluffrs/sqlfluffrs_types/src/token/construction.rs | 341 | class_types_static!(PLACEHOLDER_CT, "base", "raw", "meta", "placeholder"); | CODE |
| LOW | sqlfluffrs/sqlfluffrs_parser/src/parser/types.rs | 231 | MetaType::Template { .. } => "placeholder", | CODE |
| LOW | sqlfluffrs/sqlfluffrs_parser/src/parser/types.rs | 450 | MetaType::Template { .. } => "placeholder".to_string(), | CODE |
| LOW | sqlfluffrs/sqlfluffrs_parser/src/parser/arena.rs | 725 | MetaType::Template { .. } => "placeholder", | CODE |
| LOW | …/sqlfluffrs_parser/src/parser/table_driven/sequence.rs | 923 | if tok.is_type(&["placeholder"]) { | CODE |
| LOW | …/sqlfluffrs_parser/src/parser/table_driven/sequence.rs | 948 | if tok.is_type(&["placeholder"]) { | CODE |
| LOW | src/sqlfluff/core/linter/patch.py | 155 | seg.is_type("placeholder") | CODE |
| LOW | src/sqlfluff/core/parser/grammar/sequence.py | 60 | if segments[_idx - 1].is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/core/parser/grammar/sequence.py | 71 | if segments[_idx].is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/core/parser/segments/base.py | 587 | fwd_seg.is_type("placeholder") | CODE |
| LOW | src/sqlfluff/core/parser/segments/meta.py | 189 | type = "placeholder" | CODE |
| LOW | src/sqlfluff/core/templaters/placeholder.py | 78 | name = "placeholder" | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 43 | if not point.class_types.intersection({"newline", "placeholder"}): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 54 | if seg.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 280 | assert segment.is_type("placeholder", "template_loop") | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 347 | elif not _element.segments[0].is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 380 | if first_segment.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 412 | if seg.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 489 | if "placeholder" in elements[ip.idx + 1].class_types: | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 701 | if not seg.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 750 | if not seg.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 1028 | "placeholder" in elements[idx + 1].class_types | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 1256 | if elements[0].segments[0].is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 1278 | if indent_seg.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 1372 | if init_seg.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 1624 | if elements[ip.idx + 1 :] and "placeholder" in elements[ip.idx + 1].class_types: | CODE |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 1629 | if seg.is_type("placeholder") | CODE |
| LOW | src/sqlfluff/utils/reflow/elements.py | 51 | if not segment or not segment.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/elements.py | 115 | "whitespace", "placeholder", "newline", "indent", "template_loop" | CODE |
| LOW | src/sqlfluff/utils/reflow/elements.py | 444 | if indent_seg and indent_seg.is_type("placeholder"): | CODE |
| LOW | src/sqlfluff/utils/reflow/elements.py | 622 | if before.is_type("placeholder") | CODE |
| LOW | src/sqlfluff/utils/reflow/elements.py | 635 | if after.is_type("placeholder") | CODE |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/core/errors_test.py | 42 | # Set ignore to true if configured. | COMMENT |
| LOW | test/core/errors_test.py | 57 | # Set ignore to true if configured. | COMMENT |
| LOW | test/core/errors_test.py | 72 | # Set ignore to true if configured. | COMMENT |
| LOW⚡ | test/dialects/conftest.py | 113 | # Check if all child segments are the correct type | COMMENT |
| LOW | utils/build_parsers.py | 1213 | # Check if this is an implicit indent | COMMENT |
| LOW | utils/build_parsers.py | 1253 | # Check if this is an implicit indent | COMMENT |
| LOW | utils/build_parsers.py | 1751 | # Check if this is a Segment class (has a 'type' attribute) | COMMENT |
| LOW | utils/micro_benchmark_small.py | 83 | # Check if lexing dominates | COMMENT |
| LOW | examples/02_timing_api_steps.py | 16 | # Output the result | COMMENT |
| LOW | src/sqlfluff/diff_quality_plugin.py | 56 | # Check if SQLFluff is installed. | COMMENT |
| LOW | src/sqlfluff/core/default_config.cfg | 62 | # Set either to 0 to disable. | COMMENT |
| LOW | src/sqlfluff/core/parser/rust_parser.py | 732 | # Check if segment has _rstoken attribute (cached original token) | COMMENT |
| LOW | src/sqlfluff/core/parser/grammar/sequence.py | 564 | # Check if we've run out of segments | COMMENT |
| LOW | src/sqlfluff/core/parser/grammar/anyof.py | 226 | # Check if we have matched an option too many times. | COMMENT |
| LOW | src/sqlfluff/utils/reflow/respace.py | 293 | # Check if we've just passed whitespace. If we have, remove it | COMMENT |
| LOW | src/sqlfluff/cli/commands.py | 792 | # Output the results as we go | COMMENT |
| LOW | src/sqlfluff/rules/layout/LT08.py | 109 | # Check if the next code segment is CYCLE or SEARCH | COMMENT |
| LOW | src/sqlfluff/rules/layout/LT09.py | 326 | # Check if the modifier is one we care about | COMMENT |
| LOW | src/sqlfluff/rules/oracle/OR01.py | 60 | # Check if batch contains only slash_buffer_executor statement | COMMENT |
| LOW | src/sqlfluff/rules/tsql/TQ03.py | 66 | # Check if batch contains only GO statement | COMMENT |
| LOW | src/sqlfluff/rules/tsql/TQ02.py | 93 | # Check if the first statement is already a begin_end_block | COMMENT |
| LOW | src/sqlfluff/rules/tsql/TQ02.py | 159 | # Check if there's a statement_terminator after the last statement | COMMENT |
| LOW | src/sqlfluff/rules/convention/CV06.py | 354 | # Check if this code segment contains the last statement | COMMENT |
| LOW | src/sqlfluff/rules/convention/CV06.py | 372 | # Check if there's a semicolon terminator after the last statement | COMMENT |
| LOW | src/sqlfluff/rules/aliasing/AL10.py | 49 | # Check if this FROM expression contains a derived table. | COMMENT |
| LOW | src/sqlfluff/rules/structure/ST02.py | 246 | # Check if the comparison is to NULL or NOT NULL. | COMMENT |
| LOW | src/sqlfluff/rules/structure/ST02.py | 313 | # Check if we can reduce the CASE expression to a single coalesce | COMMENT |
| LOW | src/sqlfluff/rules/structure/ST06.py | 74 | # Check if the view has an explicit column list | COMMENT |
| LOW | src/sqlfluff/rules/structure/ST06.py | 78 | # Check if this bracketed segment contains column references | COMMENT |
| LOW | src/sqlfluff/rules/structure/ST06.py | 189 | # Check if we've seen a more complex select target element already | COMMENT |
| LOW | src/sqlfluff/rules/structure/ST09.py | 332 | # Check if list is made up of a qualified column_reference segment, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/generate_parse_fixture_yml.py | 104 | except Exception as err: | CODE |
| LOW | test/core/linter/linted_file_test.py | 263 | except Exception: | CODE |
| LOW⚡ | test/core/parser/parity/compare.py | 414 | except Exception: | CODE |
| LOW | test/api/simple_test.py | 493 | except Exception as err: | CODE |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 131 | except Exception as err: | CODE |
| LOW | …luff-templater-dbt/sqlfluff_templater_dbt/templater.py | 744 | except Exception as err: | CODE |
| LOW | plugins/sqlfluff-templater-dbt/test/templater_test.py | 593 | except Exception as e: | CODE |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 88 | except Exception as err: | CODE |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 263 | except Exception: # pragma: no cover - defensive | CODE |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 303 | except Exception as err: | CODE |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 790 | except Exception as err: # pragma: no cover - defensive | CODE |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 803 | except Exception: | CODE |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 810 | except Exception as err: | CODE |
| LOW | …plater-sqlmesh/sqlfluff_templater_sqlmesh/templater.py | 830 | except Exception as err: | CODE |
| LOW | docsv/scripts/generate-internals-docs.py | 149 | except Exception: | CODE |
| LOW | docsv/scripts/generate-internals-docs.py | 189 | except Exception: | CODE |
| LOW | docsv/scripts/generate-api-docs.py | 46 | except Exception: | CODE |
| LOW | docsv/scripts/generate-api-docs.py | 183 | except Exception: | CODE |
| LOW | utils/build_parsers.py | 345 | except Exception: | CODE |
| LOW | utils/build_parsers.py | 370 | except Exception: | CODE |
| MEDIUM | utils/benchmark_parser.py | 198 | print(f"Error: File not found: {args.file}", file=sys.stderr) | CODE |
| MEDIUM | utils/benchmark_parsing.py | 56 | print(f"Error: Dialect '{dialect}' not found in fixtures") | CODE |
| LOW | utils/benchmark_parsing.py | 94 | except Exception as e: | CODE |
| LOW | utils/benchmark_parsing.py | 126 | except Exception: | CODE |
| LOW | utils/benchmark_parsing.py | 164 | except Exception as e: | CODE |
| MEDIUM | utils/benchmark_parsing.py | 638 | print("Error: Specify --dialect <name> or --all-dialects") | CODE |
| MEDIUM | src/sqlfluff/diff_quality_plugin.py | 69 | print(f"Error parsing JSON output ({e}): {repr(o)}") | CODE |
| LOW | src/sqlfluff/core/linter/runner.py | 134 | except Exception as e: | CODE |
| LOW | src/sqlfluff/core/linter/runner.py | 207 | except Exception as e: | CODE |
| LOW | src/sqlfluff/core/linter/runner.py | 255 | except Exception as e: | CODE |
| LOW | src/sqlfluff/core/linter/discovery.py | 60 | except Exception: | CODE |
| LOW | src/sqlfluff/core/plugin/host.py | 70 | except Exception as err: | CODE |
| LOW | src/sqlfluff/core/rules/base.py | 562 | except Exception as e: | CODE |
| LOW | src/sqlfluff/core/rules/base.py | 624 | except Exception as e: | CODE |
| LOW | src/sqlfluff/core/templaters/jinja.py | 819 | except Exception as err: | CODE |
| LOW | src/sqlfluff/core/templaters/jinja.py | 1081 | except Exception: | CODE |
| LOW | src/sqlfluff/cli/commands.py | 88 | except Exception as e: | CODE |
| LOW | src/sqlfluff/cli/commands.py | 109 | except Exception: # pragma: no cover | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/sqlfluff/core/linter/linter.py | 278 | "cd sqlfluffrs && maturin develop --features python" | CODE |
| HIGH | src/sqlfluff/core/parser/match_result.py | 58 | # NOTE: If this is null, it means we've matched a sequence of segments | COMMENT |
| HIGH | src/sqlfluff/cli/commands.py | 1120 | # If some failed then return false | COMMENT |
| HIGH | src/sqlfluff/dialects/dialect_tsql_keywords.py | 12 | null, | CODE |
| HIGH | src/sqlfluff/rules/aliasing/AL09.py | 164 | # We *should* expect all of these to be non-null, but some bug | COMMENT |
| HIGH | src/sqlfluff/rules/capitalisation/CP04.py | 29 | null, | STRING |
| HIGH | src/sqlfluff/rules/capitalisation/CP04.py | 52 | null, | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/core/parser/grammar/grammar_sequence_test.py | 520 | # NOTE: This functionality doesn't get used much. | COMMENT |
| LOW | plugins/sqlfluff-templater-dbt/test/linter_test.py | 48 | # NOTE: This method is called within the config readout. | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 53 | # Step 1: Generate rule documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 62 | # Step 2: Generate dialect documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 71 | # Step 3: Generate CLI documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 80 | # Step 4: Generate API documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 89 | # Step 5: Generate internal API documentation | COMMENT |
| LOW | src/sqlfluff/core/parser/match_algorithms.py | 523 | # NOTE: This method returns the same as `next_match` in a "no match" | COMMENT |
| LOW | src/sqlfluff/core/dialects/__init__.py | 105 | # NOTE: The result of .expand() is a new class. | COMMENT |
| LOW | src/sqlfluff/utils/reflow/reindent.py | 898 | # NOTE: The following line should never lead to an index error | COMMENT |
| LOW | src/sqlfluff/utils/reflow/elements.py | 818 | # NOTE: This method operates on the existing fix buffer. | COMMENT |
| LOW | src/sqlfluff/cli/commands.py | 847 | # NOTE: The output format is designed for this GitHub action: | COMMENT |
| LOW | src/sqlfluff/cli/commands.py | 891 | # NOTE: The output format is designed for GitHub action: | COMMENT |
| LOW | src/sqlfluff/dialects/AGENTS.md | 189 | ### Step 1: Create Test SQL Files | COMMENT |
| LOW | src/sqlfluff/dialects/AGENTS.md | 213 | ### Step 2: Generate Expected Parse Trees | COMMENT |
| LOW | src/sqlfluff/dialects/AGENTS.md | 228 | ### Step 3: Implement Grammar | COMMENT |
| LOW | src/sqlfluff/dialects/AGENTS.md | 254 | ### Step 4: Regenerate and Verify | COMMENT |
| LOW | src/sqlfluff/dialects/AGENTS.md | 277 | ### Step 5: Run Full Test Suite | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/sqlfluff/AGENTS.md | 61 | Short one-line description. Longer description explaining the purpose, behavior, and usage. Can span multiple l | STRING |
| HIGH | src/sqlfluff/core/templaters/jinja.py | 174 | Take a path and extract macros from it. Args: path (list[str]): A list of paths. env (E | STRING |
| HIGH | src/sqlfluff/core/templaters/jinja.py | 745 | Process a string and return the new string. Note that the arguments are enforced as keywords because Te | STRING |
| HIGH | src/sqlfluff/core/templaters/base.py | 553 | Process a string and return a TemplatedFile. Note that the arguments are enforced as keywords because Templater | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docsv/scripts/generate-all-docs.py | 53 | # Step 1: Generate rule documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 62 | # Step 2: Generate dialect documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 71 | # Step 3: Generate CLI documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 80 | # Step 4: Generate API documentation | COMMENT |
| LOW⚡ | docsv/scripts/generate-all-docs.py | 89 | # Step 5: Generate internal API documentation | COMMENT |
| LOW | src/sqlfluff/rules/tsql/TQ02.py | 156 | # so we need to check if there's a terminator after the last statement | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docsv/scripts/assemble-site.py | 921 | CODE | |
| LOW | src/sqlfluff/core/linter/linter.py | 1141 | CODE | |
| LOW | src/sqlfluff/core/parser/grammar/delimited.py | 38 | CODE | |
| LOW | src/sqlfluff/core/parser/grammar/anyof.py | 67 | CODE | |
| LOW | src/sqlfluff/core/parser/grammar/anyof.py | 311 | CODE | |
| LOW | src/sqlfluff/core/parser/segments/raw.py | 48 | CODE | |
| LOW | src/sqlfluff/core/parser/segments/keyword.py | 20 | CODE | |
| LOW | src/sqlfluff/core/templaters/jinja.py | 1256 | CODE | |
| LOW | src/sqlfluff/cli/formatters.py | 400 | CODE | |
| LOW | src/sqlfluff/cli/commands.py | 718 | CODE | |
| LOW | src/sqlfluff/cli/commands.py | 1431 | CODE | |
| LOW | src/sqlfluff/cli/commands.py | 1547 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/sqlfluff/diff_quality_plugin.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/sqlfluff/core/config/fluffconfig.py | 622 | def set_value(self, config_path: Iterable[str], val: Any) -> None: | CODE |
| LOW | src/sqlfluff/core/parser/rust_parser.py | 56 | def set_profiling(enabled: bool) -> None: | CODE |
| LOW | src/sqlfluff/core/parser/rust_parser.py | 101 | def set_native_ast(enabled: bool) -> None: | CODE |
| LOW | src/sqlfluff/core/parser/context.py | 319 | def update_progress(self, char_idx: int) -> None: | CODE |
| LOW | src/sqlfluff/core/parser/segments/raw.py | 377 | __all__ = [ | CODE |
| LOW | src/sqlfluff/core/parser/segments/base.py | 806 | def set_as_parent(self, recurse: bool = True) -> None: | CODE |
| LOW | src/sqlfluff/core/parser/segments/base.py | 814 | def set_parent(self, parent: BaseSegment, idx: int) -> None: | CODE |
| LOW | src/sqlfluff/core/dialects/__init__.py | 109 | __all__ = [ | CODE |
| LOW | src/sqlfluff/core/dialects/base.py | 333 | def set_lexer_matchers(self, lexer_matchers: list[LexerType]) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/sqlfluff/rules/structure/ST10.py | 59 | # often included in auto-generated code. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 7 | # If adding any exceptions here, make sure to add them to .editorconfig as well | COMMENT |
| LOW | .pre-commit-config.yaml | 40 | # `requirements_dev.txt`. If you update these, make sure to update those too. | COMMENT |
| MEDIUM | examples/06_full_parse_api.py | 57 | # siblings of the parent, you can use .recursive_crawl(). | STRING |
| LOW | src/sqlfluff/core/linter/fix.py | 267 | # If we fail to validate a child segment, make sure to validate this | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | sqlfluffrs/ENGINE.md | 120 | └── utils/rustify.py build # orchestrates, emits Rust | CODE |
| MEDIUM | sqlfluffrs/sqlfluffrs_python/src/lib.rs | 1 | //! sqlfluffrs_python: scaffold for Python-facing bindings | COMMENT |