public inbox for [email protected]  
help / color / mirror / Atom feed
From: Lorusso Domenico <[email protected]>
To: [email protected]
Subject: [Announcement] ​A Bitemporal Solution for PostgreSQL (Beta)
Date: Thu, 11 Sep 2025 17:08:10 +0200
Message-ID: <CAJMpnG5FxZw7dJd+EUu19GoETShT_AUGqx1SG6hsyMoTOH61=w@mail.gmail.com> (raw)

Dear all,

I am gald to share an open-source project I've been developing in my free
time. It's a bitemporal solution built entirely within PostgreSQL, and
while it's still in its early beta stages, it has the ambition to provide a
comprehensive framework for temporal data management. The project is
inspired by the need for a simple, yet powerful way to handle historical
records and query data as it existed at any point in time.

This solution is designed to be highly configurable and uses views with INSTEAD
OF triggers to seamlessly manage inserts, updates, and deletes across
_current and _history tables. Key features include:

   -

   *Bitemporal Support*: Tracks both "valid time" (when a fact is true in
   the real world) and "transaction time" (when the fact was recorded in the
   database).
   -

   *Automatic Historicization*: The system automatically creates and
   manages historical records, ensuring a complete, immutable audit trail.
   -

   *Trigger-based Logic*: The core logic is encapsulated in a
   vrsn.trigger_handler() function, making it easy to apply to any table
   via a view.
   -

   *Configurable Behavior*: A set of parameters and state variables (
   vrsn.tar_state_variables) allows for fine-grained control over
   versioning, conflict resolution, and other behaviors.
   -

   *Adherence to Bitemporal Theory*: The framework is designed to be fully
   compliant with the bitemporal model proposed by Snodgrass.
   -

   *Pure SQL & Transparency*: The solution is built using pure PostgreSQL
   functions and types, requiring *no external extensions*, and it
   maintains a *transparent data structure* that does not mask the
   underlying tables.

This project is a work in progress, and I would love to get your feedback
and collaboration to improve it. If the concept interests you and you'd
like to dive into the code or offer some guidance, your expertise would be
highly valued.

Thank you for your time and consideration.

Bye


-- 
Domenico L.


reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: [Announcement] ​A Bitemporal Solution for PostgreSQL (Beta)
  In-Reply-To: <CAJMpnG5FxZw7dJd+EUu19GoETShT_AUGqx1SG6hsyMoTOH61=w@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox