Skip to content

SHOW DATABASES / SHOW ROLES / SHOW STATS / SHOW METRICS / SHOW MEMORY return single empty row when content exists #122

@emanzx

Description

@emanzx

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions