postgres=# select * from projects where slug = 'command-tags';

Custom protocol command tags

Negotiate custom command-completion tags through a _pq_ protocol capability.

current state

exploration

blocker: No CommitFest entry and the protocol design needs broader consensus.

next

  • Resolve capability negotiation questions
  • Decide whether to pursue a CF entry

sessions

3
· 55:36 · youtube ↗

Hacking Postgres with Kirk, Andrey, Nik

Custom command tags and logical decoding from an archive-fed recovery server.

The workshop first revisited customizable command tags, confirming legacy behavior remains the default and its added branch should be negligible, then explored extensible client protocols and better psql completion. The main direction was extracting data from managed Postgres without burdening production: decode archived WAL into a logical stream. They compared a full recovery server with a standalone tool, concluding the latter would need schema state at a starting LSN, checkpoint/full-page-image handling, and careful treatment of file swaps such as pg_repack.

[timecodes · 8]
  1. Command-tag customization and performance feedback
  2. Ideas for an extensible client/server protocol
  3. Language-server completion for psql
  4. Parallelizing logical-replication initialization
  5. Keeping an independent copy outside managed Postgres
  6. Turning archived WAL into a logical stream
  7. Designing a standalone offline decoder
  8. Checkpoints, full-page images, and pg_repack caveats
no public artifact mapped
exploration

direct mapping
· 94:41 · youtube ↗

Command-tag customization

Custom protocol command tags and _pq_ capability negotiation.

After testing the newly committed REPACK command and confirming that it is transactional but takes an access-exclusive lock, the group built a prototype for customizable command-completion tags such as schema-qualified table names. A first server-only change broke psql's parser, exposing the need for client/server capability negotiation. The agent then used the existing _pq_ protocol-options framework so only requesting clients receive the new format. They reviewed compatibility tests and concluded the patch was useful for discussion but needed cleanup before pgsql-hackers.

[timecodes · 8]
  1. Testing the new REPACK command
  2. REPACK locking and transaction behavior
  3. Designing descriptive command tags
  4. Prototype-first agentic implementation
  5. Server-only format change breaks psql
  6. Why protocol feature negotiation is required
  7. Using the _pq_ protocol-options framework
  8. Compatibility review and patch cleanup
active

direct mapping
· 50:41 · youtube ↗

Configurable command tag, part 1

Explore custom command-completion tags returned to clients.

The session attempted to make PostgreSQL command-completion tags configurable, motivated by dump and restore output that says INSERT or COPY without identifying the relation. The proposed GUC would format tags with placeholders such as command name and relation names while preserving protocol compatibility. They threaded relation information through executor structures and reused a placeholder formatter, but the server repeatedly crashed because the helper was called incorrectly. The prototype remained unfinished, with lazy calculation of optional fields also identified as necessary.

[timecodes · 8]
  1. Updates on earlier patches and reviews
  2. Why command tags need relation context
  3. A configurable placeholder-based tag format
  4. Threading relation names through query completion
  5. Adding the command_tag_format GUC
  6. Formatting command and relation placeholders
  7. Server crashes and binary-search debugging
  8. Incorrect helper usage and unfinished prototype
active

correlated mapping