One Catalog Entry Count for the Website and CLI
Decision date: 2026-10-16
Status: Implemented in the v1.10.0 candidate, not yet released.
Current reference:pig extcatalog count
Scope: Catalog totals and default listing membership; package installation and SQL activation rules remain defined by each entry.
Decision
Use the number of catalog records as the shared extension count. Include packaged SQL utilities and retained lifecycle records. Calculate CLI totals from the catalog actually loaded or downloaded.
Context
The catalog serves package discovery as well as PostgreSQL extension discovery. A packaged SQL
utility can be useful without a control file or a CREATE EXTENSION entry point. Excluding it
from the default list and total makes those outputs disagree with the website and catalog file,
even though an explicit name search still finds it.
Alternatives considered
- Count only records classified as PostgreSQL extensions. Rejected because it gives the CLI and website different totals for the same catalog.
- Add a separate public count for every entry type. Unnecessary for the current listing contract.
- Hard-code the announced total in the CLI. Rejected because a downloaded catalog can differ from the bundled one.
Contract
- The unfiltered default list includes every catalog record, including SQL utilities and removed records.
- Text row counts and JSON/YAML
data.countequal the number of returned records. - Searches count their matches;
--pkgcontinues to count leading package records. - The global availability text summary uses the complete catalog count.
- Catalog refresh results use the downloaded record count in
data.extension_countand their message. - Website totals follow the bundled catalog. A newer downloaded catalog may have a different total.
- Counting a record does not change its DDL requirements, lifecycle state, or platform availability.
Impact
SQL utilities appear in the default list as well as explicit searches. Output field names and types remain stable. Consumers should interpret the extension total as catalog coverage; it is not a count of extensions enabled in a database or installable on a particular host.
Verification
Fixed source commits and regression tests for the committed v1.10.0 refinements cover: catalog entry count and availability. These commits do not establish a release boundary.
The preceding classification rule is preserved in the v1.9.0 catalog source. Acceptance checks compare parsed record counts with default lists, availability summaries, and catalog refresh results. They cover packaged SQL utilities and removed records, while keeping search and package counts specific to their returned rows.
Status
Accepted on 2026-10-16 and implemented with regression tests. The v1.10.0 candidate bundles 603 records and is not yet released. Use the current reference for the counting contract and release notes for version boundaries.