----------  Forwarded message ----------
Date: Fri, 19 Oct 2001 08:22:46 -0600
From: David Eduardo Gomez Noguera <davidgn@servidor.unam.mx>
To: "Ron de Jong" <Ron.Antispam@news.tht.net>
Cc: davidgn@servidor.unam.mx
Subject: Re: [HACKERS] Is there no  "DESCRIBE <TABLE>;" on PGSQL?      help!!!

on psql, do \?  there are a lot of commands that let you do it:

\l   (this list databases)
dabicho=# \l
         List of databases
  Database   |  Owner   | Encoding  
-------------+----------+-----------
 agenda      | dabicho  | SQL_ASCII
 cele        | dabicho  | SQL_ASCII
 dabicho     | dabicho  | SQL_ASCII
 diccionario | dabicho  | SQL_ASCII
 imagenes    | dabicho  | SQL_ASCII
 libros      | dabicho  | SQL_ASCII
 mp3         | dabicho  | SQL_ASCII
 postgres    | postgres | SQL_ASCII
 template0   | postgres | SQL_ASCII
 template1   | postgres | SQL_ASCII
(10 rows)

mp3=# \d    (this list tables on the current db)
          List of relations
      Name      |   Type   |  Owner  
----------------+----------+---------
 album          | table    | dabicho
 album_id_seq   | sequence | dabicho
 artista        | table    | dabicho
 artista_id_seq | sequence | dabicho
 dirpath        | table    | dabicho
 dirpath_id_seq | sequence | dabicho
 genero         | table    | dabicho
 genero_id_seq  | sequence | dabicho
 mp3            | table    | dabicho
 mp3_id_seq     | sequence | dabicho
 pga_forms      | table    | dabicho
 pga_layout     | table    | dabicho
 pga_queries    | table    | dabicho
 pga_reports    | table    | dabicho
 pga_schema     | table    | dabicho
 pga_scripts    | table    | dabicho


mp3=# \d mp3  (this describes a table (mp3)
                                    Table "mp3"
   Attribute   |       Type        |                    Modifier                    
---------------+-------------------+------------------------------------------------
 id            | integer           | not null default nextval('"mp3_id_seq"'::text)
 fk_dirpath_id | integer           | not null
 filename      | character varying | not null
 titulo        | text              | not null default 'unknown'
 fk_artista_id | integer           | not null default 1
 fk_album_id   | integer           | not null default 1
 comentario    | text              | not null default 'none'
 year          | integer           | default 2001
 genero        | smallint          | not null default 1
Indices: mp3_fk_dirpath_id_key,
         mp3_pkey

with \pset you can set output format.

mp3=# \pset expanded
Expanded display is on.
mp3=# \d mp3
Table "mp3"
-[ RECORD 1 ]---------------------------------------------
Attribute | id
Type      | integer
Modifier  | not null default nextval('"mp3_id_seq"'::text)
-[ RECORD 2 ]---------------------------------------------
Attribute | fk_dirpath_id
Type      | integer
Modifier  | not null
-[ RECORD 3 ]---------------------------------------------
....
there are many combinations
mp3=# \pset border 2
Border style is 2.
mp3=# \d mp3
                                     Table "mp3"
+---------------+-------------------+------------------------------------------------+
|   Attribute   |       Type        |                    Modifier                    |
+---------------+-------------------+------------------------------------------------+
| id            | integer           | not null default nextval('"mp3_id_seq"'::text) |
| fk_dirpath_id | integer           | not null                                       |
| filename      | character varying | not null                                       |
| titulo        | text              | not null default 'unknown'                     |
| fk_artista_id | integer           | not null default 1                             |
| fk_album_id   | integer           | not null default 1                             |
| comentario    | text              | not null default 'none'                        |
| year          | integer           | default 2001                                   |
| genero        | smallint          | not null default 1                             |
+---------------+-------------------+------------------------------------------------+
Indices: mp3_fk_dirpath_id_key,
         mp3_pkey

pretty much the same, and fairly human readable to me. (although not everything sorted in columns, i guess you could do querys to the system tables to get that, or use awk to get the bits you want =) )
I just this the postgres team has don an excelent work so far.

