PostgreSQL patterns for Python with psycopg and asyncpg — connection pooling,
99
99%
Does it follow best practices?
Impact
99%
1.15xAverage score across 5 eval scenarios
Passed
No known issues
psycopg_pool ConnectionPool
85%
100%
Context managers for connections
100%
100%
%s parameterized queries
100%
100%
Transaction for batch event logging
75%
100%
Bulk insert for events
100%
100%
Transaction for archive operation
90%
100%
Pool shutdown cleanup
100%
100%
DATABASE_URL from environment
100%
100%
Dict row factory
100%
85%
Batched archival to avoid long locks
100%
100%
asyncpg pool with lifecycle
100%
100%
Bulk upsert for catalog import
28%
100%
Transaction for stock transfer
100%
100%
Stock validation before transfer
100%
100%
Async context managers for connections
100%
100%
$1/$2 parameterized queries
100%
100%
Server-side cursor for warehouse export
100%
100%
DATABASE_URL from environment
100%
100%
Pool timeout configuration
0%
100%
No SQL injection vectors
100%
100%
psycopg_pool ConnectionPool
83%
100%
Context managers for connections
100%
100%
Transaction for bulk scheduling
100%
100%
Efficient bulk insert
100%
100%
%s parameterized queries
100%
100%
Server-side cursor for patient history
0%
100%
Pool shutdown cleanup
75%
100%
DATABASE_URL from environment
100%
100%
Dict row factory for query results
100%
100%
max_lifetime or max_idle on pool
0%
100%
psycopg_pool for sync reports
100%
100%
asyncpg pool for async API
100%
100%
Correct placeholder per driver
100%
100%
Context managers for sync connections
100%
100%
Async context managers for async connections
100%
100%
Server-side cursor for cohort export
41%
100%
Transaction for batch order sync
100%
100%
Bulk update for order sync
100%
100%
Both pools cleaned up on shutdown
100%
100%
DATABASE_URL from environment
100%
100%
Dict row factory for psycopg reports
100%
100%
No SQL injection vectors
100%
100%
asyncpg pool with create_pool
57%
100%
Pool lifecycle management
100%
100%
Async context managers for connections
100%
100%
Bulk insert for event ingestion
100%
100%
$1/$2 parameterized queries
100%
100%
Transaction for daily summary generation
20%
100%
Server-side cursor for user activity
100%
100%
DATABASE_URL from environment
100%
100%
command_timeout on pool
0%
100%
No SQL injection vectors
100%
100%