]> granicus.if.org Git - postgresql/commitdiff
psql: update "replica identity" display for \d+
authorBruce Momjian <bruce@momjian.us>
Wed, 26 Mar 2014 15:13:17 +0000 (11:13 -0400)
committerBruce Momjian <bruce@momjian.us>
Wed, 26 Mar 2014 15:13:17 +0000 (11:13 -0400)
Display "replica identity" only for \d plus mode, exclude system schema
objects, and display all possible values, not just non-default,
non-index ones.

src/bin/psql/describe.c
src/test/regress/expected/create_table_like.out
src/test/regress/expected/inherit.out
src/test/regress/expected/matview.out
src/test/regress/expected/replica_identity.out
src/test/regress/expected/rules.out

index a194ce7e269804702fee26940ad455366a06ea9a..21bbdf823a7ac4eeb437cc437fd2628b74b6bcf6 100644 (file)
@@ -2345,14 +2345,19 @@ describeOneTableDetails(const char *schemaname,
                        printTableAddFooter(&cont, buf.data);
                }
 
-               if ((tableinfo.relkind == 'r' || tableinfo.relkind == 'm') &&
-                       tableinfo.relreplident != 'd' && tableinfo.relreplident != 'i')
+               if (verbose && (tableinfo.relkind == 'r' || tableinfo.relkind == 'm') &&
+                       strcmp(schemaname, "pg_catalog") != 0)
                {
                        const char *s = _("Replica Identity");
 
                        printfPQExpBuffer(&buf, "%s: %s",
                                                          s,
-                                                         tableinfo.relreplident == 'n' ? "NOTHING" : "FULL");
+                                                         tableinfo.relreplident == 'd' ? "DEFAULT" :
+                                                         tableinfo.relreplident == 'f' ? "FULL" :
+                                                         tableinfo.relreplident == 'i' ? "USING INDEX" :
+                                                         tableinfo.relreplident == 'n' ? "NOTHING" :
+                                                         "???");
+
                        printTableAddFooter(&cont, buf.data);
                }
 
