Thread: Insert a description while creating a table

Insert a description while creating a table

From
luiz@klais.com.br
Date:
Hi,

I want to insert descriptions at the columns of my tables but without 
using the command COMMENT ON. I want to do it together with the table 
creation. Is that possible?

I wanna do something like this:

create table test (id serial 'Descripitions about ID',name varchar(50) 'Descriptions about NAME'
);

Thanks in advance


Luiz.

-- 
*************************
*  Luiz Fernando Pinto  *
*          -*-          *
* Klais Desenvolvimento *
*   luiz@klais.com.br   *
*************************



Re: Insert a description while creating a table

From
Rod Taylor
Date:
On Wed, 2003-08-13 at 07:56, luiz@klais.com.br wrote:
> Hi,
>
> I want to insert descriptions at the columns of my tables but without
> using the command COMMENT ON. I want to do it together with the table
> creation. Is that possible?
>
> I wanna do something like this:
>
> create table test (
>     id serial 'Descripitions about ID',
>     name varchar(50) 'Descriptions about NAME'
> );

Probably not going to happen in the backend.

However, you should be able to accomplish that with a little bit of Perl
to pre-process the SQL.

Re: Insert a description while creating a table

From
BenLaKnet
Date:
create table test (<br />      id serial ,<br />      name varchar(50) <br />  );<br /><br />  <br />  COMMENT ON
TABLE"test"<br /> IS 'MySQL table<br /> id_training_form ... id_form_unique';<br /><br /> comment on COLUMN
"test"."id"<br/> is 'greigjreoigjreigjore iojrjiogre' ;<br /><br /><br /> Doc postgresql comment<br /><br /><br /> Rod
Taylorwrote:<br /><blockquote cite="mid1060776408.86938.12.camel@jester" type="cite"><pre wrap="">On Wed, 2003-08-13 at
07:56,<a class="moz-txt-link-abbreviated" href="mailto:luiz@klais.com.br">luiz@klais.com.br</a> wrote:
</pre><blockquotetype="cite"><pre wrap="">Hi,
 

I want to insert descriptions at the columns of my tables but without 
using the command COMMENT ON. I want to do it together with the table 
creation. Is that possible?

I wanna do something like this:

create table test (id serial 'Descripitions about ID',name varchar(50) 'Descriptions about NAME'
);   </pre></blockquote><pre wrap="">
Probably not going to happen in the backend.

However, you should be able to accomplish that with a little bit of Perl
to pre-process the SQL. </pre></blockquote>

Re: Insert a description while creating a table

From
Christoph Haller
Date:
> > I want to insert descriptions at the columns of my tables but
without
> > using the command COMMENT ON. I want to do it together with the
table
> > creation. Is that possible?
> >
> > I wanna do something like this:
> >
> > create table test (
> >     id serial 'Descripitions about ID',
> >     name varchar(50) 'Descriptions about NAME'
> > );
>
> Probably not going to happen in the backend.
>
> However, you should be able to accomplish that with a little bit of
Perl
> to pre-process the SQL.
>
That perl script comes to my mind too.
The reason why Luiz doesn't like it, may be because you can't
see these descriptions within psql using \dd test

I did
the create table, then
COMMENT ON COLUMN test.id is 'Descripitions about ID';
COMMENT ON COLUMN test.name is 'Descriptions about NAME';
\dd test shows
        Object descriptionsSchema | Name | Object | Description
--------+------+--------+-------------
(0 rows)

This is odd. OK, I know the doc says
\dd [ pattern ]
   Shows the descriptions of objects matching the pattern, or of all
visible objects if no argument is given. But in either case,   only objects that have a description are listed.
("Object"covers
 
aggregates, functions, operators, types, relations (tables, views,   indexes, sequences, large objects), rules, and
triggers.)For
 
example:

Nothing about columns.
But what is the purpose of comments on columns if you can only get them
via
select * from pg_description whereobjoid = (select typrelid from pg_type where typname='test')order by objsubid ;objoid
|classoid | objsubid |       description
 
--------+----------+----------+------------------------- 17326 |     1259 |        1 | Descripitions about ID 17326 |
 1259 |        2 | Descriptions about NAME
 
(2 rows)

which you'll have to find out on your own.

Regards, Christoph




Re: Insert a description while creating a table

From
luiz@klais.com.br
Date:
Hi Christoph,

I'm thinking that the best solution is create a script in perl or 
python that executes de COMMENT command to me. My initial idea would be 
comment my columns in a standard way and then run the script.

My comment that will turn into description will start with 
"/*$" instead of the simple "/*", for instance.

Regards,

Luiz.

On Wed, 13 Aug 2003, Christoph Haller wrote:

> > > I want to insert descriptions at the columns of my tables but
> without
> > > using the command COMMENT ON. I want to do it together with the
> table
> > > creation. Is that possible?
> > >
> > > I wanna do something like this:
> > >
> > > create table test (
> > >     id serial 'Descripitions about ID',
> > >     name varchar(50) 'Descriptions about NAME'
> > > );
> >
> > Probably not going to happen in the backend.
> >
> > However, you should be able to accomplish that with a little bit of
> Perl
> > to pre-process the SQL.
> >
> That perl script comes to my mind too.
> The reason why Luiz doesn't like it, may be because you can't
> see these descriptions within psql using \dd test
> 
> I did
> the create table, then
> COMMENT ON COLUMN test.id is 'Descripitions about ID';
> COMMENT ON COLUMN test.name is 'Descriptions about NAME';
> \dd test shows
> 
>          Object descriptions
>  Schema | Name | Object | Description
> --------+------+--------+-------------
> (0 rows)
> 
> This is odd. OK, I know the doc says
> \dd [ pattern ]
> 
>     Shows the descriptions of objects matching the pattern, or of all
> visible objects if no argument is given. But in either case,
>     only objects that have a description are listed. ("Object" covers
> aggregates, functions, operators, types, relations (tables, views,
>     indexes, sequences, large objects), rules, and triggers.) For
> example:
> 
> Nothing about columns.
> But what is the purpose of comments on columns if you can only get them
> via
> select * from pg_description where
>  objoid = (select typrelid from pg_type where typname='test')
>  order by objsubid ;
>  objoid | classoid | objsubid |       description
> --------+----------+----------+-------------------------
>   17326 |     1259 |        1 | Descripitions about ID
>   17326 |     1259 |        2 | Descriptions about NAME
> (2 rows)
> 
> which you'll have to find out on your own.
> 
> Regards, Christoph
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
> 
> 

