§00|The log

field notes from the satus team.


  1. Three timezone bugs we found by seeding production-shaped data

    Uniformly random timestamps hide timezone bugs. Business-hours-clustered timestamps surface them. Three bugs we have reproduced in support, and the catalog signals that predict each one.

    • ·postgres
    • ·timezones
    • ·testing
    • ·seeding
    12 min
  2. JSONB columns that are secretly relational

    Half the JSONB columns we see are key/value bags. The other half are foreign keys in disguise — arrays of IDs pointing at real rows, with no constraint to prove it. How to tell them apart.

    • ·postgres
    • ·jsonb
    • ·modeling
    • ·seeding
    8 min
  3. v0.2.0: deferred constraints, faster planning, and a smaller binary

    Cyclic foreign keys now seed end-to-end via deferred constraints and a post-insert wire-up pass. Catalog introspection drops from five round-trips to one. The npm tarball is 77.6% smaller.

    • ·postgres
    • ·satus
    • ·release
    • ·foreign-keys
    • ·performance
    7 min
  4. The CITEXT trap

    A seed job asked for 10,000 users and inserted 6,200. The unique index on a CITEXT column folded Alice and alice into one row. What CITEXT does, why new schemas avoid it, and what satus generates.

    • ·postgres
    • ·citext
    • ·unique
    • ·collations
    • ·seeding
    8 min
  5. Partitioned tables meet RLS, and nobody wins

    RLS policies on a partitioned parent do not protect the children. We hit this in two customer schemas last week. Here is what Postgres actually does, and the two-line workaround satus now prints.

    • ·postgres
    • ·rls
    • ·partitioning
    • ·seeding
    8 min
  6. Inside the medical-booking profile: why appointments are harder than they seem

    Appointments cluster around mid-morning and afternoon, never at 3am, almost never on holidays, and trail a long tail of no-shows. What the satus medical-booking profile encodes, and why.

    • ·profile
    • ·medical
    • ·distributions
    • ·postgres
    • ·seeding
    10 min
  7. NULL vs NOT NULL is not the question

    A support ticket about a nullable column that broke an app. The real question is what NULL means to your code, and Postgres gives you three answers, not two.

    • ·postgres
    • ·null
    • ·semantics
    • ·seeding
    6 min
  8. Introducing the satus log

    A plain-text changelog and field notebook for schema-aware seed data, written for engineers who read RFCs for fun.

    • ·meta
    • ·postgres
    1 min
  9. Cyclic foreign keys in the wild

    Most seed-data tools pretend cycles don't exist. They do. Here is how satus splits the graph, inserts with NULLs, and back-patches in a second pass.

    • ·postgres
    • ·foreign-keys
    • ·graphs
    • ·seeding
    5 min
§01|Subscribe

RSS, no email required.


We do not run a newsletter. The full feed lives at /blog/rss.xml. Add it to any reader. There are no tracking pixels in the feed and no cookies on this site.