index 5f29b3978dd24e9a9f6ad91fabbbf63a4a7ede62..feb6c9346622a89d0042ad90134313a09c204b7a 100644 (file)
@@ -115,6 +115,7 @@ CREATE TABLE ctlt12_storage (LIKE ctlt1 INCLUDING STORAGE, LIKE ctlt2 INCLUDING
  a      | text | not null  | main     |              | 
  b      | text |           | extended |              | 
  c      | text |           | external |              | 
+Replica Identity: DEFAULT
 Has OIDs: no
 
 CREATE TABLE ctlt12_comments (LIKE ctlt1 INCLUDING COMMENTS, LIKE ctlt2 INCLUDING COMMENTS);
@@ -125,6 +126,7 @@ CREATE TABLE ctlt12_comments (LIKE ctlt1 INCLUDING COMMENTS, LIKE ctlt2 INCLUDIN
  a      | text | not null  | extended |              | A
  b      | text |           | extended |              | B
  c      | text |           | extended |              | C
+Replica Identity: DEFAULT
 Has OIDs: no
 
 CREATE TABLE ctlt1_inh (LIKE ctlt1 INCLUDING CONSTRAINTS INCLUDING COMMENTS) INHERITS (ctlt1);
@@ -140,6 +142,7 @@ NOTICE:  merging constraint "ctlt1_a_check" with inherited definition
 Check constraints:
     "ctlt1_a_check" CHECK (length(a) > 2)
 Inherits: ctlt1
+Replica Identity: DEFAULT
 Has OIDs: no
 
 SELECT description FROM pg_description, pg_constraint c WHERE classoid = 'pg_constraint'::regclass AND objoid = c.oid AND c.conrelid = 'ctlt1_inh'::regclass;
@@ -162,6 +165,7 @@ Check constraints:
     "ctlt3_a_check" CHECK (length(a) < 5)
 Inherits: ctlt1,
           ctlt3
+Replica Identity: DEFAULT
 Has OIDs: no
 
 CREATE TABLE ctlt13_like (LIKE ctlt3 INCLUDING CONSTRAINTS INCLUDING COMMENTS INCLUDING STORAGE) INHERITS (ctlt1);
@@ -177,6 +181,7 @@ Check constraints:
     "ctlt1_a_check" CHECK (length(a) > 2)
     "ctlt3_a_check" CHECK (length(a) < 5)
 Inherits: ctlt1
+Replica Identity: DEFAULT
 Has OIDs: no
 
 SELECT description FROM pg_description, pg_constraint c WHERE classoid = 'pg_constraint'::regclass AND objoid = c.oid AND c.conrelid = 'ctlt13_like'::regclass;
@@ -198,6 +203,7 @@ Indexes:
     "ctlt_all_expr_idx" btree ((a || b))
 Check constraints:
     "ctlt1_a_check" CHECK (length(a) > 2)
+Replica Identity: DEFAULT
 Has OIDs: no
 
 SELECT c.relname, objsubid, description FROM pg_description, pg_index i, pg_class c WHERE classoid = 'pg_class'::regclass AND objoid = i.indexrelid AND c.oid = i.indexrelid AND i.indrelid = 'ctlt_all'::regclass ORDER BY c.relname, objsubid;
index c84c435a8ac46564183944e6d0e5500abed1460e..7f2eeea0070a0d7ad2f9c8c3d2c22daab6aee63c 100644 (file)
@@ -913,6 +913,7 @@ ALTER TABLE inhts RENAME d TO dd;
  dd     | integer |           | plain   |              | 
 Inherits: inht1,
           inhs1
+Replica Identity: DEFAULT
 Has OIDs: no
 
 DROP TABLE inhts;
@@ -934,6 +935,7 @@ ALTER TABLE inht1 RENAME aa TO aaa;
  z      | integer |           | plain   |              | 
 Inherits: inht2,
           inht3
+Replica Identity: DEFAULT
 Has OIDs: no
 
 CREATE TABLE inhts (d int) INHERITS (inht2, inhs1);
@@ -952,6 +954,7 @@ ERROR:  cannot rename inherited column "b"
  d      | integer |           | plain   |              | 
 Inherits: inht2,
           inhs1
+Replica Identity: DEFAULT
 Has OIDs: no
 
 WITH RECURSIVE r AS (
@@ -999,6 +1002,7 @@ CREATE TABLE test_constraints_inh () INHERITS (test_constraints);
 Indexes:
     "test_constraints_val1_val2_key" UNIQUE CONSTRAINT, btree (val1, val2)
 Child tables: test_constraints_inh
+Replica Identity: DEFAULT
 Has OIDs: no
 
 ALTER TABLE ONLY test_constraints DROP CONSTRAINT test_constraints_val1_val2_key;
@@ -1010,6 +1014,7 @@ ALTER TABLE ONLY test_constraints DROP CONSTRAINT test_constraints_val1_val2_key
  val1   | character varying |           | extended |              | 
  val2   | integer           |           | plain    |              | 
 Child tables: test_constraints_inh
+Replica Identity: DEFAULT
 Has OIDs: no
 
 \d+ test_constraints_inh
@@ -1020,6 +1025,7 @@ Has OIDs: no
  val1   | character varying |           | extended |              | 
  val2   | integer           |           | plain    |              | 
 Inherits: test_constraints
+Replica Identity: DEFAULT
 Has OIDs: no
 
 DROP TABLE test_constraints_inh;
@@ -1037,6 +1043,7 @@ CREATE TABLE test_ex_constraints_inh () INHERITS (test_ex_constraints);
 Indexes:
     "test_ex_constraints_c_excl" EXCLUDE USING gist (c WITH &&)
 Child tables: test_ex_constraints_inh
+Replica Identity: DEFAULT
 Has OIDs: no
 
 ALTER TABLE test_ex_constraints DROP CONSTRAINT test_ex_constraints_c_excl;
@@ -1046,6 +1053,7 @@ ALTER TABLE test_ex_constraints DROP CONSTRAINT test_ex_constraints_c_excl;
 --------+--------+-----------+---------+--------------+-------------
  c      | circle |           | plain   |              | 
 Child tables: test_ex_constraints_inh
+Replica Identity: DEFAULT
 Has OIDs: no
 
 \d+ test_ex_constraints_inh
@@ -1054,6 +1062,7 @@ Has OIDs: no
 --------+--------+-----------+---------+--------------+-------------
  c      | circle |           | plain   |              | 
 Inherits: test_ex_constraints
+Replica Identity: DEFAULT
 Has OIDs: no
 
 DROP TABLE test_ex_constraints_inh;
@@ -1071,6 +1080,7 @@ Indexes:
     "test_primary_constraints_pkey" PRIMARY KEY, btree (id)
 Referenced by:
     TABLE "test_foreign_constraints" CONSTRAINT "test_foreign_constraints_id1_fkey" FOREIGN KEY (id1) REFERENCES test_primary_constraints(id)
+Replica Identity: DEFAULT
 Has OIDs: no
 
 \d+ test_foreign_constraints
@@ -1081,6 +1091,7 @@ Has OIDs: no
 Foreign-key constraints:
     "test_foreign_constraints_id1_fkey" FOREIGN KEY (id1) REFERENCES test_primary_constraints(id)
 Child tables: test_foreign_constraints_inh
+Replica Identity: DEFAULT
 Has OIDs: no
 
 ALTER TABLE test_foreign_constraints DROP CONSTRAINT test_foreign_constraints_id1_fkey;
@@ -1090,6 +1101,7 @@ ALTER TABLE test_foreign_constraints DROP CONSTRAINT test_foreign_constraints_id
 --------+---------+-----------+---------+--------------+-------------
  id1    | integer |           | plain   |              | 
 Child tables: test_foreign_constraints_inh
+Replica Identity: DEFAULT
 Has OIDs: no
 
 \d+ test_foreign_constraints_inh
@@ -1098,6 +1110,7 @@ Has OIDs: no
 --------+---------+-----------+---------+--------------+-------------
  id1    | integer |           | plain   |              | 
 Inherits: test_foreign_constraints
+Replica Identity: DEFAULT
 Has OIDs: no
 
 DROP TABLE test_foreign_constraints_inh;
index daf3b9e91d5a45463c91fcb9a167350f8a8b4737..37db38d0a6db1a6acbd064529fb3745ae7baee88 100644 (file)
@@ -104,6 +104,7 @@ View definition:
     tv.totamt
    FROM tv
   ORDER BY tv.type;
+Replica Identity: DEFAULT
 
 \d+ tvm
                     Materialized view "public.tvm"
@@ -116,6 +117,7 @@ View definition:
     tv.totamt
    FROM tv
   ORDER BY tv.type;
+Replica Identity: DEFAULT
 
 \d+ tvvm
                     Materialized view "public.tvvm"
@@ -125,6 +127,7 @@ View definition:
 View definition:
  SELECT tvv.grandtot
    FROM tvv;
+Replica Identity: DEFAULT
 
 \d+ bb
                      Materialized view "public.bb"
@@ -136,6 +139,7 @@ Indexes:
 View definition:
  SELECT tvvmv.grandtot
    FROM tvvmv;
+Replica Identity: DEFAULT
 
 -- test schema behavior
 CREATE SCHEMA mvschema;
@@ -152,6 +156,7 @@ Indexes:
 View definition:
  SELECT sum(tvm.totamt) AS grandtot
    FROM mvschema.tvm;
+Replica Identity: DEFAULT
 
 SET search_path = mvschema, public;
 \d+ tvm
@@ -165,6 +170,7 @@ View definition:
     tv.totamt
    FROM tv
   ORDER BY tv.type;
+Replica Identity: DEFAULT
 
 -- modify the underlying table data
 INSERT INTO t VALUES (6, 'z', 13);
@@ -369,6 +375,7 @@ UNION ALL
          SELECT v_test2.moo,
             3 * v_test2.moo
            FROM v_test2;
+Replica Identity: DEFAULT
 
 CREATE MATERIALIZED VIEW mv_test3 AS SELECT * FROM mv_test2 WHERE moo = 12345;
 SELECT relispopulated FROM pg_class WHERE oid = 'mv_test3'::regclass;
index a93897f9df0293c830fce70c89097fea8f027cd8..aeaf0fb75728867a01efbba4cc8db814b0be0748 100644 (file)
@@ -170,7 +170,6 @@ Indexes:
     "test_replica_identity_unique_nondefer" UNIQUE CONSTRAINT, btree (keya, keyb)
     "test_replica_identity_hash" hash (nonkey)
     "test_replica_identity_keyab" btree (keya, keyb)
-Replica Identity: FULL
 
 ALTER TABLE test_replica_identity REPLICA IDENTITY NOTHING;
 SELECT relreplident FROM pg_class WHERE oid = 'test_replica_identity'::regclass;
index b0b6e27d8a9e3fb3398785da2054d9450e042038..25a36f428022363e2b7d458da9b7a04d61b701c9 100644 (file)
@@ -2609,6 +2609,7 @@ Rules:
     r3 AS
     ON DELETE TO rules_src DO
  NOTIFY rules_src_deletion
+Replica Identity: DEFAULT
 Has OIDs: no
 
 --