PostgreSQL connection pooler, load balancer and database sharder.
This report summarizes scanner evidence for pgdogdev/pgdog, a Rust project with 5,592 GitHub stars. SynthScan examined 229,965 lines of code across 1407 source files, recording 490 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 3.1 (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? 351 finding(s).
Are imports declared and package/API names verified? 34 finding(s).
Are wrappers, guards, and repeated structures necessary? 171 finding(s).
Which changes need focused human review? 490 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 490 distinct pattern matches across 15 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 |
|---|---|---|---|---|
| MEDIUM | pgdog-postgres-types/src/array.rs | 462 | // ── Text decode ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog-postgres-types/src/array.rs | 567 | // ── Text roundtrip ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog-postgres-types/src/array.rs | 597 | // ── Cross-format encode ────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog-postgres-types/src/array.rs | 634 | // ── Binary roundtrip ───────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog-postgres-types/src/array.rs | 661 | // ── Rejection / validation ─────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog-postgres-types/src/array.rs | 761 | // ── Equality ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog-postgres-types/src/array.rs | 771 | // ── Datum integration ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | integration/pgdog.toml | 241 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | integration/pgdog.toml | 250 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | integration/pgdog.toml | 260 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | integration/pgdog.toml | 270 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | integration/pgdog.toml | 280 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | integration/pgdog.toml | 290 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | integration/pgdog.toml | 299 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 1 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 50 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 63 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 131 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 205 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 318 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 337 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 364 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 389 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 406 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 425 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 458 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 482 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 489 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/pgdog.toml | 546 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | integration/rust/tests/integration/cancel.rs | 127 | // ── Cancel connection 1 ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | integration/rust/tests/integration/cancel.rs | 145 | // ── Cancel connection 2 ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/net/messages/replication/logical/update.rs | 127 | // ── partial_new ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/frontend/router/sharding/mapping.rs | 153 | // ── helpers ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/frontend/router/sharding/mapping.rs | 382 | // ── construction ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/frontend/router/sharding/mapping.rs | 399 | // ── list mapping ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/frontend/router/sharding/mapping.rs | 448 | // ── range mapping ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/frontend/router/sharding/mapping.rs | 540 | // ── resolution order ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 328 | // ── static_client_password(): config-level error cases ───────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 343 | // ── static_client_password(): cache behaviour ─────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 402 | // ── static_client_password(): HTTP responses ──────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 502 | // ── login(): parameter validation ───────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 569 | // ── login(): HTTP responses ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 612 | // ── vault_token(): cache behaviour ──────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 627 | // ── client(): namespace header ───────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/auth/vault.rs | 652 | // ── resolve_passwords() ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/backend/auth/rds_iam.rs | 172 | // ── AssumeRolePlan::new (cross-account RDS IAM) ────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/backend/auth/rds_iam.rs | 204 | // ── infer_region_from_rds_host ─────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/backend/auth/rds_iam.rs | 237 | // ── resolve_region ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/backend/auth/vault.rs | 198 | // ── credentials(): config-level error cases ─────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/backend/auth/vault.rs | 224 | // ── credentials(): HTTP responses ───────────────────────────────────────── | COMMENT |
| MEDIUM | pgdog/src/backend/auth/vault.rs | 319 | // ── static_backend_credentials(): config-level error cases ──────────────── | COMMENT |
| MEDIUM | pgdog/src/backend/auth/vault.rs | 347 | // ── static_backend_credentials(): HTTP responses ─────────────────────────── | COMMENT |
| MEDIUM | …g/src/backend/replication/logical/subscriber/stream.rs | 510 | // ── Routing helpers ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …g/src/backend/replication/logical/subscriber/stream.rs | 521 | // ── Shape-cache helpers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …g/src/backend/replication/logical/subscriber/stream.rs | 733 | // ── FULL identity path ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …g/src/backend/replication/logical/subscriber/stream.rs | 774 | // ── DEFAULT / INDEX path ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …og/src/backend/replication/logical/subscriber/tests.rs | 516 | // ── State machine tests ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …og/src/backend/replication/logical/subscriber/tests.rs | 602 | // ── Relation handling tests ───────────────────────────────────────── | COMMENT |
| MEDIUM | …og/src/backend/replication/logical/subscriber/tests.rs | 758 | // ── Data flow tests ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …og/src/backend/replication/logical/subscriber/tests.rs | 1141 | // ── CopyData round-trip tests ─────────────────────────────────────── | COMMENT |
| 23 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cli.sh | 1 | #!/bin/bash | COMMENT |
| LOW | example.pgdog.toml | 1 | #:schema ./.schema/pgdog.schema.json | COMMENT |
| LOW | example.pgdog.toml | 21 | host = "0.0.0.0" | COMMENT |
| LOW | example.pgdog.toml | 41 | # client until they disconnect. | COMMENT |
| LOW | example.pgdog.toml | 61 | # How long to wait for a health check to complete before banning a database. | COMMENT |
| LOW | example.pgdog.toml | 81 | # - round_robin | COMMENT |
| LOW | example.pgdog.toml | 101 | # 'replica'`, or a `/* pgdog_role: replica */` comment. Useful for migrating an | COMMENT |
| LOW | example.pgdog.toml | 121 | # NOTE: if any user sets `server_auth = "rds_iam"` in users.toml, | COMMENT |
| LOW | example.pgdog.toml | 141 | # Default: disabled | COMMENT |
| LOW | example.pgdog.toml | 161 | # Default: text | COMMENT |
| LOW | example.pgdog.toml | 181 | log_dedup_threshold = 0 | COMMENT |
| LOW | example.pgdog.toml | 201 | # Default: unlimited | COMMENT |
| LOW | example.pgdog.toml | 221 | # cache used for query routing and sharding. | COMMENT |
| LOW | example.pgdog.toml | 241 | # How long to wait for Postgres server connections to be created by the pool before | COMMENT |
| LOW | example.pgdog.toml | 261 | # | COMMENT |
| LOW | example.pgdog.toml | 281 | client_idle_timeout = 60_000 | COMMENT |
| LOW | example.pgdog.toml | 301 | # Default: disabled | COMMENT |
| LOW | example.pgdog.toml | 321 | user = "admin" | COMMENT |
| LOW | example.pgdog.toml | 341 | # | COMMENT |
| LOW | example.pgdog.toml | 461 | # [multi_tenant] | COMMENT |
| LOW | example.pgdog.toml | 481 | # sets `server_auth = "vault_dynamic"` or `"vault_static"`, or configures | COMMENT |
| LOW | example.users.toml | 21 | # Example: backend authentication with Azure Workload Identity token generation. | COMMENT |
| LOW | example.users.toml | 41 | # Example: backend authentication with a HashiCorp Vault static role. | COMMENT |
| LOW | pgdog-config/src/core.rs | 221 | /// | COMMENT |
| LOW | pgdog-config/src/core.rs | 241 | pub databases: Vec<Database>, | COMMENT |
| LOW | pgdog-config/src/core.rs | 261 | #[serde(default)] | COMMENT |
| LOW | pgdog-config/src/core.rs | 281 | COMMENT | |
| LOW | pgdog-config/src/pooling.rs | 61 | /// <https://docs.pgdog.dev/configuration/pgdog.toml/general/#pooler_mode> | COMMENT |
| LOW | pgdog-config/src/database.rs | 41 | } | COMMENT |
| LOW | pgdog-config/src/database.rs | 121 | } | COMMENT |
| LOW | pgdog-config/src/database.rs | 141 | /// | COMMENT |
| LOW | pgdog-config/src/database.rs | 161 | /// | COMMENT |
| LOW | pgdog-config/src/database.rs | 181 | pub min_pool_size: Option<usize>, | COMMENT |
| LOW | pgdog-config/src/database.rs | 201 | /// | COMMENT |
| LOW | pgdog-config/src/users.rs | 21 | pub struct Plugin { | COMMENT |
| LOW | pgdog-config/src/users.rs | 261 | } | COMMENT |
| LOW | pgdog-config/src/users.rs | 281 | /// Name of the user. Clients that connect to PgDog will need to use this username. | COMMENT |
| LOW | pgdog-config/src/users.rs | 301 | #[serde(default)] | COMMENT |
| LOW | pgdog-config/src/users.rs | 321 | /// | COMMENT |
| LOW | pgdog-config/src/users.rs | 341 | /// e.g. `database/creds/my-role` for `server_auth = "vault_dynamic"` or | COMMENT |
| LOW | pgdog-config/src/users.rs | 361 | /// Lock timeout. | COMMENT |
| LOW | pgdog-config/src/users.rs | 381 | /// Sharding target database for replication. | COMMENT |
| LOW | pgdog-config/src/users.rs | 401 | pub two_phase_commit_auto: Option<bool>, | COMMENT |
| LOW | pgdog-config/src/users.rs | 501 | #[serde(default = "Admin::name")] | COMMENT |
| LOW | pgdog-config/src/memory.rs | 1 | use schemars::JsonSchema; | COMMENT |
| LOW | pgdog-config/src/auth.rs | 1 | use schemars::JsonSchema; | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 21 | /// | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 41 | pub schema: Option<String>, | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 61 | /// Path to a JSON file containing centroid vectors. This is useful when centroids are large (1000+ dimensions). | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 81 | /// The hash function to use for sharding. | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 101 | /// | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 121 | /// **Note:** With `shard`, the query must return a number between 0 and | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 161 | /// A single value-to-shard routing rule within a table's `mapping`. | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 181 | COMMENT | |
| LOW | pgdog-config/src/sharding.rs | 221 | /// Variable-length text. | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 281 | } | COMMENT |
| LOW | pgdog-config/src/sharding.rs | 481 | pub enum QueryParserEngine { | COMMENT |
| LOW | pgdog-config/src/otel.rs | 21 | /// to the configured URL. | COMMENT |
| LOW | pgdog-config/src/otel.rs | 41 | /// | COMMENT |
| LOW | pgdog-config/src/otel.rs | 61 | /// Datadog API key. Convenience shorthand that adds a `DD-API-KEY` header | COMMENT |
| 186 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration/python/test_prepared.py | 26 | def test_prepare_execute_parallel(): | CODE |
| LOW | integration/python/test_asyncpg.py | 300 | async def test_execute_many_cross_shard(conns): | CODE |
| LOW | integration/python/test_asyncpg.py | 366 | async def test_timestamp_sorting_binary_format(): | CODE |
| LOW | integration/python/test_asyncpg.py | 543 | async def test_schema_sharding_transactions(): | STRING |
| LOW | integration/python/test_asyncpg.py | 584 | async def test_schema_sharding_default(): | STRING |
| LOW | integration/python/test_asyncpg.py | 605 | async def test_schema_sharding_set_shard_allows_omnisharded_write(): | STRING |
| LOW | integration/python/test_asyncpg.py | 637 | async def test_schema_sharding_search_path(): | STRING |
| LOW | integration/python/test_asyncpg.py | 668 | async def test_pgdog_role_selection(): | STRING |
| LOW | integration/python/test_asyncpg.py | 697 | async def test_omni_time_function_unnamed_statement(): | STRING |
| LOW | integration/python/test_numeric_binary.py | 9 | async def test_numeric_binary_format(): | CODE |
| LOW | integration/python/test_numeric_binary.py | 114 | async def test_numeric_sorting_binary(): | STRING |
| LOW | integration/python/test_numeric_binary.py | 175 | async def test_numeric_aggregates_binary(): | STRING |
| LOW | integration/python/test_numeric_sorting.py | 11 | async def setup_sharded_numeric_table(conn): | CODE |
| LOW | integration/python/test_numeric_sorting.py | 23 | async def test_numeric_cross_shard_sorting(): | STRING |
| LOW | integration/python/test_numeric_sorting.py | 79 | async def test_numeric_precision_and_edge_cases(): | CODE |
| LOW | integration/python/test_numeric_sorting.py | 135 | async def test_numeric_arithmetic_operations(): | CODE |
| LOW | integration/python/test_qualified_advisory_locks.py | 8 | def test_qualified_advisory_lock_keeps_session_ownership(extended): | CODE |
| LOW | integration/python/test_sqlalchemy.py | 92 | async def schema_sharding_startup_param(): | CODE |
| LOW | integration/python/test_sqlalchemy.py | 232 | async def test_connection_pool_stress(engines): | CODE |
| LOW | integration/python/test_sqlalchemy.py | 575 | async def test_schema_sharding_with_startup_param_and_set_after_query( | STRING |
| LOW | integration/python/test_copy_cancel_slots.py | 29 | def test_cancel_copy_data_removes_replication_slots(blocked_copy): | CODE |
| LOW | integration/python/test_psycopg.py | 34 | def test_admin_pgcli_detection(): | CODE |
| LOW | integration/python/test_psycopg.py | 115 | def test_postgres_variants_parameter_limits(count, expect_error_keywords): | CODE |
| LOW | integration/python/test_psycopg.py | 164 | def test_pipeline_listen_then_query(): | CODE |
| LOW | integration/python/test_psycopg.py | 181 | def test_pipeline_many_queries(): | CODE |
| LOW | integration/python/test_psycopg.py | 204 | def test_pipeline_executemany(): | CODE |
| LOW | integration/python/test_psycopg.py | 234 | def test_pipeline_transaction(): | CODE |
| LOW | integration/python/test_psycopg.py | 258 | def test_pipeline_fetch_after_exit(): | CODE |
| LOW | integration/python/test_psycopg.py | 304 | def test_pipeline_query_then_nonpipeline(): | CODE |
| LOW | integration/python/test_psycopg.py | 326 | def test_pipeline_error_recovery(): | CODE |
| LOW | integration/python/test_psycopg.py | 350 | def test_pipeline_multiple_errors(): | CODE |
| LOW | integration/python/test_psycopg.py | 372 | def test_server_cursor_with_shard_pin(): | CODE |
| LOW | integration/python/test_psycopg.py | 388 | def test_describe_portal_with_shard_pin(): | CODE |
| LOW | integration/python/test_idle_in_transaction.py | 100 | async def test_idle_in_transaction_timeout(): | CODE |
| LOW | integration/python/test_idle_in_transaction.py | 107 | async def _disconnect_mid_transaction(): | CODE |
| LOW | integration/python/test_idle_in_transaction.py | 144 | async def test_disconnect_mid_transaction_rolls_back(): | CODE |
| LOW | integration/python/test_float_binary.py | 129 | async def test_float_special_values(conns): | CODE |
| LOW | integration/python/test_float_binary.py | 165 | async def test_float_vs_numeric_difference(conns): | CODE |
| LOW | integration/python/test_float_binary.py | 205 | async def test_float_binary_roundtrip(conns): | CODE |
| LOW | integration/python/test_session_mode.py | 29 | async def async_session_conn_no_search_path(): | CODE |
| LOW | integration/python/test_session_mode.py | 40 | def test_session_simple_queries(): | CODE |
| LOW | integration/python/test_session_mode.py | 87 | def test_session_transactions(): | CODE |
| LOW | integration/python/test_session_mode.py | 125 | def test_session_transaction_set_local(): | CODE |
| LOW | integration/python/test_session_mode.py | 138 | def test_session_search_path_visible(): | CODE |
| LOW | integration/python/test_session_mode.py | 150 | def test_session_multiple_statements_in_transaction(): | CODE |
| LOW | integration/python/test_session_mode.py | 200 | def test_no_search_path_cross_shard_insert_blocked(): | CODE |
| LOW | integration/python/test_session_mode.py | 212 | def test_no_search_path_cross_shard_update_blocked(): | CODE |
| LOW | integration/python/test_session_mode.py | 223 | async def test_async_session_simple_queries(): | CODE |
| LOW | integration/python/test_session_mode.py | 233 | async def test_async_session_ddl_and_dml(): | CODE |
| LOW | integration/python/test_session_mode.py | 269 | async def test_async_session_transactions(): | CODE |
| LOW | integration/python/test_session_mode.py | 306 | async def test_async_session_transaction_set_local(): | CODE |
| LOW | integration/python/test_session_mode.py | 318 | async def test_async_session_search_path_visible(): | CODE |
| LOW | integration/python/test_session_mode.py | 328 | async def test_async_session_multiple_statements_in_transaction(): | CODE |
| LOW | integration/python/test_session_mode.py | 351 | async def test_no_search_path_session_mode(): | CODE |
| LOW | integration/python/test_session_mode.py | 361 | async def test_unrecognized_aggregate_function_works_on_schema_based_sharding(): | CODE |
| LOW | integration/python/test_psycopg2.py | 102 | def test_transaction_reads_explicit(conn_reads, conn_writes): | CODE |
| LOW | integration/python/alembic/env.py | 15 | def _patch_dialect_initialize_wrapper( | CODE |
| LOW | integration/python/alembic/test_migration.py | 27 | def conservative_read_write_strategy(): | CODE |
| LOW | integration/python/alembic/test_migration.py | 65 | def test_alembic_migration_on_schema_shard(schema): | CODE |
| LOW | integration/complex/rds_iam/test_rds_iam.py | 26 | def test_generate_rds_iam_token(rds_iam_token): | CODE |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | integration/python/test_asyncpg.py | 50 | except asyncpg.exceptions.UndefinedTableError: | CODE |
| HIGH | integration/python/test_asyncpg.py | 131 | except asyncpg.exceptions.DuplicateTableError: | CODE |
| HIGH | integration/python/test_asyncpg.py | 185 | except asyncpg.exceptions.UndefinedTableError: | CODE |
| HIGH | integration/python/test_asyncpg.py | 375 | except asyncpg.exceptions.UndefinedTableError: | CODE |
| HIGH | integration/python/test_asyncpg.py | 99 | except asyncpg.exceptions.UndefinedColumnError: | CODE |
| HIGH | integration/python/test_asyncpg.py | 111 | except asyncpg.exceptions.UndefinedColumnError: | CODE |
| HIGH | integration/python/test_psycopg.py | 129 | except psycopg.Error: | CODE |
| HIGH | integration/python/test_float_binary.py | 38 | except asyncpg.exceptions.UndefinedTableError: | CODE |
| HIGH | integration/python/test_session_mode.py | 294 | except Exception: | CODE |
| HIGH | integration/complex/cancel_query/run.py | 55 | except Exception: | CODE |
| HIGH | integration/server/shutdown/clients.py | 77 | except psycopg.OperationalError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | integration/load_balancer/test_lb_asyncpy.py | 30 | """, 1, "test@test.com", datetime.now(), json.dumps({"banned": False})) | STRING |
| LOW⚡ | integration/load_balancer/test_lb_asyncpy.py | 35 | assert row[1] == "test@test.com" | STRING |
| LOW⚡ | integration/load_balancer/test_lb_asyncpy.py | 41 | assert row[0][1] == "test@test.com" | STRING |
| LOW | integration/python/test_sqlalchemy.py | 129 | Sharded(id=1, value="test@test.com"), | CODE |
| LOW | integration/rust/tests/integration/distinct.rs | 14 | for email in ["test@test.com", "apples@test.com"] { | CODE |
| LOW | integration/rust/tests/integration/distinct.rs | 52 | vec!["apples@test.com".to_string(), "test@test.com".to_string()] | CODE |
| LOW | integration/schema_sync/ecommerce_schema.sql | 971 | ('admin@example.com', 'admin', '$2a$10$abcdefghijklmnopqrstuv', 'Admin', 'User', '+1234567892', '1980-01-01', 'active', | CODE |
| LOW | …ntend/client/query_engine/test/rewrite_insert_split.rs | 46 | Parameter::new("test@test.com".as_bytes()), | CODE |
| LOW | …ntend/client/query_engine/test/rewrite_insert_split.rs | 63 | ("1".as_bytes(), "test@test.com".as_bytes()), | CODE |
| LOW | …ntend/client/query_engine/test/rewrite_insert_split.rs | 91 | Parameter::new("test@test.com".as_bytes()), | CODE |
| LOW | …ntend/client/query_engine/test/rewrite_insert_split.rs | 102 | ("1".as_bytes(), "test@test.com".as_bytes()), | CODE |
| LOW | …ntend/client/query_engine/test/rewrite_insert_split.rs | 123 | "INSERT INTO test (id, email) VALUES (1, 'test@test.com'), (2, 'test2@test.com') RETURNING *", | CODE |
| LOW | …ntend/client/query_engine/test/rewrite_insert_split.rs | 131 | ProtocolMessage::Query(query) if query.query() == "INSERT INTO test (id, email) VALUES (1, 'test@test.com') RETU | CODE |
| LOW | pgdog/src/frontend/router/parser/column.rs | 141 | let result = parse("INSERT INTO my_table (id, email) VALUES (1, 'test@test.com')").unwrap(); | CODE |
| LOW | pgdog/src/frontend/router/parser/query/explain.rs | 174 | &[b"11", b"test@test.com"], | CODE |
| LOW | pgdog/src/frontend/router/parser/query/explain.rs | 273 | &[b"1", b"test@test.com"], | CODE |
| LOW | pgdog/src/frontend/router/parser/query/test/mod.rs | 271 | ["11".as_bytes(), "test@test.com".as_bytes()] | CODE |
| LOW | …/src/frontend/router/parser/query/test/test_special.rs | 153 | &[Parameter::new(b"5"), Parameter::new(b"test@test.com")], | CODE |
| LOW | pgdog/src/frontend/router/parser/query/test/test_dml.rs | 18 | &[Parameter::new(b"11"), Parameter::new(b"test@test.com")], | CODE |
| LOW | pgdog/src/frontend/router/parser/query/test/test_dml.rs | 80 | &[Parameter::new(b"1"), Parameter::new(b"test@test.com")], | CODE |
| LOW | …ntend/router/parser/query/test/test_schema_sharding.rs | 242 | Query::new("INSERT INTO shard_0.sharded (id, email) VALUES (999, 'test@test.com')").into(), | CODE |
| LOW | …dog/src/backend/replication/logical/subscriber/copy.rs | 469 | let email = Data::Column(Bytes::copy_from_slice("test@test.com".as_bytes())); | CODE |
| LOW | pgdog/src/backend/pool/connection/buffer.rs | 343 | let emails = ["test@test.com", "admin@test.com"]; | CODE |
| LOW | pgdog/src/backend/pool/connection/buffer.rs | 674 | for email in ["test@test.com", "apples@test.com", "domain@test.com"] { | CODE |
| LOW | pgdog/src/backend/pool/connection/buffer.rs | 708 | for email in ["test@test.com", "apples@test.com", "domain@test.com"] { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | integration/copy_data/commit_sync/run.sh | 81 | # Step 1: load source schema + data, and create the destination table empty on each shard. | COMMENT |
| LOW⚡ | integration/copy_data/commit_sync/run.sh | 88 | # Step 2: start toxiproxy and create one proxy per shard (one severable link each). | COMMENT |
| LOW | integration/copy_data/commit_sync/run.sh | 101 | # Step 3: size the toxic to let every data byte through and sever only the trailing | COMMENT |
| LOW | integration/copy_data/commit_sync/run.sh | 118 | # Step 4: sever shard 2 at its CopyDone, run data-sync in the background, then heal it while | COMMENT |
| LOW | integration/copy_data/commit_sync/run.sh | 145 | # Step 5: the retry must recover. data-sync should exit cleanly and every shard should | COMMENT |
| LOW | pgdog/src/frontend/client/mod.rs | 316 | // Get the password. We always need it because we need to check if | COMMENT |
| LOW⚡ | pgdog/src/backend/pool/taken.rs | 214 | // Step 1: take A. | COMMENT |
| LOW⚡ | pgdog/src/backend/pool/taken.rs | 218 | // Step 3: F retakes with B before A's deferred check-in fires. | COMMENT |
| LOW⚡ | pgdog/src/backend/pool/taken.rs | 223 | // Step 4: deferred check-in for A. Must NOT touch F's entry, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration/copy_data/loader/loader.py | 132 | CODE | |
| LOW | integration/copy_data/loader/loader.py | 188 | CODE | |
| LOW | integration/copy_data/loader/loader.py | 237 | CODE | |
| LOW | integration/copy_data/loader/loader.py | 292 | CODE | |
| LOW | integration/copy_data/loader/loader.py | 357 | CODE | |
| LOW | integration/python/test_numeric_binary.py | 9 | CODE | |
| LOW | integration/python/test_sqlalchemy.py | 232 | CODE | |
| LOW | integration/python/test_sqlalchemy.py | 280 | CODE | |
| LOW | integration/python/test_timestamp_infinity.py | 20 | CODE | |
| LOW | integration/python/test_psycopg.py | 115 | CODE | |
| LOW | integration/python/test_float_binary.py | 249 | CODE | |
| LOW | integration/logical/gutenberg.py | 25 | CODE | |
| LOW | integration/two_pc/crash_recovery.py | 240 | CODE | |
| LOW | integration/sql/lib.py | 242 | CODE | |
| LOW | integration/sql/lib.py | 281 | CODE | |
| LOW | integration/sql/lib.py | 361 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | integration/copy_data/commit_sync/run.sh | 81 | # Step 1: load source schema + data, and create the destination table empty on each shard. | COMMENT |
| LOW⚡ | integration/copy_data/commit_sync/run.sh | 88 | # Step 2: start toxiproxy and create one proxy per shard (one severable link each). | COMMENT |
| LOW | integration/copy_data/commit_sync/run.sh | 101 | # Step 3: size the toxic to let every data byte through and sever only the trailing | COMMENT |
| LOW | integration/copy_data/commit_sync/run.sh | 118 | # Step 4: sever shard 2 at its CopyDone, run data-sync in the background, then heal it while | COMMENT |
| LOW | integration/copy_data/commit_sync/run.sh | 145 | # Step 5: the retry must recover. data-sync should exit cleanly and every shard should | COMMENT |
| LOW⚡ | pgdog/src/backend/pool/taken.rs | 214 | // Step 1: take A. | COMMENT |
| LOW⚡ | pgdog/src/backend/pool/taken.rs | 218 | // Step 3: F retakes with B before A's deferred check-in fires. | COMMENT |
| LOW⚡ | pgdog/src/backend/pool/taken.rs | 223 | // Step 4: deferred check-in for A. Must NOT touch F's entry, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration/copy_data/loader/loader.py | 11 | CODE | |
| LOW | integration/copy_data/loader/loader.py | 15 | CODE | |
| LOW | integration/python/test_numeric_binary.py | 1 | CODE | |
| LOW | integration/python/test_numeric_binary.py | 5 | CODE | |
| LOW | integration/python/test_numeric_sorting.py | 5 | CODE | |
| LOW | integration/python/test_sqlalchemy.py | 1 | CODE | |
| LOW | integration/python/test_float_binary.py | 3 | CODE | |
| LOW | integration/two_pc/crash_recovery.py | 4 | CODE | |
| LOW | integration/sql/lib.py | 1 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration/load_balancer/test_lb_asyncpy.py | 77 | except Exception as e: | STRING |
| LOW | integration/python/test_asyncpg.py | 35 | except Exception as e: | CODE |
| LOW | integration/python/test_asyncpg.py | 320 | except Exception as e: | CODE |
| LOW | integration/python/test_asyncpg.py | 599 | except Exception as e: | STRING |
| LOW | integration/python/test_sqlalchemy.py | 544 | except Exception as e: | STRING |
| LOW | integration/python/test_idle_in_transaction.py | 72 | except Exception as e: | CODE |
| LOW | integration/python/test_session_mode.py | 294 | except Exception: | CODE |
| LOW | integration/complex/cancel_query/run.py | 55 | except Exception: | CODE |
| LOW | integration/two_pc/crash_recovery.py | 306 | except Exception as error: | STRING |
| MEDIUM | integration/two_pc/crash_recovery.py | 302 | def main() -> int: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pgdog/src/net/decoder.rs | 12 | /// Expected result column formats, as requested by [`Bind`] sent by client. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benches/resharding/copy_data/run.sh | 11 | # Usage: | COMMENT |
| LOW | benches/resharding/replication/run.sh | 12 | # Usage: | COMMENT |
| LOW | benches/resharding/toxi/setup.sh | 24 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .cargo/config.toml | 36 | # Test-harness threads: libtest/nextest run #[tokio::test] bodies on | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …dog/src/backend/replication/logical/subscriber/copy.rs | 248 | // TODO: implement complete 2pc to copy data to minimize chances of partial commits even more | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | integration/sql/lib.py | 455 | __all__ = [ | CODE |