Re: comment doesn't accept expressions returning text

From: "Andrew Dunstan" <andrew(at)dunslane(dot)net>
To: <grzm(at)myrealbox(dot)com>
Cc: <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: comment doesn't accept expressions returning text
Date: 2005-11-24 03:02:46
Message-ID: 2560.69.245.167.107.1132801366.squirrel@www.dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Glaesemann 2005-11-24 03:13:34 Re: comment doesn't accept expressions returning text
Previous Message Michael Glaesemann 2005-11-24 03:01:07 Re: comment doesn't accept expressions returning text