]> granicus.if.org Git - postgresql/commitdiff
Remove obsolete pg_constraint.consrc column
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 27 Oct 2018 10:45:50 +0000 (11:45 +0100)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 1 Nov 2018 19:36:05 +0000 (20:36 +0100)
This has been deprecated and effectively unused for a long time.

Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
doc/src/sgml/catalogs.sgml
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/pg_constraint.c
src/backend/commands/tablecmds.c
src/backend/commands/trigger.c
src/backend/commands/typecmds.c
src/include/catalog/catversion.h
src/include/catalog/pg_constraint.h
src/test/regress/expected/inherit.out
src/test/regress/sql/inherit.sql

index e7165bdc5d53820601c39582c71b11b01c1159ac..8b7f169d50c34d4d56ff69b7e3304dff586ba8b8 100644 (file)
@@ -2400,14 +2400,10 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
       <entry><structfield>conbin</structfield></entry>
       <entry><type>pg_node_tree</type></entry>
       <entry></entry>
-      <entry>If a check constraint, an internal representation of the expression</entry>
-     </row>
-
-     <row>
-      <entry><structfield>consrc</structfield></entry>
-      <entry><type>text</type></entry>
-      <entry></entry>
-      <entry>If a check constraint, a human-readable representation of the expression</entry>
+      <entry>If a check constraint, an internal representation of the
+      expression.  (It's recommended to use
+      <function>pg_get_constraintdef()</function> to extract the definition of
+      a check constraint.)</entry>
      </row>
     </tbody>
    </tgroup>
@@ -2423,15 +2419,6 @@ SCRAM-SHA-256$<replaceable>&lt;iteration count&gt;</replaceable>:<replaceable>&l
    index.)
   </para>
 
-  <note>
-   <para>
-    <structfield>consrc</structfield> is not updated when referenced objects
-    change; for example, it won't track renaming of columns.  Rather than
-    relying on this field, it's best to use <function>pg_get_constraintdef()</function>
-    to extract the definition of a check constraint.
-   </para>
-  </note>
-
   <note>
    <para>
     <literal>pg_class.relchecks</literal> needs to agree with the
index 640e283688b1c6ec510b1b53b89d93e4c6f4680e..064cf9dbf68fc493a980eb5f4e045da68d1ce543 100644 (file)
@@ -2315,7 +2315,6 @@ StoreRelCheck(Relation rel, const char *ccname, Node *expr,
                          bool is_no_inherit, bool is_internal)
 {
        char       *ccbin;
-       char       *ccsrc;
        List       *varList;
        int                     keycount;
        int16      *attNos;
@@ -2326,14 +2325,6 @@ StoreRelCheck(Relation rel, const char *ccname, Node *expr,
         */
        ccbin = nodeToString(expr);
 
-       /*
-        * Also deparse it to form the mostly-obsolete consrc field.
-        */
-       ccsrc = deparse_expression(expr,
-                                                          deparse_context_for(RelationGetRelationName(rel),
-                                                                                                  RelationGetRelid(rel)),
-                                                          false, false);
-
        /*
         * Find columns of rel that are used in expr
         *
@@ -2406,14 +2397,12 @@ StoreRelCheck(Relation rel, const char *ccname, Node *expr,
                                                          NULL, /* not an exclusion constraint */
                                                          expr, /* Tree form of check constraint */
                                                          ccbin,        /* Binary form of check constraint */
-                                                         ccsrc,        /* Source form of check constraint */
                                                          is_local, /* conislocal */
                                                          inhcount, /* coninhcount */
                                                          is_no_inherit,        /* connoinherit */
                                                          is_internal); /* internally constructed? */
 
        pfree(ccbin);
-       pfree(ccsrc);
 
        return constrOid;
 }