Reply.
> Any idea to get a human readable list with column descriptions like
> type,size,key,default,null.
> It would be nice if it would look simular to the mysql variant:
> 
> mysql> describe employee;
> +-----------+----------+------+-----+---------+----------------+
> | Field     | Type     | Null | Key | Default | Extra          |
> +-----------+----------+------+-----+---------+----------------+
> | Id        | int(11)  |      | PRI | NULL    | auto_increment |
> | FirstName | char(30) |      | MUL |         |                |
> | LastName  | char(30) |      |     |         |                |
> | Infix     | char(10) | YES  |     | NULL    |                |
> | Address1  | char(30) | YES  |     | NULL    |                |
> | PostCode  | char(10) | YES  |     | NULL    |                |
> | Town      | int(11)  | YES  |     | NULL    |                |
> +-----------+----------+------+-----+---------+----------------+
> 
> Cheers, Ron.
> 
> 
> 



-- 
ICQ: 15605359 Bicho
                                  =^..^=
First, they ignore you. Then they laugh at you. Then they fight you. Then you win. Mahatma Gandhi.
........Por que no pensaran los hombres como los animales? Pink Panther........
-------------------------------気検体の一致------------------------------------
暑さ寒さも彼岸まで。
アン アン アン とっても大好き

> on psql, do \?  there are a lot of commands that let you do it:
> 
> \l   (this list databases)
> dabicho=# \l
>          List of databases
>   Database   |  Owner   | Encoding  
> -------------+----------+-----------
>  agenda      | dabicho  | SQL_ASCII
>  cele        | dabicho  | SQL_ASCII
>  dabicho     | dabicho  | SQL_ASCII
>  diccionario | dabicho  | SQL_ASCII
>  imagenes    | dabicho  | SQL_ASCII
>  libros      | dabicho  | SQL_ASCII
>  mp3         | dabicho  | SQL_ASCII
>  postgres    | postgres | SQL_ASCII
>  template0   | postgres | SQL_ASCII
>  template1   | postgres | SQL_ASCII
> (10 rows)
> 
> mp3=# \d    (this list tables on the current db)
>           List of relations
>       Name      |   Type   |  Owner  
> ----------------+----------+---------
>  album          | table    | dabicho
>  album_id_seq   | sequence | dabicho
>  artista        | table    | dabicho
>  artista_id_seq | sequence | dabicho
>  dirpath        | table    | dabicho
>  dirpath_id_seq | sequence | dabicho
>  genero         | table    | dabicho
>  genero_id_seq  | sequence | dabicho
>  mp3            | table    | dabicho
>  mp3_id_seq     | sequence | dabicho
>  pga_forms      | table    | dabicho
>  pga_layout     | table    | dabicho
>  pga_queries    | table    | dabicho
>  pga_reports    | table    | dabicho
>  pga_schema     | table    | dabicho
>  pga_scripts    | table    | dabicho
> 
> 
> mp3=# \d mp3  (this describes a table (mp3)
>                                     Table "mp3"
>    Attribute   |       Type        |                    Modifier                    
> ---------------+-------------------+------------------------------------------------
>  id            | integer           | not null default nextval('"mp3_id_seq"'::text)
>  fk_dirpath_id | integer           | not null
>  filename      | character varying | not null
>  titulo        | text              | not null default 'unknown'
>  fk_artista_id | integer           | not null default 1
>  fk_album_id   | integer           | not null default 1
>  comentario    | text              | not null default 'none'
>  year          | integer           | default 2001
>  genero        | smallint          | not null default 1
> Indices: mp3_fk_dirpath_id_key,
>          mp3_pkey
> 
> with \pset you can set output format.
> 
> mp3=# \pset expanded
> Expanded display is on.
> mp3=# \d mp3
> Table "mp3"
> -[ RECORD 1 ]---------------------------------------------
> Attribute | id
> Type      | integer
> Modifier  | not null default nextval('"mp3_id_seq"'::text)
> -[ RECORD 2 ]---------------------------------------------
> Attribute | fk_dirpath_id
> Type      | integer
> Modifier  | not null
> -[ RECORD 3 ]---------------------------------------------
> ....
> there are many combinations
> mp3=# \pset border 2
> Border style is 2.
> mp3=# \d mp3
>                                      Table "mp3"
> +---------------+-------------------+------------------------------------------------+
> |   Attribute   |       Type        |                    Modifier                    |
> +---------------+-------------------+------------------------------------------------+
> | id            | integer           | not null default nextval('"mp3_id_seq"'::text) |
> | fk_dirpath_id | integer           | not null                                       |
> | filename      | character varying | not null                                       |
> | titulo        | text              | not null default 'unknown'                     |
> | fk_artista_id | integer           | not null default 1                             |
> | fk_album_id   | integer           | not null default 1                             |
> | comentario    | text              | not null default 'none'                        |
> | year          | integer           | default 2001                                   |
> | genero        | smallint          | not null default 1                             |
> +---------------+-------------------+------------------------------------------------+
> Indices: mp3_fk_dirpath_id_key,
>          mp3_pkey
> 
> pretty much the same, and fairly human readable to me. (although not everything sorted in columns, i guess you could do querys to the system tables to get that, or use awk to get the bits you want =) )
> I just this the postgres team has don an excelent work so far.
> 
> Reply.
> > Any idea to get a human readable list with column descriptions like
> > type,size,key,default,null.
> > It would be nice if it would look simular to the mysql variant:
> > 
> > mysql> describe employee;
> > +-----------+----------+------+-----+---------+----------------+
> > | Field     | Type     | Null | Key | Default | Extra          |
> > +-----------+----------+------+-----+---------+----------------+
> > | Id        | int(11)  |      | PRI | NULL    | auto_increment |
> > | FirstName | char(30) |      | MUL |         |                |
> > | LastName  | char(30) |      |     |         |                |
> > | Infix     | char(10) | YES  |     | NULL    |                |
> > | Address1  | char(30) | YES  |     | NULL    |                |
> > | PostCode  | char(10) | YES  |     | NULL    |                |
> > | Town      | int(11)  | YES  |     | NULL    |                |
> > +-----------+----------+------+-----+---------+----------------+
> > 
> > Cheers, Ron.
> > 
> > 
> > 
> 
> 
> 
> -- 
> ICQ: 15605359 Bicho
>                                   =^..^=
> First, they ignore you. Then they laugh at you. Then they fight you. Then you win. Mahatma Gandhi.
> ........Por que no pensaran los hombres como los animales? Pink Panther........
> -------------------------------気検体の一致------------------------------------
> 暑さ寒さも彼岸まで。
> アン アン アン とっても大好き


-- 
ICQ: 15605359 Bicho
                                  =^..^=
First, they ignore you. Then they laugh at you. Then they fight you. Then you win. Mahatma Gandhi.
........Por que no pensaran los hombres como los animales? Pink Panther........
-------------------------------気検体の一致------------------------------------
暑さ寒さも彼岸まで。
アン アン アン とっても大好き


Fri, 19 Oct 2001 08:28:12 -0600
David Eduardo Gomez Noguera <davidgn@servidor.unam.mx>
Fw: Re: Is there no  "DESCRIBE <TABLE>;" on PGSQL?      help!!!
Sorry about that message. My mailer had a bad reply format.


-- 
ICQ: 15605359 Bicho
                                  =^..^=
First, they ignore you. Then they laugh at you. Then they fight you. Then you win. Mahatma Gandhi.
........Por que no pensaran los hombres como los animales? Pink Panther........
-------------------------------気検体の一致------------------------------------
暑さ寒さも彼岸まで。
アン アン アン とっても大好き


Fri, 19 Oct 2001 08:45:37 -0600
David Eduardo Gomez Noguera <davidgn@servidor.unam.mx>
Re: Fw: Re: Is there no  "DESCRIBE <TABLE>;" on PGSQL?      help!!!
If you like the psql client then have a look at a graphical "psql" CGI
program!!!
It's just one file twdba.cgi to put in your cgi-bin directory and your
browser does the rest.

http://home.planet.nl/~radejong (TWDBA Download button)

You see the \? tricks only work with that particular psql client and the
engine does not honor them from another client.

You'll love it!!!


