GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • SafeQL
  • Guide
  • Blog

This view

  • Original page
  • New address

GeezerVison is showing safeql.dev — SafeQL — Write SQL queries with confidence | SafeQL

Skip to content

Write SQL queries with confidence.

An ESLint plugin that validates raw SQL against your real PostgreSQL schema and infers result types — before the query ever runs.

Get started GitHub
users.ts
TSusers.tsTSschema.ts
src›db›users.ts
12345
main 0 0SafeQL
Features

See SafeQL work, feature by feature.

users.ts
TSusers.tsTSschema.ts
src›db›users.ts
1234567
main 0 0SafeQL
Catches column typosUnknown table errorsEnum value validationcount(*) is bigint, not numberarray element typesYour own casing conventionLATERAL joinsON CONFLICT upsertsMultiple databasesKyselyZod schema validationIncremental adoptionCatches column typosUnknown table errorsEnum value validationcount(*) is bigint, not numberarray element typesYour own casing conventionLATERAL joinsON CONFLICT upsertsMultiple databasesKyselyZod schema validationIncremental adoption
Suggests the right columnInvalid cast detectionAutomatic result typesnumeric → string (no precision loss)Literal type inferencenull vs undefined vs optionalWindow functionsset-returning functionsMonorepo-friendlyDrizzleZod schema generationFlexible query targetingSuggests the right columnInvalid cast detectionAutomatic result typesnumeric → string (no precision loss)Literal type inferencenull vs undefined vs optionalWindow functionsset-returning functionsMonorepo-friendlyDrizzleZod schema generationFlexible query targeting
Type-mismatch detectionAmbiguous column detectionNullability inferencetimestamptz → DateCustom Postgres → TS overridesWrap results as {type}[]Aggregates (sum, array_agg)Validate against a live databasepostgres.jsnode-postgresSQL fragment compositionWrite your own pluginsType-mismatch detectionAmbiguous column detectionNullability inferencetimestamptz → DateCustom Postgres → TS overridesWrap results as {type}[]Aggregates (sum, array_agg)Validate against a live databasepostgres.jsnode-postgresSQL fragment compositionWrite your own plugins
Operator type errorsMissing type annotationsOuter-join nullabilityuuid & enum typesPer-column type overridesCTEs & recursive queriesjson_agg / jsonb_aggShadow DB from your migrationsSlonikSequelizeEditor quick-fixesAWS IAM auth for RDSOperator type errorsMissing type annotationsOuter-join nullabilityuuid & enum typesPer-column type overridesCTEs & recursive queriesjson_agg / jsonb_aggShadow DB from your migrationsSlonikSequelizeEditor quick-fixesAWS IAM auth for RDS
GROUP BY errorsWrong type annotationsNullable aggregatesjson / jsonb result typessnake_case → camelCaseSubqueriesINSERT/UPDATE/DELETE … RETURNINGWatch mode for CIPrisma@vercel/postgresAuto-fix with --fixGROUP BY errorsWrong type annotationsNullable aggregatesjson / jsonb result typessnake_case → camelCaseSubqueriesINSERT/UPDATE/DELETE … RETURNINGWatch mode for CIPrisma@vercel/postgresAuto-fix with --fix
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.