From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au> |
Cc: | Patches <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: pretty print for check constraints broken |
Date: | 2003-09-29 18:55:59 |
Message-ID: | 200309291855.h8TItxm03739@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Patch applied. Thanks.
---------------------------------------------------------------------------
Christopher Kings-Lynne wrote:
> Hi,
>
> The brackets aren't put on the CHECK constraints properly.
>
> Before patch:
>
> test=# select pg_get_constraintdef(oid) from pg_constraint;
> pg_get_constraintdef
> -------------------------------------------------------------------------------------------------
> CHECK (VALUE >= 0)
> CHECK ((((a)::text = 'asdf'::text) OR ((a)::text = 'fdsa'::text)) OR
> ((a)::text = 'dfd'::text))
> PRIMARY KEY (b)
> FOREIGN KEY (a) REFERENCES test2(b)
> UNIQUE (b)
> (5 rows)
>
> test=# select pg_get_constraintdef(oid, true) from pg_constraint;
> pg_get_constraintdef
> -----------------------------------------------------------------------------------
> CHECK VALUE >= 0
> CHECK a::text = 'asdf'::text OR a::text = 'fdsa'::text OR a::text =
> 'dfd'::text
> PRIMARY KEY (b)
> FOREIGN KEY (a) REFERENCES test2(b)
> UNIQUE (b)
> (5 rows)
>
> After patch:
>
> test=# select pg_get_constraintdef(oid) from pg_constraint;
> pg_get_constraintdef
> -------------------------------------------------------------------------------------------------
> CHECK (VALUE >= 0)
> CHECK ((((a)::text = 'asdf'::text) OR ((a)::text = 'fdsa'::text)) OR
> ((a)::text = 'dfd'::text))
> PRIMARY KEY (b)
> FOREIGN KEY (a) REFERENCES test2(b)
> UNIQUE (b)
> (5 rows)
>
> test=# select pg_get_constraintdef(oid, true) from pg_constraint;
> pg_get_constraintdef
> -----------------------------------------------------------------------------------
> CHECK (VALUE >= 0)
> CHECK (a::text = 'asdf'::text OR a::text = 'fdsa'::text OR a::text =
> 'dfd'::text)
> PRIMARY KEY (b)
> FOREIGN KEY (a) REFERENCES test2(b)
> UNIQUE (b)
> (5 rows)
>
> It's important that those brackets are there to (a) match all other
> constraints and (b) so that people can just copy and paste them and it
> will work as SQL.
>
> Chris
>
> Index: src/backend/utils/adt/ruleutils.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/backend/utils/adt/ruleutils.c,v
> retrieving revision 1.154
> diff -c -r1.154 ruleutils.c
> *** src/backend/utils/adt/ruleutils.c 15 Sep 2003 20:03:37 -0000 1.154
> --- src/backend/utils/adt/ruleutils.c 26 Sep 2003 07:45:02 -0000
> ***************
> *** 1056,1061 ****
> --- 1056,1065 ----
> */
> appendStringInfo(&buf, "CHECK ");
>
> + /* If we're pretty-printing we need to add brackets */
> + if (prettyFlags != 0)
> + appendStringInfo(&buf, "(");
> +
> /* Fetch constraint source */
> val = heap_getattr(tup, Anum_pg_constraint_conbin,
> RelationGetDescr(conDesc), &isnull);
> ***************
> *** 1093,1098 ****
> --- 1097,1106 ----
>
> /* Append the constraint source */
> appendStringInfoString(&buf, consrc);
> +
> + /* If we're pretty-printing we need to add brackets */
> + if (prettyFlags != 0)
> + appendStringInfo(&buf, ")");
>
> break;
> }
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
From | Date | Subject | |
---|---|---|---|
Next Message | Neil Conway | 2003-10-01 00:00:22 | introduce "default_use_oids" |
Previous Message | Bruce Momjian | 2003-09-29 18:54:52 | Re: tsearch2 memory alloc checks |