PostgreSQL Knowledge Base

SkillDatabases & data

PostgreSQL knowledge base. Covers Schema Design, Indexing (B-Tree/GIN/GiST/BRIN), JSONB, Partitioning, Extensions. Intended for devlab-postgres-usage to inherit via extends.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the PostgreSQL Knowledge Base skill

What this skill tells your AI

The instructions your AI receives, as published by seed-forge/harness-ai-kit in skills/public-postgres-expert-base/SKILL.md and read by ahel’s review.

Source: Adapted from planetscale/database-skills (PostgreSQL skill).

Schema Design

  • Prefer BIGSERIAL or BIGINT GENERATED ALWAYS AS IDENTITY for PKs.
  • Use TIMESTAMPTZ (with timezone) over TIMESTAMP.
  • TEXT and VARCHAR have similar performance in PostgreSQL — prefer TEXT unless length constraint is meaningful.
  • Use NUMERIC for money, never FLOAT/REAL.
  • JSONB (binary) over JSON (text) for structured data.

Indexing

TypeUse for
B-Tree (default)Equality, range, sorting
GINJSONB, fulltext, arrays, containment
GiSTGeometry, range types, nearest-neighbor
BRINSequential data (timestamps, IDs) on large tables
HashEquality only (rarely needed)
  • Partial indexes: CREATE INDEX ... WHERE condition — index only relevant rows.
  • Expression indexes: CREATE INDEX ... ON t (lower(name)).
  • Covering indexes: INCLUDE (col1, col2) for index-only scans.
  • CONCURRENTLY for creating indexes without blocking writes.

JSONB

  • Store structured, semi-structured, or variable-schema data.
  • Index with GIN: CREATE INDEX ... USING GIN (data jsonb_path_ops).
  • Query: data->>'key' (text), data->'key' (jsonb), data @> '{"key": "val"}' (containment).
  • Generated columns for frequently queried JSONB paths.

Partitioning

  • Declarative partitioning (range, list, hash) for large tables.
  • Partition key must be part of every unique/PK constraint.
  • ATTACH PARTITION / DETACH PARTITION for maintenance.
  • Partition pruning: queries automatically skip irrelevant partitions.

Extensions

  • pg_trgm: trigram similarity for fuzzy search.
  • pgvector: vector similarity search (AI/embeddings).
  • pg_stat_statements: query performance analysis.
  • uuid-ossp: UUID generation.
  • postgis: geospatial data.

Connection Management

  • Use connection pooling (PgBouncer) — PostgreSQL connections are expensive (~5-10 MB each).
  • Pool sizing: start with 2 * CPU cores + 1.
  • Use prepared_statements for parameterized queries.
  • Set statement_timeout to prevent runaway queries.

Guardrails

  • Always use TIMESTAMPTZ, not TIMESTAMP.
  • Prefer TEXT over VARCHAR(N) unless length limit is meaningful.
  • Use CONCURRENTLY when creating indexes on production tables.
  • Set statement_timeout at connection or session level.
  • Use PgBouncer for connection pooling in production.

Signals

GitHub stars
22
Forks
2
Last commit
Aug 2026

ahel review

  • S4info
    community integration — published by seed-forge, not postgres

Automated review, not a security audit. Ruleset v1.

Advanced
Catalog kind
skill
Gateway key
public-postgres-expert-base
Source
github.com/seed-forge/harness-ai-kit