Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ pre-release; the version marker is `1.0-alpha4`, recorded in `VERSION`. New tabl
are written in the native on-disk format, PGCN v1. For the forward-looking plan see
[design/ROADMAP.md](design/ROADMAP.md); for full history see the git log.

The extension's `default_version` is `1.0-alpha4`, which is in development and not
yet tagged; `v1.0-alpha3` is the latest published pre-release. Upgrade scripts from
The extension's `default_version` is `1.0-alpha4`.
`v1.0-alpha4` is the latest published pre-release. Upgrade scripts from
every previously shipped version ship with it (`1.0-dev`, which the v1.0-alpha tag
installed, `1.0-alpha`, `1.0-alpha2`, and `1.0-alpha3`), so a single
`ALTER EXTENSION pgcolumnar UPDATE` reaches `1.0-alpha4` from any of them. Older
Expand Down
2 changes: 1 addition & 1 deletion META.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "pgcolumnar",
"abstract": "Analytic column storage for PostgreSQL, built as a native table access method",
"description": "pgColumnar is a columnar storage table access method for PostgreSQL, written as a clean-room, MIT-licensed implementation. It reads and writes its own native format, PGCN v1, and supports chunk-group skipping from zone maps and bloom filters, vectorized aggregation, projections, retention, online compaction and reclustering, parallel bulk ingest and export, Apache Arrow and Parquet import and export, Apache Iceberg, and object storage.",
"description": "pgColumnar is a columnar storage table access method for PostgreSQL, written as a clean-room, MIT-licensed implementation. It reads and writes its own native format, PGCN v1, and supports chunk-group skipping from zone maps, bloom filters and star-schema join runtime filters, vectorized aggregation, projections, Z-order and Hilbert clustering, retention, online compaction and reclustering, parallel bulk ingest and export, Apache Arrow and Parquet import and export, Apache Iceberg, and object storage.",
"version": "1.0.0-alpha.4",
"maintainer": [
"Joshua D. Drake <jd@commandprompt.com>"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ append-mostly data.
pgColumnar builds from one source tree on PostgreSQL 15 through 18, with 19
validated against 19beta2, and is
licensed under the [MIT License](LICENSE). It is [pre-release](docs/limitations.md#release-status); the version marker
is `1.0-alpha4`, recorded in `VERSION`. That version is in development and not
tagged; the latest published pre-release is `v1.0-alpha3`. A table `USING pgcolumnar` is stored in the
is `1.0-alpha4`, recorded in `VERSION`.
The latest published pre-release is `v1.0-alpha4`. A table `USING pgcolumnar` is stored in the
native on-disk format, PGCN v1.

## Documentation
Expand Down
4 changes: 2 additions & 2 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,8 @@ columnar table with it.

### Upgrading to 1.0-alpha4

`1.0-alpha4`, recorded in `VERSION`, is what this source tree installs. It is in
development and not tagged; the latest published pre-release is `v1.0-alpha3`.
`1.0-alpha4`, recorded in `VERSION`, is what this source tree installs. The
latest published pre-release is `v1.0-alpha4`.
`ALTER EXTENSION pgcolumnar UPDATE` (step 3 above) reaches it from every
previously published version: `1.0-dev`, which the `v1.0-alpha` tag installed,
`1.0-alpha`, `1.0-alpha2`, and `1.0-alpha3`. PostgreSQL applies the shipped
Expand Down
4 changes: 2 additions & 2 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Issues are the authority on anything being worked now.
## Status

pgColumnar is [pre-release](limitations.md#release-status). The version marker is
`1.0-alpha4`, recorded in `VERSION`. That version is in development and not tagged; the
latest published pre-release is `v1.0-alpha3`. A table `USING pgcolumnar` is stored in the
`1.0-alpha4`, recorded in `VERSION`. The
latest published pre-release is `v1.0-alpha4`. A table `USING pgcolumnar` is stored in the
native on-disk format, PGCN v1.

## Releases to 1.0
Expand Down
33 changes: 27 additions & 6 deletions test/docs_style.sh
Original file line number Diff line number Diff line change
Expand Up @@ -263,15 +263,36 @@ _pubdocs="$(grep -rln 'latest published pre-release' \
check "premise: at least one document names the latest published pre-release" \
"$([ -n "$_pubdocs" ] && echo yes || echo no)" "yes"

# BOTH WORD ORDERS, because the four documents do not agree on one. Three write
# "latest published pre-release is `vX`" and CHANGELOG.md writes "`vX` is the
# latest published pre-release". A pattern for one order silently parses three
# files and skips the fourth, which is the REFERENCE document, so the check would
# have compared the copies to each other and exempted the original.
#
# The per-file count is what makes that visible: a file that mentions the claim
# and yields no version is a file this rule cannot see, and it is named rather
# than skipped.
# shellcheck disable=SC2086
_pubvers="$(grep -rhoE 'latest published pre-release is `v[^`]*`' $_pubdocs 2>/dev/null \
| grep -oE '`v[^`]*`' | tr -d '`' | sort -u)"
check "premise: the claim was parsed, not merely present" \
"$([ -n "$_pubvers" ] && echo yes || echo no)" "yes"
_pubvers="$( { grep -rhoE 'latest published pre-release is `v[^`]*`' $_pubdocs 2>/dev/null
grep -rhoE '`v[^`]*` is the latest published pre-release' $_pubdocs 2>/dev/null
} | grep -oE '`v[^`]*`' | tr -d '`' | sort -u)"

_pubunparsed=""
for _d in $_pubdocs; do
grep -qE 'latest published pre-release is `v[^`]*`|`v[^`]*` is the latest published pre-release' \
"$_d" || _pubunparsed="$_pubunparsed $(basename "$_d")"
done
check "every document making the claim states it in a form this rule can read" \
"$(printf '%s' "$_pubunparsed" | sed 's/^ //')" ""

# A DISTINCT SENTINEL, not "". An empty extraction would otherwise compare "" to
# "" and report PASS having read nothing, which is #1096's defect exactly: the
# premise caught it there and the headline still said PASS.
check "every document names the same latest published pre-release" \
"$([ "$(printf '%s\n' "$_pubvers" | grep -c .)" = 1 ] && echo "" \
|| printf '%s' "$_pubvers" | tr '\n' ' ' | sed 's/ $//')" ""
"$([ "$(printf '%s\n' "$_pubvers" | grep -c .)" = 1 ] \
&& printf '%s' "$_pubvers" \
|| printf 'DISAGREE:%s' "$(printf '%s' "$_pubvers" | tr '\n' ',' | sed 's/,$//')")" \
"$(printf '%s\n' "$_pubvers" | head -1)"

# ---- and META.json, which NOTHING read at all ------------------------------
#
Expand Down
Loading