Hi hackers,

I found that \d+ shows "Replica Identity: ???" for a table with
REPLICA IDENTITY NOTHING:

```
CREATE TABLE t (a int);
ALTER TABLE t REPLICA IDENTITY NOTHING;
\d+ t
                                            Table "public.t"
 Column |  Type   | Collation | Nullable | Default | Storage |
Compression | Stats target | Description
--------+---------+-----------+----------+---------+---------+-------------+--------------+-------------
 a      | integer |           |          |         | plain   |
    |              |
Replica Identity: ???
Access method: heap
```

Commit 18954ce7f69 replaced the hard-coded relreplident characters in
describe.c with REPLICA_IDENTITY_* macros, but wrote
REPLICA_IDENTITY_DEFAULT where REPLICA_IDENTITY_NOTHING was intended,
so the NOTHING case falls through to "???". This is a regression in
v18.

The attached patch fixes the comparison and adds regression test
coverage, which only existed for FULL. I think this should be
back-patched to v18.

Thoughts?

-- 
Shinya Kato
NTT OSS Center

Attachment: v1-0001-psql-Fix-d-display-of-REPLICA-IDENTITY-NOTHING.patch
Description: Binary data

Reply via email to