# ProvSQL TODO

Planning material for upcoming ProvSQL work, kept alongside the source
tree so the plans evolve with the code that implements them.

Each plan document follows a consistent layout:

1. **Intro** : one paragraph stating the scope of the plan and the
   reference material it is anchored on.
2. **Out of scope** (optional) : items deliberately excluded, with a
   pointer to where they are handled instead.
3. **Plan** : the proposals themselves, each self-contained.
4. **Priorities** : ship-when ordering.
5. **Implementation observations** (optional) : reusable notes from
   prior work in the same area.

## Contents

- [`case-studies.md`](case-studies.md) : plan for closing the
  feature-coverage gaps in the user tutorial and the five existing
  case studies (CS1-CS5), plus a sketch of CS6 for upcoming features.
- [`continuous_distributions.md`](continuous_distributions.md) : plan
  for adding continuous probability distributions (Gaussian, uniform,
  exponential, ...) to ProvSQL's pc-table model, anchored on Timothy
  Leong's 2022 BSc thesis (NUS).
- [`feature-coverage.md`](feature-coverage.md) : reference matrix
  cross-referencing every documented user-facing feature against the
  tutorial and case studies. Source of truth for the gaps that
  `case-studies.md` proposes to close.
- [`safe-query-followups.md`](safe-query-followups.md) : deferred
  ideas surfaced during the `provsql.boolean_provenance` work --
  further Boolean-only optimisations beyond the hierarchical-CQ
  rewriter and `foldBooleanIdentities` (independent-subtree
  detection, Möbius / Monet, ...), the layered HAVING-clause
  optimisation plan, and the hierarchical-detector follow-ups
  (FD-induced nested rewrite, soft keys, view-descent FD chases,
  data-safe plans).
- [`studio.md`](studio.md) : plan for ProvSQL Studio work landing
  alongside or after the first PyPI release (`studio-v1.0.0`):
  release plumbing, CI, Docker swap-over, in-app polish, and the
  Contributions / Time-travel modes scheduled for later versions.
