Tested against: origin/main @ a178aa5b6b0b260d105962c928f07304360b7b30 (fetched 2026-05-20)
Severity: Medium (UX / debugging confusion — multiple SHOW commands return empty rows when content exists)
Several SHOW commands return a single row with empty content even when underlying state exists:
SHOW DATABASES
SHOW ROLES
SHOW STATS
SHOW SERVER STATS
SHOW METRICS
SHOW MEMORY
This is inconsistent with SHOW USERS, SHOW TENANTS, and SHOW AUDIT LOG which all emit proper per-row content.
Reproduction
SHOW DATABASES;
databases
-----------
(1 row)
SHOW ROLES;
roles
-------
(1 row)
SHOW STATS;
stats
-------
(1 row)
…even after CREATE DATABASE corpus; and CREATE ROLE mae8_admin; both succeeded (verified via subsequent error messages and \l).
For comparison, the working commands emit proper tabular content:
SHOW USERS;
username | tenant_id | roles | is_superuser
----------+-----------+--------------+--------------
nodedb | 0 | superuser | t
...
Likely cause
The implementations may be collapsing a list result into a single empty field instead of emitting one row per item, or the pgwire serialization path is returning the wrong row count. The fact that SHOW USERS and SHOW TENANTS work correctly suggests the bug is in specific command handlers, not the protocol layer.
Operational impact
You can't introspect databases, roles, or server stats via pgwire — has to be done by side-channel (audit log, \l for databases, daemon logs). For admin scripting and observability, this is a noticeable gap.
Suggested fix
SHOW DATABASES, SHOW ROLES, SHOW STATS, SHOW SERVER STATS, SHOW METRICS, SHOW MEMORY should each emit one row per item (matching the SHOW USERS pattern). Alternatively, document them as emitting comma-separated values in a single column (and fix the empty-string serialization).
Context
Caught during mae8 v2 Phase 0 bootstrap (2026-05-20). Full bug catalog: /home/system/rnd/mae8/docs/origin_bugs_2026-05-20.md (this is Bug 4 from that file).
Tested against:
origin/main @ a178aa5b6b0b260d105962c928f07304360b7b30(fetched 2026-05-20)Severity: Medium (UX / debugging confusion — multiple SHOW commands return empty rows when content exists)
Several
SHOWcommands return a single row with empty content even when underlying state exists:SHOW DATABASESSHOW ROLESSHOW STATSSHOW SERVER STATSSHOW METRICSSHOW MEMORYThis is inconsistent with
SHOW USERS,SHOW TENANTS, andSHOW AUDIT LOGwhich all emit proper per-row content.Reproduction
…even after
CREATE DATABASE corpus;andCREATE ROLE mae8_admin;both succeeded (verified via subsequent error messages and\l).For comparison, the working commands emit proper tabular content:
Likely cause
The implementations may be collapsing a list result into a single empty field instead of emitting one row per item, or the pgwire serialization path is returning the wrong row count. The fact that
SHOW USERSandSHOW TENANTSwork correctly suggests the bug is in specific command handlers, not the protocol layer.Operational impact
You can't introspect databases, roles, or server stats via pgwire — has to be done by side-channel (audit log,
\lfor databases, daemon logs). For admin scripting and observability, this is a noticeable gap.Suggested fix
SHOW DATABASES,SHOW ROLES,SHOW STATS,SHOW SERVER STATS,SHOW METRICS,SHOW MEMORYshould each emit one row per item (matching theSHOW USERSpattern). Alternatively, document them as emitting comma-separated values in a single column (and fix the empty-string serialization).Context
Caught during mae8 v2 Phase 0 bootstrap (2026-05-20). Full bug catalog:
/home/system/rnd/mae8/docs/origin_bugs_2026-05-20.md(this is Bug 4 from that file).