index 5885899c9b4ab414822a09810e92e722c791b297..4088286151af0a2c42499da71784cdeb7be19460 100644 (file)
@@ -1336,7 +1336,6 @@ index_constraint_create(Relation heapRelation,
                                                                   indexInfo->ii_ExclusionOps,
                                                                   NULL,        /* no check constraint */
                                                                   NULL,
-                                                                  NULL,
                                                                   islocal,
                                                                   inhcount,
                                                                   noinherit,
index f4057a9f15276c1d001966b3df72a1ab170002bb..1c235b4b296dbb0f609cee84e5bd1fbd52eb32ed 100644 (file)
@@ -78,7 +78,6 @@ CreateConstraintEntry(const char *constraintName,
                                          const Oid *exclOp,
                                          Node *conExpr,
                                          const char *conBin,
-                                         const char *conSrc,
                                          bool conIsLocal,
                                          int conInhCount,
                                          bool conNoInherit,
@@ -218,22 +217,11 @@ CreateConstraintEntry(const char *constraintName,
        else
                nulls[Anum_pg_constraint_conexclop - 1] = true;
 
-       /*
-        * initialize the binary form of the check constraint.
-        */
        if (conBin)
                values[Anum_pg_constraint_conbin - 1] = CStringGetTextDatum(conBin);
        else
                nulls[Anum_pg_constraint_conbin - 1] = true;
 
-       /*
-        * initialize the text form of the check constraint
-        */
-       if (conSrc)
-               values[Anum_pg_constraint_consrc - 1] = CStringGetTextDatum(conSrc);
-       else
-               nulls[Anum_pg_constraint_consrc - 1] = true;
-
        tup = heap_form_tuple(RelationGetDescr(conDesc), values, nulls);
 
        conOid = CatalogTupleInsert(conDesc, tup);
@@ -703,7 +691,6 @@ clone_fk_constraints(Relation pg_constraint, Relation parentRel,
                                                                  NULL,
                                                                  NULL,
                                                                  NULL,
-                                                                 NULL,
                                                                  false,
                                                                  1, false, true);
                subclone = lappend_oid(subclone, constrOid);
index 153aec263efb4d9f226b91012ae48ca1b25f4114..ba76c3f9b907c8968e5a4ee6f4db506909cbd066 100644 (file)
@@ -7704,7 +7704,6 @@ ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel,
                                                                          NULL, /* no exclusion constraint */
                                                                          NULL, /* no check constraint */
                                                                          NULL,
-                                                                         NULL,
                                                                          true, /* islocal */
                                                                          0,    /* inhcount */
                                                                          true, /* isnoinherit */
index 240e85e39103f2b60dc638631c08f469acd0cce0..0bd847cd195f578a58beca1bed0a89675f4c04db 100644 (file)
@@ -752,7 +752,6 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString,
                                                                                          NULL, /* no exclusion */
                                                                                          NULL, /* no check constraint */
                                                                                          NULL,
-                                                                                         NULL,
                                                                                          true, /* islocal */
                                                                                          0,    /* inhcount */
                                                                                          true, /* isnoinherit */
index 3271962a7a705df9561c70748e2c56255247a57b..12388004d9850a58a904540d1ed3189abfeb042c 100644 (file)
@@ -3042,7 +3042,6 @@ domainAddConstraint(Oid domainOid, Oid domainNamespace, Oid baseTypeOid,
                                        const char *domainName, ObjectAddress *constrAddr)
 {
        Node       *expr;
-       char       *ccsrc;
        char       *ccbin;
        ParseState *pstate;
        CoerceToDomainValue *domVal;
@@ -3116,12 +3115,6 @@ domainAddConstraint(Oid domainOid, Oid domainNamespace, Oid baseTypeOid,
         */
        ccbin = nodeToString(expr);
 
-       /*
-        * Deparse it to produce text for consrc.
-        */
-       ccsrc = deparse_expression(expr,
-                                                          NIL, false, false);
-
        /*
         * Store the constraint in pg_constraint
         */
@@ -3151,7 +3144,6 @@ domainAddConstraint(Oid domainOid, Oid domainNamespace, Oid baseTypeOid,
                                                          NULL, /* not an exclusion constraint */
                                                          expr, /* Tree form of check constraint */
                                                          ccbin,        /* Binary form of check constraint */
-                                                         ccsrc,        /* Source form of check constraint */
                                                          true, /* is local */
                                                          0,    /* inhcount */
                                                          false,        /* connoinherit */
index 8e92b287cc2a2c29829a1bc76d7670eeb63691ff..17f8e3005a03493c6f88e1a43071273d625abfbc 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                                                     yyyymmddN */
-#define CATALOG_VERSION_NO     201811011
+#define CATALOG_VERSION_NO     201811012
 
 #endif
index 66b3f13f74abf3b91d9c3174538a4b170a98d073..630cabe0b8f3b65a40e38a10db69e8793afb18df 100644 (file)
@@ -142,11 +142,6 @@ CATALOG(pg_constraint,2606,ConstraintRelationId)
         * If a check constraint, nodeToString representation of expression
         */
        pg_node_tree conbin;
-
-       /*
-        * If a check constraint, source-text representation of expression
-        */
-       text            consrc;
 #endif
 } FormData_pg_constraint;
 
@@ -224,7 +219,6 @@ extern Oid CreateConstraintEntry(const char *constraintName,
                                          const Oid *exclOp,
                                          Node *conExpr,
                                          const char *conBin,
-                                         const char *conSrc,
                                          bool conIsLocal,
                                          int conInhCount,
                                          bool conNoInherit,
index 4f29d9f891cfe5e0be3be561bc19f538436a7213..d768e5df2c063270e1b3865190292aff22612659 100644 (file)
@@ -797,7 +797,7 @@ drop table p1;
 CREATE TABLE ac (aa TEXT);
 alter table ac add constraint ac_check check (aa is not null);
 CREATE TABLE bc (bb TEXT) INHERITS (ac);
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname | conname  | contype | conislocal | coninhcount |      consrc      
 ---------+----------+---------+------------+-------------+------------------
  ac      | ac_check | c       | t          |           0 | (aa IS NOT NULL)
@@ -813,14 +813,14 @@ DETAIL:  Failing row contains (null, null).
 alter table bc drop constraint ac_check;  -- fail, disallowed
 ERROR:  cannot drop inherited constraint "ac_check" of relation "bc"
 alter table ac drop constraint ac_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname | conname | contype | conislocal | coninhcount | consrc 
 ---------+---------+---------+------------+-------------+--------
 (0 rows)
 
 -- try the unnamed-constraint case
 alter table ac add check (aa is not null);
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname |   conname   | contype | conislocal | coninhcount |      consrc      
 ---------+-------------+---------+------------+-------------+------------------
  ac      | ac_aa_check | c       | t          |           0 | (aa IS NOT NULL)
@@ -836,14 +836,14 @@ DETAIL:  Failing row contains (null, null).
 alter table bc drop constraint ac_aa_check;  -- fail, disallowed
 ERROR:  cannot drop inherited constraint "ac_aa_check" of relation "bc"
 alter table ac drop constraint ac_aa_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname | conname | contype | conislocal | coninhcount | consrc 
 ---------+---------+---------+------------+-------------+--------
 (0 rows)
 
 alter table ac add constraint ac_check check (aa is not null);
 alter table bc no inherit ac;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname | conname  | contype | conislocal | coninhcount |      consrc      
 ---------+----------+---------+------------+-------------+------------------
  ac      | ac_check | c       | t          |           0 | (aa IS NOT NULL)
@@ -851,14 +851,14 @@ select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg
 (2 rows)
 
 alter table bc drop constraint ac_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname | conname  | contype | conislocal | coninhcount |      consrc      
 ---------+----------+---------+------------+-------------+------------------
  ac      | ac_check | c       | t          |           0 | (aa IS NOT NULL)
 (1 row)
 
 alter table ac drop constraint ac_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname | conname | contype | conislocal | coninhcount | consrc 
 ---------+---------+---------+------------+-------------+--------
 (0 rows)
@@ -869,7 +869,7 @@ create table ac (a int constraint check_a check (a <> 0));
 create table bc (a int constraint check_a check (a <> 0), b int constraint check_b check (b <> 0)) inherits (ac);
 NOTICE:  merging column "a" with inherited definition
 NOTICE:  merging constraint "check_a" with inherited definition
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
  relname | conname | contype | conislocal | coninhcount |  consrc  
 ---------+---------+---------+------------+-------------+----------
  ac      | check_a | c       | t          |           0 | (a <> 0)
@@ -882,7 +882,7 @@ drop table ac;
 create table ac (a int constraint check_a check (a <> 0));
 create table bc (b int constraint check_b check (b <> 0));
 create table cc (c int constraint check_c check (c <> 0)) inherits (ac, bc);
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
  relname | conname | contype | conislocal | coninhcount |  consrc  
 ---------+---------+---------+------------+-------------+----------
  ac      | check_a | c       | t          |           0 | (a <> 0)
@@ -893,7 +893,7 @@ select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg
 (5 rows)
 
 alter table cc no inherit bc;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
  relname | conname | contype | conislocal | coninhcount |  consrc  
 ---------+---------+---------+------------+-------------+----------
  ac      | check_a | c       | t          |           0 | (a <> 0)
index a6e541d4dad2a2cde2a406cfec8f2adf6b63849d..e8b6448f3c8ec7c29a8bdb5df44ad476932b7fe5 100644 (file)
@@ -257,40 +257,40 @@ drop table p1;
 CREATE TABLE ac (aa TEXT);
 alter table ac add constraint ac_check check (aa is not null);
 CREATE TABLE bc (bb TEXT) INHERITS (ac);
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 
 insert into ac (aa) values (NULL);
 insert into bc (aa) values (NULL);
 
 alter table bc drop constraint ac_check;  -- fail, disallowed
 alter table ac drop constraint ac_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 
 -- try the unnamed-constraint case
 alter table ac add check (aa is not null);
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 
 insert into ac (aa) values (NULL);
 insert into bc (aa) values (NULL);
 
 alter table bc drop constraint ac_aa_check;  -- fail, disallowed
 alter table ac drop constraint ac_aa_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 
 alter table ac add constraint ac_check check (aa is not null);
 alter table bc no inherit ac;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 alter table bc drop constraint ac_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 alter table ac drop constraint ac_check;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 
 drop table bc;
 drop table ac;
 
 create table ac (a int constraint check_a check (a <> 0));
 create table bc (a int constraint check_a check (a <> 0), b int constraint check_b check (b <> 0)) inherits (ac);
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc') order by 1,2;
 
 drop table bc;
 drop table ac;
@@ -298,10 +298,10 @@ drop table ac;
 create table ac (a int constraint check_a check (a <> 0));
 create table bc (b int constraint check_b check (b <> 0));
 create table cc (c int constraint check_c check (c <> 0)) inherits (ac, bc);
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
 
 alter table cc no inherit bc;
-select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pgc.consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
+select pc.relname, pgc.conname, pgc.contype, pgc.conislocal, pgc.coninhcount, pg_get_expr(pgc.conbin, pc.oid) as consrc from pg_class as pc inner join pg_constraint as pgc on (pgc.conrelid = pc.oid) where pc.relname in ('ac', 'bc', 'cc') order by 1,2;
 
 drop table cc;
 drop table bc;