no-select-star
Prefer explicit column projections over SELECT * in embedded SQL.
Why
Wildcard projections couple row shape and query cost to unrelated schema changes.
Fix
List every required column explicitly in the projection.
Examples
db.query("SEL\u0045CT * FROM runs");db.query("SEL\x45CT id FROM runs /* SELECT * FROM runs */");db.prepare(`SELECT * FROM runs`).all();db.prepare(`SELECT id, status FROM runs`).all();import { Client } from "pg";export async function literalRows() { const authoredLiteralClient = new Client(); try { await authoredLiteralClient.connect(); return ( await authoredLiteralClient.query( 'SELECT * FROM (VALUES (1, 2)) AS "authored"("a", "b")', ) ).rows; } finally { await authoredLiteralClient.end(); }}import { Client } from "pg";export async function literalRows() { const authoredLiteralClient = new Client(); try { await authoredLiteralClient.connect(); return ( await authoredLiteralClient.query( 'SELECT "authored"."a", "authored"."b" FROM (VALUES (1, 2)) AS "authored"("a", "b")', ) ).rows; } finally { await authoredLiteralClient.end(); }}Autofix output
import { Client } from "pg";export async function literalRows() { const authoredLiteralClient = new Client(); try { await authoredLiteralClient.connect(); return ( await authoredLiteralClient.query( 'SELECT "authored"."a", "authored"."b" FROM (VALUES (1, 2)) AS "authored"("a", "b")', ) ).rows; } finally { await authoredLiteralClient.end(); }}db.query("SELECT EXISTS((SELECT * FROM jobs)), * FROM runs");db.query('SELECT "units" * "price" AS total FROM entries');