"David Eduardo Gomez Noguera" <davidgn@servidor.unam.mx> wrote in message
news:20011019082812.2bf29485.davidgn@servidor.unam.mx...
> ----------  Forwarded message ----------
> Date: Fri, 19 Oct 2001 08:22:46 -0600
> From: David Eduardo Gomez Noguera <davidgn@servidor.unam.mx>
> To: "Ron de Jong" <Ron.Antispam@news.tht.net>
> Cc: davidgn@servidor.unam.mx
> Subject: Re: [HACKERS] Is there no  "DESCRIBE <TABLE>;" on PGSQL?
help!!!
>
> on psql, do \?  there are a lot of commands that let you do it:
>
> \l   (this list databases)
> dabicho=# \l
>          List of databases
>   Database   |  Owner   | Encoding
> -------------+----------+-----------
>  agenda      | dabicho  | SQL_ASCII
>  cele        | dabicho  | SQL_ASCII
>  dabicho     | dabicho  | SQL_ASCII
>  diccionario | dabicho  | SQL_ASCII
>  imagenes    | dabicho  | SQL_ASCII
>  libros      | dabicho  | SQL_ASCII
>  mp3         | dabicho  | SQL_ASCII
>  postgres    | postgres | SQL_ASCII
>  template0   | postgres | SQL_ASCII
>  template1   | postgres | SQL_ASCII
> (10 rows)
>
> mp3=# \d    (this list tables on the current db)
>           List of relations
>       Name      |   Type   |  Owner
> ----------------+----------+---------
>  album          | table    | dabicho
>  album_id_seq   | sequence | dabicho
>  artista        | table    | dabicho
>  artista_id_seq | sequence | dabicho
>  dirpath        | table    | dabicho
>  dirpath_id_seq | sequence | dabicho
>  genero         | table    | dabicho
>  genero_id_seq  | sequence | dabicho
>  mp3            | table    | dabicho
>  mp3_id_seq     | sequence | dabicho
>  pga_forms      | table    | dabicho
>  pga_layout     | table    | dabicho
>  pga_queries    | table    | dabicho
>  pga_reports    | table    | dabicho
>  pga_schema     | table    | dabicho
>  pga_scripts    | table    | dabicho
>
>
> mp3=# \d mp3  (this describes a table (mp3)
>                                     Table "mp3"
>    Attribute   |       Type        |                    Modifier
> ---------------+-------------------+--------------------------------------
----------
>  id            | integer           | not null default
nextval('"mp3_id_seq"'::text)
>  fk_dirpath_id | integer           | not null
>  filename      | character varying | not null
>  titulo        | text              | not null default 'unknown'
>  fk_artista_id | integer           | not null default 1
>  fk_album_id   | integer           | not null default 1
>  comentario    | text              | not null default 'none'
>  year          | integer           | default 2001
>  genero        | smallint          | not null default 1
> Indices: mp3_fk_dirpath_id_key,
>          mp3_pkey
>
> with \pset you can set output format.
>
> mp3=# \pset expanded
> Expanded display is on.
> mp3=# \d mp3
> Table "mp3"
> -[ RECORD 1 ]---------------------------------------------
> Attribute | id
> Type      | integer
> Modifier  | not null default nextval('"mp3_id_seq"'::text)
> -[ RECORD 2 ]---------------------------------------------
> Attribute | fk_dirpath_id
> Type      | integer
> Modifier  | not null
> -[ RECORD 3 ]---------------------------------------------
> ....
> there are many combinations
> mp3=# \pset border 2
> Border style is 2.
> mp3=# \d mp3
>                                      Table "mp3"
>
+---------------+-------------------+---------------------------------------
---------+
> |   Attribute   |       Type        |                    Modifier
|
>
+---------------+-------------------+---------------------------------------
---------+
> | id            | integer           | not null default
nextval('"mp3_id_seq"'::text) |
> | fk_dirpath_id | integer           | not null
|
> | filename      | character varying | not null
|
> | titulo        | text              | not null default 'unknown'
|
> | fk_artista_id | integer           | not null default 1
|
> | fk_album_id   | integer           | not null default 1
|
> | comentario    | text              | not null default 'none'
|
> | year          | integer           | default 2001
|
> | genero        | smallint          | not null default 1
|
>
+---------------+-------------------+---------------------------------------
---------+
> Indices: mp3_fk_dirpath_id_key,
>          mp3_pkey
>
> pretty much the same, and fairly human readable to me. (although not
everything sorted in columns, i guess you could do querys to the system
tables to get that, or use awk to get the bits you want =) )
> I just this the postgres team has don an excelent work so far.
>
> Reply.
> > Any idea to get a human readable list with column descriptions like
> > type,size,key,default,null.
> > It would be nice if it would look simular to the mysql variant:
> >
> > mysql> describe employee;
> > +-----------+----------+------+-----+---------+----------------+
> > | Field     | Type     | Null | Key | Default | Extra          |
> > +-----------+----------+------+-----+---------+----------------+
> > | Id        | int(11)  |      | PRI | NULL    | auto_increment |
> > | FirstName | char(30) |      | MUL |         |                |
> > | LastName  | char(30) |      |     |         |                |
> > | Infix     | char(10) | YES  |     | NULL    |                |
> > | Address1  | char(30) | YES  |     | NULL    |                |
> > | PostCode  | char(10) | YES  |     | NULL    |                |
> > | Town      | int(11)  | YES  |     | NULL    |                |
> > +-----------+----------+------+-----+---------+----------------+
> >
> > Cheers, Ron.
> >
> >
> >
>
>
>
> --
> ICQ: 15605359 Bicho
>                                   =^..^=
> First, they ignore you. Then they laugh at you. Then they fight you. Then
you win. Mahatma Gandhi.
> ........Por que no pensaran los hombres como los animales? Pink
Panther........
> -------------------------------$B5$8!BN$N0lCW(B-------------------------
-----------
> $B=k$54($5$bH`4_$^$G!#(B
> $B%"%s(B $B%"%s(B $B%"%s(B $B$H$C$F$bBg9%$-(B
>
> > on psql, do \?  there are a lot of commands that let you do it:
> >
> > \l   (this list databases)
> > dabicho=# \l
> >          List of databases
> >   Database   |  Owner   | Encoding
> > -------------+----------+-----------
> >  agenda      | dabicho  | SQL_ASCII
> >  cele        | dabicho  | SQL_ASCII
> >  dabicho     | dabicho  | SQL_ASCII
> >  diccionario | dabicho  | SQL_ASCII
> >  imagenes    | dabicho  | SQL_ASCII
> >  libros      | dabicho  | SQL_ASCII
> >  mp3         | dabicho  | SQL_ASCII
> >  postgres    | postgres | SQL_ASCII
> >  template0   | postgres | SQL_ASCII
> >  template1   | postgres | SQL_ASCII
> > (10 rows)
> >
> > mp3=# \d    (this list tables on the current db)
> >           List of relations
> >       Name      |   Type   |  Owner
> > ----------------+----------+---------
> >  album          | table    | dabicho
> >  album_id_seq   | sequence | dabicho
> >  artista        | table    | dabicho
> >  artista_id_seq | sequence | dabicho
> >  dirpath        | table    | dabicho
> >  dirpath_id_seq | sequence | dabicho
> >  genero         | table    | dabicho
> >  genero_id_seq  | sequence | dabicho
> >  mp3            | table    | dabicho
> >  mp3_id_seq     | sequence | dabicho
> >  pga_forms      | table    | dabicho
> >  pga_layout     | table    | dabicho
> >  pga_queries    | table    | dabicho
> >  pga_reports    | table    | dabicho
> >  pga_schema     | table    | dabicho
> >  pga_scripts    | table    | dabicho
> >
> >
> > mp3=# \d mp3  (this describes a table (mp3)
> >                                     Table "mp3"
> >    Attribute   |       Type        |                    Modifier
>
> ---------------+-------------------+--------------------------------------
----------
> >  id            | integer           | not null default
nextval('"mp3_id_seq"'::text)
> >  fk_dirpath_id | integer           | not null
> >  filename      | character varying | not null
> >  titulo        | text              | not null default 'unknown'
> >  fk_artista_id | integer           | not null default 1
> >  fk_album_id   | integer           | not null default 1
> >  comentario    | text              | not null default 'none'
> >  year          | integer           | default 2001
> >  genero        | smallint          | not null default 1
> > Indices: mp3_fk_dirpath_id_key,
> >          mp3_pkey
> >
> > with \pset you can set output format.
> >
> > mp3=# \pset expanded
> > Expanded display is on.
> > mp3=# \d mp3
> > Table "mp3"
> > -[ RECORD 1 ]---------------------------------------------
> > Attribute | id
> > Type      | integer
> > Modifier  | not null default nextval('"mp3_id_seq"'::text)
> > -[ RECORD 2 ]---------------------------------------------
> > Attribute | fk_dirpath_id
> > Type      | integer
> > Modifier  | not null
> > -[ RECORD 3 ]---------------------------------------------
> > ....
> > there are many combinations
> > mp3=# \pset border 2
> > Border style is 2.
> > mp3=# \d mp3
> >                                      Table "mp3"
> >
+---------------+-------------------+---------------------------------------
---------+
> > |   Attribute   |       Type        |                    Modifier
|
> >
+---------------+-------------------+---------------------------------------
---------+
> > | id            | integer           | not null default
nextval('"mp3_id_seq"'::text) |
> > | fk_dirpath_id | integer           | not null
|
> > | filename      | character varying | not null
|
> > | titulo        | text              | not null default 'unknown'
|
> > | fk_artista_id | integer           | not null default 1
|
> > | fk_album_id   | integer           | not null default 1
|
> > | comentario    | text              | not null default 'none'
|
> > | year          | integer           | default 2001
|
> > | genero        | smallint          | not null default 1
|
> >
+---------------+-------------------+---------------------------------------
---------+
> > Indices: mp3_fk_dirpath_id_key,
> >          mp3_pkey
> >
> > pretty much the same, and fairly human readable to me. (although not
everything sorted in columns, i guess you could do querys to the system
tables to get that, or use awk to get the bits you want =) )
> > I just this the postgres team has don an excelent work so far.
> >
> > Reply.
> > > Any idea to get a human readable list with column descriptions like
> > > type,size,key,default,null.
> > > It would be nice if it would look simular to the mysql variant:
> > >
> > > mysql> describe employee;
> > > +-----------+----------+------+-----+---------+----------------+
> > > | Field     | Type     | Null | Key | Default | Extra          |
> > > +-----------+----------+------+-----+---------+----------------+
> > > | Id        | int(11)  |      | PRI | NULL    | auto_increment |
> > > | FirstName | char(30) |      | MUL |         |                |
> > > | LastName  | char(30) |      |     |         |                |
> > > | Infix     | char(10) | YES  |     | NULL    |                |
> > > | Address1  | char(30) | YES  |     | NULL    |                |
> > > | PostCode  | char(10) | YES  |     | NULL    |                |
> > > | Town      | int(11)  | YES  |     | NULL    |                |
> > > +-----------+----------+------+-----+---------+----------------+
> > >
> > > Cheers, Ron.
> > >
> > >
> > >
> >
> >
> >
> > --
> > ICQ: 15605359 Bicho
> >                                   =^..^=
> > First, they ignore you. Then they laugh at you. Then they fight you.
Then you win. Mahatma Gandhi.
> > ........Por que no pensaran los hombres como los animales? Pink
Panther........
>
> -------------------------------$B5$8!BN$N0lCW(B-------------------------
-----------
> > $B=k$54($5$bH`4_$^$G!#(B
> > $B%"%s(B $B%"%s(B $B%"%s(B $B$H$C$F$bBg9%$-(B
>
>
> --
> ICQ: 15605359 Bicho
>                                   =^..^=
> First, they ignore you. Then they laugh at you. Then they fight you. Then
you win. Mahatma Gandhi.
> ........Por que no pensaran los hombres como los animales? Pink
Panther........
> -------------------------------$B5$8!BN$N0lCW(B-------------------------
-----------
> $B=k$54($5$bH`4_$^$G!#(B
> $B%"%s(B $B%"%s(B $B%"%s(B $B$H$C$F$bBg9%$-(B
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly













Sat, 20 Oct 2001 18:02:31 +0200
"Ron de Jong" <radejong@planet.nl>
Re: Is there no  "DESCRIBE <TABLE>;" on PGSQL?      help!!!