All technologies

SQL

8 painsavg 6.5/10
compatibility 2dx 2security 1performance 1testing 1maintenance 1

SQL injection remains most financially damaging application vulnerability

9

SQL injection vulnerabilities from unescaped user input interpolation remain the perennial top contender for most financially damaging application security vulnerability. Developers continue to make mistakes in this area.

securityPostgreSQLSQL

Breaking change in HTTP query template function usage

8

Neon's Node.js SDK v19+ introduces a breaking change in how the HTTP query template function can be called. Calling it as a conventional function (with parentheses) is now an SQL injection risk and throws an error, requiring developers to update their applications.

compatibilityNeonNode.jsSQL

Prisma's query engine fetches entire tables inefficiently, causing expensive data reads and performance degradation

7

Prisma's Rust-based query engine performs application-level joins by fetching entire tables and merging results in memory rather than using optimized database-level SQL joins. This approach wastes bandwidth and becomes prohibitively expensive for teams paying per-row-read to database providers like PlanetScale, and is especially problematic at scale.

performancePrismaSQL

Schema evolution breaks tests and introduces silent failures

7

When making schema changes to evolve the application's data handling, modifications either break tests immediately or don't, creating a worse scenario where tests no longer guarantee correctness. This requires iterative fixing of data integrity issues.

testingPostgreSQLSQL

Time-consuming and error-prone SQL query creation

6

Building complex SQL queries is tedious, error-prone, and time-consuming. Developers frequently resort to AI assistance rather than writing queries manually, and must often redo work when requirements change or new clients appear.

dxPostgreSQLSQL

Raw SQL requires manual JOIN maintenance across schema changes

6

Using raw SQL for performance avoids ORM overhead but requires manually writing and maintaining JOIN statements. Every schema change necessitates updating all related queries, making maintenance burden significant.

maintenanceSQL

Raw SQL lacks type safety for result sets

5

Raw SQL queries require manual casting of result sets and hoping developers remember correct column types. Type information is lost, increasing risk of runtime errors.

compatibilitySQL

Learning Prisma's schema DSL encourages developers to forget SQL fundamentals

4

The ease of Prisma's query builder comes at the cost of developers gradually losing familiarity with raw SQL. The trade-off between simplicity and flexibility means developers become dependent on the ORM abstraction and cannot effectively fall back to direct SQL when needed for complex queries or optimization.

dxPrismaSQL