Version 4.1.0
-
Add pgvector support and a
film_embeddingtable with avector(20)per film — a multi-hot encoding of its categories plus a few normalized numeric attributes, engineered from existingfilm/film_categorydata rather than a real text-embedding model — indexed with HNSW (vector_cosine_ops) and documented in the README with cosine-distance nearest-neighbor examples. -
Add
pagila-sql-pgq-setup.sql, declaring apagila_graphproperty graph over the existingactor/film/categoryvertex tables andfilm_actor/film_categoryedge tables (no new data), demonstrating PostgreSQL 19's SQL/PGQ (CREATE PROPERTY GRAPH/GRAPH_TABLE) withMATCHpattern examples in the README, verified against apostgres:19beta2container, with a matching panel added topagila-schema-diagram.png -
Add
film.length_hours, aVIRTUALgenerated column (round(length / 60.0, 2)) demonstrating PostgreSQL 18's new virtual generated columns, documented in the README alongside a note that (unlikeSTORED) virtual generated columns can't be indexed directly -
Add
pagila-temporal-setup.sql, declaringfilm_price_history(WITHOUT OVERLAPSprimary key onfilm_id/adaterange) andstore_film_price_override(a temporal foreign key back to it), demonstrating PostgreSQL 19's SQL:2011 application-time temporal support —WITHOUT OVERLAPSkeys, temporal foreign keys, andUPDATE/DELETE ... FOR PORTION OFrow-splitting DML — with overlaps/containment predicate examples in the README, verified against apostgres:19beta2container, with a matching panel added topagila-schema-diagram.png -
Install
pg_partmanandpgvectorin theDockerfilefrom the PGDG apt repo instead of building both from source, now that the repo carries current packages for each