Thread: Get comment

Get comment

From
"Douglas"
Date:
I have coments in some tables and columns, how to catch the coment on select ?
 
it forgives my English, I am learning...
 
Tanks
 
Douglas

Re: Get comment

From
Michael Fuhr
Date:
On Fri, Dec 10, 2004 at 08:16:06AM -0300, Douglas wrote:

> I have coments in some tables and columns, how to catch the coment on select ?

Adding a plus sign (+) to psql's \d commands usually shows comments
(\d+, \df+, etc.).  If you want to select comments in your own
queries, you can find out how psql does it by running "psql -E" and
executing \d+.  The -E option tells psql to display the queries it
executes for internal commands; from the output you can see how
psql gets the comments.

See also the "Functions and Operators" chapter of the documentation.
In 7.x see the "Miscellaneous Functions" section; in 8.0 see "System
Information Functions."

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: Get comment

From
Michael Fuhr
Date:
On Mon, Dec 13, 2004 at 08:56:51AM -0300, Douglas wrote:

> Please giveme an example! My table:
>
> CREATE TABLE foo
> (
>   id int2 NOT NULL,
>   name varchar(30) NOT NULL,
>   CONSTRAINT pk_foo PRIMARY KEY (id)
> )
> WITH OIDS;
> ALTER TABLE foo OWNER TO postgres;
> COMMENT ON TABLE is IS 'Generic table';

The above line has a mistake -- the table name should be "foo"
instead of "is".

> COMMENT ON COLUMN foo.id IS 'Identification of registry';
> COMMENT ON COLUMN foo.name IS 'Name of registry';
>
> Now I have in my application two selects ('select table_name from pg_tables'

If you're selecting from pg_tables then the field is tablename, not
table_name.  It is table_name, however, in information_schema.tables.

> / 'select column_name from information_schema.columns') for get the names of
> columns and tables, but I hope get the coments....

As I suggested, run "psql -E" and look at the output of "\d+" and
"\d+ foo" -- that'll show how psql queries for tables, columns, and
comments.  Here are some simple examples:

SELECT n.nspname, c.relname,
       obj_description(c.oid, 'pg_class') AS comment
FROM pg_class AS c JOIN pg_namespace AS n ON n.oid = c.relnamespace
WHERE c.relkind = 'r'
ORDER BY n.nspname, c.relname;

SELECT attname, col_description(attrelid, attnum) AS comment
FROM pg_attribute
WHERE attrelid = 'foo'::regclass AND attnum > 0 AND NOT attisdropped
ORDER BY attnum;

Study the "System Catalogs" chapter in the documentation to learn
more about querying the tables that describe your database objects.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/