pg-schema-0.8.0.1: ChangeLog.md
# Changelog for pg-schema
## 0.8.0.1
- Build all with -Wall
- Small fixes in doc
## 0.8.0.0
- Fix SELECT path matching after renamer: promoted `PathElem'` (`peName`,
`peDbName`, `peKind`) replaces `(Text, PathKind)`; runtime `pathStepMatches`
supports point paths and broadcast by shared db fk name; independent filters
on aliased sibling fields (e.g. `mid1RootFk` vs `mid1_root_fk2`).
- Internal SELECT paths: `[PathElemK]` in `PathCtx` / `TabOnDPathRen`; removed
`EffPath` on renamer-only pairs; `TabOnDPath2` walks `peDbName`.
- Flat DML: `upsertByKey` / `upsertByKey_` and `updateByKey` / `updateByKey_`
(`upsertByKey` requires all mandatory columns and a full key — always
`INSERT … ON CONFLICT …`; `updateByKey` is key-only, never inserts, bare
returning type `r'`, result `IO ([Maybe r'], Text)`).
- Tree DML: `updateJSON` / `updateJSON_` (update-only); `InsertMode` for the
JSON pipeline.
- Tree returning: Maybe or Bare for `upsertJSON`.
- New constraints: `AllHasKeyTree`, `CheckHasKey`, `ReturningMatches{Insert,Upsert,Update}`,
`FromJSON` / `ToJSON` for `Maybe` rows and `null` in returning arrays.
- Rename `TreeSch` to `HasSchema`
## 0.7.1.2
- Fix bug with aggregates (Min/Max/Sum/Avg)
## 0.7.1.1
- Add upsertJSONText, upsertJSONText_
## 0.7.1.0
- Condition DSL: `(=??)` on nullable columns generates SQL
`IS NOT DISTINCT FROM` (same null-safe key equality as upsertJSON)
- Improve transaction behavior for insertJSON/upsertJSON
- Add tests for insertJSON/upsertJSON with transactions
- `upsertJSON` / `upsertJSON_`: optional `ON CONFLICT` targets include NOT NULL
unique keys (primary key still first), then nullable unique keys when the table
has no NOT NULL UK; `UPDATE` by key uses `IS NOT DISTINCT FROM` for key columns;
`IdentityCandidates` (compile-time) lists every PK/UK from the schema
- `insertJSON` / `insertJSON_`: insert-only (plain `INSERT`, no `ON CONFLICT` or
`UPDATE`; duplicate keys fail at the database)
- Rename `AllMandatoryOrHasPKTree` to `AllMandatoryOrHasKeyTree`
## 0.7.0.1
- Bug fixing (upsertJSON_ without change fields: on conflict do nothing)
## 0.7.0.0
- Bug fixing (updateText_ signature)
- Change signature for deleteByCond
- Add CondAnn & QueryParamsAnn
## 0.6.1.0
- Bug fixing (ins/upsertJSON for json db-fields)
## 0.6.0.0
- Using Renamer for QueryParams and Cond
- Improve error messaging
- Support for 'UnsafeCol'
- Check possibility of type conversions for select-list/insert/update (it was broken in 0.5.0)
- Check optional/mandatory for parent references is SELECT
- Added qPathFromHere/qPathToHere. Self-reference require explicit direction in qPathXXX
## 0.5.2.0
- Bug fixing (Problem with Self-references)
## 0.5.1.1
- Improve error messaging
## 0.5.1.0
- Bug fixing (TF stucks in some cases)
## 0.5.0.0
- First release on Hackage