Skip to content

Differences from PostgreSQL

The canonical detailed comparison is maintained at the repository root: read DIFFERENCES_FROM_POSTGRESQL.md.

MiniPostgres preserves selected relational-kernel mechanisms but is not a PostgreSQL-compatible product:

  • the interface is a Python API, not the PostgreSQL wire protocol or psql;
  • the SQL grammar, type system, optimizer path set, and executor nodes are intentionally bounded;
  • storage uses custom fixed pages, heap tuples, B+Trees, catalogs, and free space maps rather than PostgreSQL file formats;
  • every heap-page change logs a complete post-image, whereas PostgreSQL normally uses one full-page image after a checkpoint and compact later WAL;
  • MVCC, locking, recovery, VACUUM, and HOT preserve selected teaching contracts without PostgreSQL's complete concurrency and maintenance systems.

The query-kernel tour classifies each positive correspondence. This page defines where those correspondences stop.