-- 
*************************
*  Luiz Fernando Pinto  *
*          -*-          *
* Klais Desenvolvimento *
*   luiz@klais.com.br   *
*************************



Re: Insert a description while creating a table

From
Reinoud van Leeuwen
Date:
On Wed, Aug 13, 2003 at 02:54:59PM +0200, Christoph Haller wrote:
> \dd test shows
> 
>          Object descriptions
>  Schema | Name | Object | Description
> --------+------+--------+-------------
> (0 rows)
> 
> This is odd. OK, I know the doc says
> \dd [ pattern ]
> 
>     Shows the descriptions of objects matching the pattern, or of all
> visible objects if no argument is given. But in either case,
>     only objects that have a description are listed. ("Object" covers
> aggregates, functions, operators, types, relations (tables, views,
>     indexes, sequences, large objects), rules, and triggers.) For
> example:
> 
> Nothing about columns.
> But what is the purpose of comments on columns if you can only get them
> via
> select * from pg_description where

Have you tried \d+ tablename? (sorry for the long lines ";-)

drbob=# \dd object                           Object descriptionsSchema |  Name  | Object |
Description
--------+--------+--------+-------------------------------------------------public | object | table  | The table that
holdsall instances of objects.
 
(1 row)

drbob=# \d+ object
  
 
Table "public.object"     Column      |            Type             |                  
Modifiers                   |                                                               
Description

------------------+-----------------------------+----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------id
             | integer                     | not null default 
 
nextval('shared_ids'::text) | (global) unique ID for this tableobject_def_id    | integer                     | not
null                                    
 
| foreign key to object_def.idname             | character varying(60)       |
   
 
| natural name of this objectsuperobject_id   | integer                     |
  
 
| foreign key to object.id. This field is only filled in when the this 
object is a subobject of another object (EG a port in a router)subobject_def_id | integer                     |
                                    
 
| foreign key to subobject_def.id. This field is only filled in when this 
object is a subobject of another object (EG a port in a router)has_subobject    | boolean                     | not
nulldefault 'FALSE'                     
 
| boolean indicating that this object instance has subobjects (EG router 
that has ports)date_added       | timestamp without time zone |                                              
| date this record was added to the databaseuser_added       | character varying(20)       |
                 
 
| username that added this record to the databasedate_changed     | timestamp without time zone |
                      
 
| date this record was last changeduser_changed     | character varying(20)       |
        
 
| username that made the last change to this record
Indexes: pk_object primary key btree (id),        object_pk unique btree (id),        object_object_def_fk btree
(object_def_id),       object_object_fk btree (superobject_id),        object_subobject_def_fk btree
(subobject_def_id)
Triggers: tdb_object,         tiua_object,         tiub_object
-- 
__________________________________________________
"Nothing is as subjective as reality"
Reinoud van Leeuwen    reinoud.v@n.leeuwen.net
http://www.xs4all.nl/~reinoud
__________________________________________________


Re: Insert a description while creating a table

From
Christoph Haller
Date:
> On Wed, Aug 13, 2003 at 02:54:59PM +0200, Christoph Haller wrote:
> > \dd test shows
> >
> >          Object descriptions
> >  Schema | Name | Object | Description
> > --------+------+--------+-------------
> > (0 rows)
> >
> > This is odd. OK, I know the doc says
> > \dd [ pattern ]
> >
> >     Shows the descriptions of objects matching the pattern, or of
all
> > visible objects if no argument is given. But in either case,
> >     only objects that have a description are listed. ("Object"
covers
> > aggregates, functions, operators, types, relations (tables, views,
> >     indexes, sequences, large objects), rules, and triggers.) For
> > example:
> >
> > Nothing about columns.
> > But what is the purpose of comments on columns if you can only get
them
> > via
> > select * from pg_description where
>
> Have you tried \d+ tablename? (sorry for the long lines ";-)
>
I apologize for complaining, missed that completely.
Thanks to Reinoud for pointing this out.

Regards, Christoph






Re: Insert a description while creating a table

From
Benoît Bournon
Date:
<pre wrap="">comment on table "test"
is 'fziofeiozfiezojfezjfeziojfeziojf ezfjioezifj ezio' ;


</pre><br /><br /> Rod Taylor wrote:<br /><blockquote cite="mid1060776408.86938.12.camel@jester" type="cite"><pre
wrap="">OnWed, 2003-08-13 at 07:56, <a class="moz-txt-link-abbreviated"
href="mailto:luiz@klais.com.br">luiz@klais.com.br</a>wrote: </pre><blockquote type="cite"><pre wrap="">Hi,
 

I want to insert descriptions at the columns of my tables but without 
using the command COMMENT ON. I want to do it together with the table 
creation. Is that possible?

I wanna do something like this:

create table test (id serial 'Descripitions about ID',name varchar(50) 'Descriptions about NAME'
);   </pre></blockquote><pre wrap="">
Probably not going to happen in the backend.

However, you should be able to accomplish that with a little bit of Perl
to pre-process the SQL. </pre></blockquote>