constraint defaults still print 
Author Message
 constraint defaults still print

--ELM1044285402-20067-1_
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII

OK, NO ACTION (the default) no longer prints for foreign key constraints:

        regression=> \d clstr_tst
                                  Table "public.clstr_tst"
         Column |  Type   |                        Modifiers
        --------+---------+----------------------------------------------------------
         a      | integer | not null default nextval('public.clstr_tst_a_seq'::text)
         b      | integer |
         c      | text    |
         d      | text    |
        Indexes: clstr_tst_pkey primary key btree (a),
                 clstr_tst_b btree (b),
                 clstr_tst_b_c btree (b, c),
                 clstr_tst_c btree (c),
                 clstr_tst_c_b btree (c, b)
        Foreign Key constraints: clstr_tst_con FOREIGN KEY (b) REFERENCES clstr_tst_s(rf_a)

---------------------------------------------------------------------------

Quote:

> I vote for not showing 'NO ACTION', so long as it's the SQL standard
> default...

> Chris


> > Remember how we made DEFERRABLE/DEFERRED not print if the constraint was
> > the default.  Shouldn't we do the same for MATCH and ON UPDATE/ON DELETE
> > sections of the constraint in pg_get_constraintdef()?

> > Doing \d I see:

> >       test=> \d sales
> >                 Table "public.sales"
> >             Column       |  Type   | Modifiers
> >       -------------------+---------+-----------
> >        product_id        | integer | not null
> >        store_id          | integer | not null
> >        quantity_sold     | integer | not null
> >        date_time_of_sale | date    | not null
> >       Foreign Key constraints: $1 FOREIGN KEY (product_id) REFERENCES
> >       products(product_id) ON UPDATE NO ACTION ON DELETE NO ACTION,
> >                                $2 FOREIGN KEY (store_id) REFERENCES
> >       stores(store_id) ON UPDATE NO ACTION ON DELETE NO ACTION

> > If NO ACTION is the default, is there a need to print them?  This would
> > also shorten pg_dump output.

> > --
> >   Bruce Momjian                        |   http://www.***.com/

> >   +  If your life is a hard drive,     |  13 Roberts Road
> >   +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command


--
  Bruce Momjian                        |   http://www.***.com/

  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

--ELM1044285402-20067-1_
Content-Transfer-Encoding: 7bit
Content-Type: text/plain
Content-Disposition: inline; filename="/bjm/diff"

Index: src/backend/utils/adt/ruleutils.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/utils/adt/ruleutils.c,v
retrieving revision 1.132
diff -c -c -r1.132 ruleutils.c
*** src/backend/utils/adt/ruleutils.c   10 Jan 2003 21:08:15 -0000      1.132
--- src/backend/utils/adt/ruleutils.c   3 Feb 2003 14:57:33 -0000
***************
*** 642,648 ****
                                switch (conForm->confupdtype)
                                {
                                        case FKCONSTR_ACTION_NOACTION:
!                                               string = "NO ACTION";
                                                break;
                                        case FKCONSTR_ACTION_RESTRICT:
                                                string = "RESTRICT";
--- 642,648 ----
                                switch (conForm->confupdtype)
                                {
                                        case FKCONSTR_ACTION_NOACTION:
!                                               string = "";
                                                break;
                                        case FKCONSTR_ACTION_RESTRICT:
                                                string = "RESTRICT";
***************
*** 662,673 ****
                                                string = "";  /* keep compiler quiet */
                                                break;
                                }
!                               appendStringInfo(&buf, " ON UPDATE %s", string);

                                switch (conForm->confdeltype)
                                {
                                        case FKCONSTR_ACTION_NOACTION:
!                                               string = "NO ACTION";
                                                break;
                                        case FKCONSTR_ACTION_RESTRICT:
                                                string = "RESTRICT";
--- 662,674 ----
                                                string = "";  /* keep compiler quiet */
                                                break;
                                }
!                               if (strlen(string) != 0)
!                                       appendStringInfo(&buf, " ON UPDATE %s", string);

                                switch (conForm->confdeltype)
                                {
                                        case FKCONSTR_ACTION_NOACTION:
!                                               string = "";
                                                break;
                                        case FKCONSTR_ACTION_RESTRICT:
                                                string = "RESTRICT";
***************
*** 687,693 ****
                                                string = "";  /* keep compiler quiet */
                                                break;
                                }
!                               appendStringInfo(&buf, " ON DELETE %s", string);

                                if (conForm->condeferrable)
                                        appendStringInfo(&buf, " DEFERRABLE");
--- 688,695 ----
                                                string = "";  /* keep compiler quiet */
                                                break;
                                }
!                               if (strlen(string) != 0)
!                                       appendStringInfo(&buf, " ON DELETE %s", string);

                                if (conForm->condeferrable)
                                        appendStringInfo(&buf, " DEFERRABLE");

--ELM1044285402-20067-1_
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate

message can get through to the mailing list cleanly

--ELM1044285402-20067-1_--



Fri, 22 Jul 2005 23:19:49 GMT
 
 [ 1 post ] 

 Relevant Pages 

1. constraint defaults still print

2. SQl-default and default constraints

3. QT Stills

4. default constraint

5. Dropping a column with a default constraint

6. drop columns with default constraints

7. Replace default constraint with a different one?

8. Dropping table having default constraint

9. Modify a default constraint on a field

10. Deadlocks on Default Constraints?

11. dts ignoring my default constraints

12. DEFAULT CONSTRAINT


 
Powered by phpBB® Forum Software