One Postgres for your application data, full-text search, vector retrieval, and aggregations. Home of the pg_search extension.
This report summarizes scanner evidence for paradedb/paradedb, a Rust project with 9,467 GitHub stars. SynthScan examined 350,662 lines of code across 1397 source files, recording 1051 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 3.4 (Low 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.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 963 finding(s).
Are imports declared and package/API names verified? 63 finding(s).
Are wrappers, guards, and repeated structures necessary? 79 finding(s).
Which changes need focused human review? 1051 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 1051 distinct pattern matches across 16 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 | tokenizers/src/edge_ngram.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/cjk.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/code.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/icu.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/lib.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/token_length.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/ngram.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/lindera.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/manager.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/manager.rs | 341 | // The "type" field will not be present on the deserialized value. | COMMENT |
| LOW | tokenizers/src/manager.rs | 1601 | /// uses the new tokenizer which strips whitespace. | COMMENT |
| LOW | tokenizers/src/token_trim.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/chinese_convert.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tokenizers/src/unicode_words.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | docker/generate-dockerfiles.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | docker/manifests/antithesis-paradedb.yaml | 1 | # This manifest is intended exclusively for use on the Antithesis platform. | COMMENT |
| LOW | schemabot/tests/cli.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | schemabot/src/schema.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | schemabot/src/sql.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | schemabot/src/migration.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | schemabot/src/main.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/antithesis/anytime_recovery_liveness.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tests/antithesis/singleton_driver_property-tests.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tests/tests/mpp_error_masking.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/copy.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/bm25_search.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/mlt.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/serializable.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/sorting.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/basescan_cancel.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/cleanup.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/domain_type.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/mpp_joinscan_concurrent.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/vacuum.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/key.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/joins.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/hybrid.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/term.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/ltree.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/mutation.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/heap_filter_system_columns.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/index_config.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/pg_dump.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/typmod_terminate.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/fast_fields.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/range.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/index_permissions.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/citus_compatibility.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/citus_compatibility.rs | 21 | use sqlx::PgConnection; | COMMENT |
| LOW | tests/tests/index_access_locks.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/index_sorting.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/index_sorting.rs | 561 | // These tests verify that the sorted index path works correctly with parallel | COMMENT |
| LOW | tests/tests/index_sorting.rs | 881 | } | COMMENT |
| LOW | tests/tests/icu.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/heap.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/columnar.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/schema_grants.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/ivm.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/iam.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| LOW | tests/tests/query.rs | 1 | // Copyright (c) 2023-2026 ParadeDB, Inc. | COMMENT |
| 795 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | .github/scripts/release.py | 1040 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | .github/scripts/release.py | 1042 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 54 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 56 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 309 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 311 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 798 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 800 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 928 | # ============================================================================== | COMMENT |
| MEDIUM | .github/scripts/release.py | 930 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | pg_search/src/postgres/customscan/joinscan/mod.rs | 104 | //! ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐ | COMMENT |
| MEDIUM⚡ | pg_search/src/postgres/customscan/joinscan/mod.rs | 109 | //! └─────────────────┘ └──────────────────┘ └─────────────────────┘ | COMMENT |
| MEDIUM⚡ | pg_search/src/postgres/customscan/joinscan/mod.rs | 112 | //! ┌─────────────────────┐ | COMMENT |
| MEDIUM⚡ | pg_search/src/postgres/customscan/joinscan/mod.rs | 115 | //! └─────────────────────┘ | COMMENT |
| MEDIUM⚡ | pg_search/src/query/builder.rs | 52 | //! output ──────────────────> (query, None) | COMMENT |
| MEDIUM⚡ | pg_search/src/query/builder.rs | 56 | //! output ──┬── clone ──────> (cloned_query, Some(output)) | COMMENT |
| MEDIUM⚡ | pg_search/src/query/builder.rs | 57 | //! └── keep ───────> Must keep output for children closure. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/tests/partitioned_build_concurrent_writes.rs | 55 | SELECT (i * 7919) % 500, 'lorem ipsum ' || i || ' ' || repeat('padding here ', 8) | CODE |
| LOW | tests/tests/concurrent_build_writes.rs | 52 | SELECT 'lorem ipsum ' || i || ' ' || repeat('padding here ', 8) | CODE |
| LOW | tests/tests/documentation.rs | 127 | "John Doe".into() | CODE |
| LOW | tests/tests/documentation.rs | 2058 | assert_eq!(rows[0], (1, 1, 3, 99.99, "John Doe".into())); | CODE |
| LOW | tests/tests/search_config.rs | 65 | "('John Doe', 'New Book Release', 'Exciting new book released by renowned author.'), | CODE |
| LOW | …ests/pg_regress/common/snippet_json_advanced_setup.sql | 36 | (3, '{"content": "test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labo | CODE |
| LOW | …ests/pg_regress/common/snippet_json_advanced_setup.sql | 36 | (3, '{"content": "test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labo | CODE |
| LOW | …sts/pg_regress/common/snippet_position_basic_setup.sql | 15 | ('test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | …sts/pg_regress/common/snippet_position_basic_setup.sql | 15 | ('test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore mag | CODE |
| LOW | …/pg_regress/common/snippet_position_advanced_setup.sql | 42 | (4, 3, 'test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW | …/pg_regress/common/snippet_position_advanced_setup.sql | 42 | (4, 3, 'test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW | …h/tests/pg_regress/common/snippet_json_basic_setup.sql | 24 | ('test Lorem ipsum dolor sit amet...test', | CODE |
| LOW | …h/tests/pg_regress/common/snippet_json_basic_setup.sql | 24 | ('test Lorem ipsum dolor sit amet...test', | CODE |
| LOW | …tests/pg_regress/common/parallel_build_small_setup.sql | 11 | SELECT 'lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore ma | CODE |
| LOW | …tests/pg_regress/common/parallel_build_small_setup.sql | 11 | SELECT 'lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore ma | CODE |
| LOW | …_search/tests/pg_regress/sql/score_join_predicates.sql | 41 | (4, 3, 'test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW | …_search/tests/pg_regress/sql/score_join_predicates.sql | 41 | (4, 3, 'test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW | pg_search/tests/pg_regress/sql/aggregate_join_alias.sql | 30 | (1, 'Acme Corp', 'acme.com'), | CODE |
| LOW | pg_search/tests/pg_regress/sql/deprecated_score.sql | 41 | (4, 3, 'test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW | pg_search/tests/pg_regress/sql/deprecated_score.sql | 41 | (4, 3, 'test Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolo | CODE |
| LOW | pg_search/tests/pg_regress/sql/lateral-join.sql | 56 | ('John Doe', 'Tech writer specializing in databases', 'database'), | CODE |
| LOW | pg_search/tests/pg_regress/sql/composite_advanced.sql | 28 | 'field1_' || i || ' lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labor | CODE |
| LOW | pg_search/tests/pg_regress/sql/composite_advanced.sql | 28 | 'field1_' || i || ' lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labor | CODE |
| LOW | …earch/tests/pg_regress/sql/aggregate_join_coverage.sql | 30 | ('Laptop order bulk', 'Acme Corp', 10, 9999), | CODE |
| LOW | …earch/tests/pg_regress/sql/aggregate_join_coverage.sql | 31 | ('Laptop order single', 'Acme Corp', 1, 999), | CODE |
| LOW | pg_search/tests/pg_regress/sql/deprecated_snippet.sql | 13 | ('test Lorem ipsum dolor sit amet...test'); | CODE |
| LOW | pg_search/tests/pg_regress/sql/deprecated_snippet.sql | 13 | ('test Lorem ipsum dolor sit amet...test'); | CODE |
| LOW | pg_search/tests/pg_regress/sql/snippet_limit_offset.sql | 13 | ('test Lorem ipsum dolor sit amet...test'); | CODE |
| LOW | pg_search/tests/pg_regress/sql/snippet_limit_offset.sql | 13 | ('test Lorem ipsum dolor sit amet...test'); | CODE |
| LOW | pg_search/tests/pg_regress/sql/join_key_types.sql | 424 | (12345678901234567890, 'John Doe', 'Checking'), | CODE |
| LOW | pg_search/tests/pg_regress/sql/issue_4643.sql | 21 | SELECT i, CASE WHEN i % 2 = 0 THEN 'John Smith' ELSE 'Jane Doe' END, i % 2 | CODE |
| LOW | pg_search/tests/pg_regress/sql/issue_3474.sql | 13 | ('test Lorem ipsum dolor sit amet...test'); | CODE |
| LOW | pg_search/tests/pg_regress/sql/issue_3474.sql | 13 | ('test Lorem ipsum dolor sit amet...test'); | CODE |
| LOW | pg_search/tests/pg_regress/sql/join_outer_pathkey.sql | 27 | INSERT INTO companies_op VALUES (1, 'Acme Corp'), (2, 'Globex Inc'), (3, 'Initech'); | CODE |
| LOW | pg_search/tests/pg_regress/sql/issue_4532.sql | 36 | (1, 1, 'Acme Corp'), | CODE |
| LOW | pg_search/src/bootstrap/test_table.rs | 779 | (1, 3, 99.99, "John Doe"), | CODE |
| LOW | pg_search/src/bootstrap/test_table.rs | 782 | (2, 6, 501.87, "John Doe"), | CODE |
| LOW | pg_search/src/scan/segmented_topk_exec.rs | 1502 | SELECT 'lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor ' || | CODE |
| LOW | pg_search/src/scan/segmented_topk_exec.rs | 1502 | SELECT 'lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor ' || | CODE |
| LOW | pg_search/src/postgres/build.rs | 587 | SELECT 'Lorem Ipsum ' || i FROM generate_series(1, 500) i; | CODE |
| LOW | pg_search/src/postgres/build_parallel.rs | 1695 | SELECT 'lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | pg_search/src/postgres/build_parallel.rs | 1695 | SELECT 'lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | pg_search/src/postgres/build_parallel.rs | 2165 | SELECT (i * 7919) % 100, 'lorem ipsum ' || i || ' ' || repeat('padding word here ', 50) | CODE |
| LOW | pg_search/src/postgres/build_parallel.rs | 2340 | SELECT (i * 7919) % 7, 'lorem ipsum ' || i || ' ' || repeat('padding word here ', 50) | CODE |
| LOW | pg_search/src/postgres/build_parallel.rs | 2398 | SELECT (i * 7919) % 100, 'lorem ipsum ' || i || ' ' || repeat('padding word here ', 50) | CODE |
| LOW | pg_search/src/postgres/build_partitioning.rs | 607 | SELECT i % 50, repeat('lorem ipsum dolor sit amet ', 20) FROM generate_series(1, 40000) i; | CODE |
| LOW | pg_search/src/postgres/build_partitioning.rs | 607 | SELECT i % 50, repeat('lorem ipsum dolor sit amet ', 20) FROM generate_series(1, 40000) i; | CODE |
| LOW | …_search/src/postgres/customscan/joinscan/scan_state.rs | 1011 | // Skip any "placeholder" expressions that don't need to be considered now | COMMENT |
| LOW | …src/postgres/customscan/datafusion/expr_translators.rs | 677 | Some(col("placeholder")) | CODE |
| LOW | …earch/src/postgres/customscan/datafusion/translator.rs | 255 | return Some(col("placeholder")); | CODE |
| LOW | …earch/src/postgres/customscan/datafusion/translator.rs | 264 | return Some(col("placeholder")); | CODE |
| LOW | pg_search/src/index/writer/index.rs | 851 | document.add_text(text_field, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempo | CODE |
| LOW | pg_search/src/index/writer/index.rs | 851 | document.add_text(text_field, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempo | CODE |
| LOW | pg_search/src/index/stats/tests.rs | 189 | 'lorem ipsum ' || i || ' ' || repeat('padding word here ', 50) | CODE |
| LOW | pg_search/src/index/stats/tests.rs | 360 | SELECT (i * 7919) % 100, 'lorem ipsum ' || i || ' ' || repeat('padding word here ', 50) | CODE |
| LOW | pg_search/src/index/stats/tests.rs | 426 | SELECT (i * 7919) % 100, 'lorem ipsum ' || i || ' ' || repeat('padding word here ', 50) | CODE |
| LOW | pg_search/src/index/stats/tests.rs | 444 | SELECT 42, 'lorem ipsum ' || i || ' ' || repeat('padding word here ', 50) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/override.js | 218 | function rememberFrameworkTabFromKeyboard(event) { | CODE |
| LOW | benchmarks/cohere/test_prepare_k6.py | 58 | def test_exports_exact_selected_settings_and_buffers_without_changing_inputs(self): | CODE |
| LOW | benchmarks/cohere/test_prepare_k6.py | 77 | def test_refuses_below_target_point_even_when_pdbench_labels_it_selected(self): | CODE |
| LOW | benchmarks/cohere/test_prepare_k6.py | 87 | def test_refuses_mixed_sessions_and_incomplete_query_sets(self): | CODE |
| LOW | benchmarks/cohere/test_prepare_k6.py | 98 | def test_refuses_partial_query_set_or_loose_recall_tolerance(self): | CODE |
| LOW | benchmarks/cohere/test_prepare_k6.py | 112 | def test_plan_guard_requires_index_scan_and_filter_pushdown(self): | CODE |
| LOW | benchmarks/cohere/test_compare_search.py | 49 | def test_pairs_by_query_and_labels_commits_without_modifying_sources(self, run): | CODE |
| LOW | benchmarks/cohere/test_compare_search.py | 71 | def test_missing_and_incompatible_baselines_skip_only_affected_queries(self, run): | CODE |
| LOW | benchmarks/cohere/test_compare_search.py | 85 | def test_missing_current_sweep_or_duplicate_query_is_an_error(self): | CODE |
| LOW | benchmarks/cohere/test_compare_search.py | 96 | def test_pdbench_failure_is_reported(self, run): | CODE |
| LOW | .github/scripts/extract_code_snippets.py | 216 | def write_standalone_snippets(outputs, outside, coverage): | CODE |
| LOW | .github/scripts/test_release.py | 17 | def test_newer_tag_does_not_change_checkout_upgrade_chain(self): | CODE |
| LOW | .github/scripts/test_release.py | 42 | def test_unreleased_sql_target_is_not_an_upgrade_starting_release(self): | CODE |
| LOW | .github/scripts/test_release.py | 53 | def test_synthetic_upgrade_extends_untagged_migration_tip(self): | CODE |
| LOW | .github/scripts/test_release.py | 89 | def test_release_uses_newest_tag_before_migration_sync(self): | CODE |
| LOW | .github/scripts/test_release.py | 101 | def test_explicit_predecessor_still_takes_priority(self): | CODE |
| LOW | .github/scripts/test_release.py | 108 | def test_tags_remain_a_fallback_without_sql_targets(self): | CODE |
| LOW | .github/scripts/test_release.py | 124 | def test_latest_promotion_archives_older_pages_in_both_layouts(self): | CODE |
| LOW | .github/scripts/test_release.py | 151 | def test_maintenance_registration_preserves_latest(self): | CODE |
| LOW | .github/scripts/test_release.py | 165 | def test_assembly_promotes_latest_and_archives_previous(self): | CODE |
| LOW | .github/scripts/test_release.py | 186 | def test_missing_latest_page_does_not_archive_existing_latest(self): | CODE |
| LOW⚡ | .github/scripts/release.py | 1045 | def extract_statements_and_objects(content): | CODE |
| LOW | .github/scripts/release.py | 88 | def latest_released_sql_version(sql_dir): | CODE |
| LOW | .github/scripts/release.py | 94 | def handle_latest_sql_version_command(args, repo_root): | CODE |
| LOW | .github/scripts/release.py | 161 | def _build_fragment_dependency_graph(fragments): | CODE |
| LOW | .github/scripts/release.py | 190 | def topological_sort_fragments(fragments): | CODE |
| LOW | .github/scripts/release.py | 371 | def collect_changelog_fragments(unreleased_dir, headers_map): | CODE |
| LOW | .github/scripts/release.py | 399 | def _normalize_changelog_item(item): | CODE |
| LOW | .github/scripts/release.py | 513 | def _insert_into_version_group(changelog_pages, target_group, target_page): | CODE |
| LOW | .github/scripts/release.py | 526 | def _insert_into_older_groups(older_pages, target_group, target_page): | CODE |
| LOW | .github/scripts/release.py | 539 | def _promote_new_active_group(changelog_pages, older_pages, target_group, target_page): | CODE |
| LOW | .github/scripts/release.py | 591 | def _insert_into_legacy_anchors(versions, target_page): | CODE |
| LOW | .github/scripts/release.py | 610 | def insert_changelog_into_pages(docs_data, target_page): | CODE |
| LOW | .github/scripts/release.py | 618 | def update_navigation_version(docs_data, new_version): | CODE |
| LOW | .github/scripts/release.py | 665 | def update_docs_version_examples(repo_root, clean_ver): | CODE |
| LOW | .github/scripts/release.py | 691 | def update_installation_version(repo_root, clean_ver): | CODE |
| LOW | .github/scripts/release.py | 710 | def update_kubernetes_version(repo_root, clean_ver): | CODE |
| LOW | .github/scripts/release.py | 727 | def update_digitalocean_version(repo_root, clean_ver): | CODE |
| LOW | .github/scripts/release.py | 743 | def update_changelog_indexing(repo_root, version, is_latest): | CODE |
| LOW | .github/scripts/release.py | 844 | def get_rendered_changelog_body(repo_root, clean_ver): | CODE |
| LOW | .github/scripts/release.py | 1007 | def handle_set_version_command(args, repo_root): | CODE |
| LOW | .github/scripts/release.py | 1020 | def handle_approval_body_command(args, repo_root): | CODE |
| LOW | .github/scripts/release.py | 1089 | def catalog_unreleased_objects(unreleased_dir, before_pr=None): | CODE |
| LOW | .github/scripts/release.py | 1119 | def get_changed_fragment_files(repo_root, base_sha): | CODE |
| LOW | .github/scripts/release.py | 1172 | def _check_single_main_fragment(fpath, unreleased_dir): | CODE |
| LOW | .github/scripts/release.py | 1238 | def lint_main_branch_fragments(repo_root, base_sha): | CODE |
| LOW | .github/scripts/release.py | 1258 | def _check_branch_fragment_dependencies(repo_root, unreleased_sql_dir, base_ref): | CODE |
| LOW | .github/scripts/release.py | 1290 | def _check_branch_fragment_identity(repo_root, all_fragments): | CODE |
| LOW | .github/scripts/release.py | 1354 | def lint_release_branch_fragments(repo_root, base_ref): | CODE |
| LOW | .github/scripts/release.py | 1454 | def handle_lint_fragments_command(args, repo_root): | CODE |
| LOW⚡ | .github/scripts/test_generate_release_notes.py | 25 | def test_backport_credits_source_and_preserves_links(self): | CODE |
| LOW⚡ | .github/scripts/test_generate_release_notes.py | 30 | def test_manual_pr_keeps_author(self): | CODE |
| LOW⚡ | .github/scripts/test_generate_release_notes.py | 33 | def test_unlabelled_reference_is_not_followed(self): | CODE |
| LOW⚡ | .github/scripts/test_generate_release_notes.py | 41 | def test_missing_reference_fails(self): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/tests/replication.rs | 511 | // Step 1: Create and start the primary Postgres instance | COMMENT |
| LOW | tests/tests/replication.rs | 527 | // Step 2: Create the standby using pg_basebackup | COMMENT |
| LOW | benchmarks/DATASET_PREPARATION.md | 15 | ## Step 1: Load Source Data into S3 | COMMENT |
| LOW | benchmarks/DATASET_PREPARATION.md | 40 | ## Step 2: Create a Config | COMMENT |
| LOW | benchmarks/DATASET_PREPARATION.md | 75 | ## Step 3: Sample the Source Data | COMMENT |
| LOW | benchmarks/DATASET_PREPARATION.md | 110 | ## Step 4: Convert Sampled Data to CSV | COMMENT |
| LOW | benchmarks/DATASET_PREPARATION.md | 150 | ## Step 5: Load the Heap | COMMENT |
| LOW | benchmarks/DATASET_PREPARATION.md | 165 | ## Step 6: Snapshot or Restore the Heap | COMMENT |
| LOW | benchmarks/DATASET_PREPARATION.md | 208 | ## Step 7: Run Benchmarks | COMMENT |
| LOW | pg_search/tests/pg_regress/README.md | 16 | ### Step 1: Create the SQL Test | COMMENT |
| LOW | pg_search/tests/pg_regress/README.md | 38 | ### Step 2: Generate the Expected Output | COMMENT |
| LOW | pg_search/tests/pg_regress/README.md | 49 | ### Step 3: Verify the Expected Output | COMMENT |
| LOW⚡ | pg_search/src/postgres/composite.rs | 214 | // Step 1: Get fields (this validates type is composite, not RECORD, not domain) | COMMENT |
| LOW⚡ | pg_search/src/postgres/composite.rs | 217 | // Step 2: Check for nested composites | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 134 | // Step 1: Build the join DataFrame from the RelNode tree | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 159 | // Step 2: Build GROUP BY expressions | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 214 | // Step 3: Build aggregate expressions. `pdb.agg()` entries contribute no | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 359 | // Step 4: Apply aggregate, then HAVING (post-aggregate) | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 407 | // Step 5: Apply TopK and/or Stage 2 window aggregates (`OVER ()`). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ostgres/customscan/joinscan/range_partitioning_rule.rs | 466 | let l_rows = edge.left.prov.scan_info.estimate.as_planner_estimate(); | CODE |
| CRITICAL | …ostgres/customscan/joinscan/range_partitioning_rule.rs | 467 | let r_rows = edge.right.prov.scan_info.estimate.as_planner_estimate(); | CODE |
| CRITICAL | pg_search/src/postgres/customscan/joinscan/mod.rs | 1707 | let snapshot = state.csstate.ss.ps.state.as_ref().unwrap().es_snapshot; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | stressgres/suites/bulk-update-merge-pressure.toml | 0 | select pg_relation_size('idxtest') / current_setting('block_size')::int as block_count, ( select count(*)::bigint from p | STRING |
| HIGH | stressgres/suites/single-node-planner-paths.toml | 0 | select pg_relation_size('idxtest') / current_setting('block_size')::int as block_count, ( select count(*)::bigint from p | STRING |
| HIGH | stressgres/suites/background-merge.toml | 0 | select pg_relation_size('idxtest') / current_setting('block_size')::int as block_count, ( select count(*)::bigint from p | STRING |
| HIGH | stressgres/suites/single-node-planner-paths.toml | 0 | set max_parallel_workers = 0; set paradedb.enable_custom_scan = off; set paradedb.enable_aggregate_custom_scan = off; se | STRING |
| HIGH | …essgres/suites/logical-replication-fsm-merge-race.toml | 0 | set max_parallel_workers = 0; set paradedb.enable_custom_scan = off; set paradedb.enable_aggregate_custom_scan = off; se | STRING |
| HIGH | …essgres/suites/logical-replication-mixed-workload.toml | 0 | set max_parallel_workers = 0; set paradedb.enable_custom_scan = off; set paradedb.enable_aggregate_custom_scan = off; se | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/tests/mpp_cancel.rs | 112 | // inside the join before signalling. A few attempts make the test robust against host timing; on | COMMENT |
| MEDIUM | .github/scripts/smoke_test_code_snippets.sh | 107 | # Make the external-index fixtures available to every ORM harness. | COMMENT |
| MEDIUM | pg_search/src/scan/pre_filter.rs | 74 | //! `PreFilter`s do not execute custom matching logic. Instead, they leverage native DataFusion | COMMENT |
| MEDIUM | pg_search/src/scan/late_materialization.rs | 101 | /// plan tree to find its exact root column at the `TableScan` level, allowing robust exact matching. | COMMENT |
| MEDIUM | pg_search/src/postgres/customscan/opexpr.rs | 391 | /// exists in the pg_type catalog. This is more robust than maintaining a | COMMENT |
| MEDIUM | pg_search/src/postgres/storage/fsm.rs | 555 | /// swapped until the entry is finished moving. Essentially, tags have an affinity for their key/value | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/tests/replication.rs | 511 | // Step 1: Create and start the primary Postgres instance | COMMENT |
| LOW | tests/tests/replication.rs | 527 | // Step 2: Create the standby using pg_basebackup | COMMENT |
| LOW⚡ | pg_search/src/postgres/composite.rs | 214 | // Step 1: Get fields (this validates type is composite, not RECORD, not domain) | COMMENT |
| LOW⚡ | pg_search/src/postgres/composite.rs | 217 | // Step 2: Check for nested composites | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 134 | // Step 1: Build the join DataFrame from the RelNode tree | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 159 | // Step 2: Build GROUP BY expressions | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 214 | // Step 3: Build aggregate expressions. `pdb.agg()` entries contribute no | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 359 | // Step 4: Apply aggregate, then HAVING (post-aggregate) | COMMENT |
| LOW | …c/postgres/customscan/aggregatescan/datafusion_exec.rs | 407 | // Step 5: Apply TopK and/or Stage 2 window aggregates (`OVER ()`). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/bootstrap.sh | 5 | # This file is NOT executed when running in CloudNativePG as it circumvents the normal | COMMENT |
| MEDIUM | scripts/pg_search_common.sh | 78 | # Create a new database for testing | COMMENT |
| MEDIUM | .github/scripts/squash-gh-pages.sh | 101 | # Create an orphan root commit (zero parent commits) pointing directly to the tree | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmarks/cohere/prepare_k6.py | 13 | CODE | |
| LOW | .github/scripts/test_release.py | 53 | CODE | |
| LOW | .github/scripts/release.py | 22 | CODE | |
| LOW | .github/scripts/release.py | 107 | CODE | |
| LOW | .github/scripts/release.py | 161 | CODE | |
| LOW | .github/scripts/release.py | 405 | CODE | |
| LOW | .github/scripts/release.py | 501 | CODE | |
| LOW | .github/scripts/release.py | 591 | CODE | |
| LOW | .github/scripts/release.py | 1045 | CODE | |
| LOW | .github/scripts/release.py | 1089 | CODE | |
| LOW | .github/scripts/release.py | 1119 | CODE | |
| LOW | .github/scripts/release.py | 1258 | CODE | |
| LOW | .github/scripts/compact-benchmark-history.py | 13 | CODE | |
| LOW | .github/scripts/compact-benchmark-history.py | 52 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/scripts/extract_code_snippets.py | 105 | f'docsIndexes.push({{ table: "{table}", ' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/scripts/release.py | 1166 | except subprocess.SubprocessError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/pg_search_run.sh | 9 | # Usage: | COMMENT |
| LOW | scripts/pg_search_test.sh | 9 | # Usage: | COMMENT |
| LOW | .github/scripts/squash-gh-pages.sh | 9 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/django_snippet_harness.py | 5 | CODE | |
| LOW | .github/scripts/sqlalchemy_snippet_harness.py | 5 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/sqlalchemy_snippet_harness.py | 107 | __all__ = [ | CODE |