pretty print for check constraints broken
От | Christopher Kings-Lynne |
---|---|
Тема | pretty print for check constraints broken |
Дата | |
Msg-id | 3F73EF39.7090400@familyhealth.com.au обсуждение исходный текст |
Ответы |
Re: pretty print for check constraints broken
Re: pretty print for check constraints broken |
Список | pgsql-patches |
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; }
В списке pgsql-patches по дате отправления:
Следующее
От: Bruce MomjianДата:
Сообщение: Re: ISO 8601 'Time Intervals' of the 'format with time-unit