Re: comment doesn't accept expressions returning text - Mailing list pgsql-hackers
From | Andrew Dunstan |
---|---|
Subject | Re: comment doesn't accept expressions returning text |
Date | |
Msg-id | 2560.69.245.167.107.1132801366.squirrel@www.dunslane.net Whole thread Raw |
In response to | comment doesn't accept expressions returning text (Michael Glaesemann <grzm@myrealbox.com>) |
Responses |
Re: comment doesn't accept expressions returning text
|
List | pgsql-hackers |
To change this would involve changing the grammar. You could possibly write a stored proc that manipulated pg_description directly. cheers andrew Michael Glaesemann said: > I've been trying to be better at documentation in general and have > been trying to take advantage of PostgreSQL's COMMENT ON > functionality to provide a little more information in the DDL itself. > I usually write my DDL in a text file and load it into the database > using psql. To make it (a little) easier to write comments, I'd like > to write the comment text as it's own paragraph so I don't have to > worry about accidently deleting the opening and closing quotes. > > For example: > > create table foo (foo_id integer primary key); > comment on table foo is $$ > This is a comment for table foo. > $$; > > Of course, this comment includes a new line at the beginning and end > of the comment. > > test=# select relname, description > test-# from pg_description > test-# join pg_class on (pg_class.oid = pg_description.objoid) > test-# where relname = 'foo'; > relname | description > ---------+------------- > foo | > This is a comment for table foo. > > (1 row) > > It would be nice to be able to strip those out using TRIM (or some > other function). However, this doesn't appear to work, as COMMENT ON > throws a syntax error as soon as it runs into anything that isn't a > pure text string. Examples below. > > Would there be any objection to allowing any text-returning > expression in this case? If not, what would be involved in allowing > this? I'm interested in contributing the change if it's something > that's considered worthwhile. > > Michael Glaesemann > grzm myrealbox com > > > test=# select version(); > > version > ------------------------------------------------------------------------ > ---------------------------------------------------------------------- > PostgreSQL 8.1.0 on powerpc-apple-darwin8.3.0, compiled by GCC > powerpc-apple-darwin8-gcc-4.0.0 (GCC) 4.0.0 (Apple Computer, Inc. > build 5026) > (1 row) > > test=# create table foo (foo_id integer primary key); > NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index > "foo_pkey" for table "foo" > CREATE TABLE > test=# comment on table foo is trim('*', '***This is just an > example***'); > ERROR: syntax error at or near "trim" at character 25 > LINE 1: comment on table foo is trim('*', '***This is just an exampl... > ^ > test=# comment on table foo is (trim('*', '***This is just an > example***')); > ERROR: syntax error at or near "(" at character 25 > LINE 1: comment on table foo is (trim('*', '***This is just an examp... > ^ > test=# comment on table foo is 'This is just' || ' an example'; > ERROR: syntax error at or near "||" at character 40 > LINE 1: comment on table foo is 'This is just' || ' an example'; > ^ > test=# comment on table foo is ('This is just' || ' an example'); > ERROR: syntax error at or near "(" at character 25 > LINE 1: comment on table foo is ('This is just' || ' an example'); > > > ---------------------------(end of > broadcast)--------------------------- TIP 3: Have you checked our > extensive FAQ? > > http://www.postgresql.org/docs/faq
pgsql-hackers by date: