Re: [GENERAL] Bug in psql (\dd query)

2013-08-22 Thread Michael Paquier
On Wed, Aug 21, 2013 at 11:34 PM, Ivan Radovanovic
radovano...@gmail.com wrote:
 On 08/21/13 16:03, Tom Lane napisa:


 Problem is if you create table in schema other than public (I am not sure if
 \dd should show comments only for objects in public schema, I assumed not?)

 db=# create schema test;
 CREATE SCHEMA
 db=# create table test.foo (f1 int primary key);
 NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index foo_pkey
 for table foo
 CREATE TABLE
 db=# comment on constraint foo_pkey on test.foo is 'here is a comment';
 COMMENT
 db=# \dd

  Object descriptions
  Schema | Name | Object | Description
 +--++-
 (0 rows)
¥dd outputs information of objects of schemas referenced in
search_path. Your example works if you change this parameter
accordingly to your new schema:
=# create schema test;
CREATE SCHEMA
=# create table test.foo (f1 int primary key);
CREATE TABLE
=# comment on constraint foo_pkey on test.foo is 'here is a comment';
COMMENT
=# \dd
 Object descriptions
 Schema | Name | Object | Description
+--++-
(0 rows)

=# set search_path to 'test';
SET
=# \dd
Object descriptions
 Schema |   Name   |   Object   |Description
+--++---
 test   | foo_pkey | constraint | here is a comment
(1 row)

Regards,
-- 
Michael


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[GENERAL] Bug in psql (\dd query)

2013-08-21 Thread Ivan Radovanovic

Hello,

I was checking for way to get object comments, and it seems that \dd has 
bug when it comes to extracting descriptions for constraints. Relevant 
part of query psql is executing is:


SELECT DISTINCT tt.nspname AS Schema, tt.name AS Name, tt.object AS 
Object, d.description AS Description

FROM (
  SELECT pgc.oid as oid, pgc.tableoid AS tableoid,
  n.nspname as nspname,
  CAST(pgc.conname AS pg_catalog.text) as name,  CAST('constraint' AS 
pg_catalog.text) as object

  FROM pg_catalog.pg_constraint pgc
JOIN pg_catalog.pg_class c ON c.oid = pgc.conrelid
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE n.nspname  'pg_catalog'
  AND n.nspname  'information_schema'
  AND pg_catalog.pg_table_is_visible(c.oid)
/* more unions here */
) AS tt
  JOIN pg_catalog.pg_description d ON (tt.oid = d.objoid AND 
tt.tableoid = d.classoid AND d.objsubid = 0)

ORDER BY 1, 2, 3;

obviously it is trying to get description for (table_oid, 
constraint_oid, 0), while in fact it should read description for (oid of 
pg_catalog.pg_constaint, constraint_oid, 0).


At least last tuple is what comment statement is inserting into 
pg_description table


Regards,
Ivan


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Bug in psql (\dd query)

2013-08-21 Thread Tom Lane
Ivan Radovanovic radovano...@gmail.com writes:
 I was checking for way to get object comments, and it seems that \dd has 
 bug when it comes to extracting descriptions for constraints.

That code looks right to me, and it works according to a simple test:

d1=# create table foo (f1 int primary key);
CREATE TABLE
d1=# comment on constraint foo_pkey on foo is 'here is a comment';
COMMENT
d1=# \dd
Object descriptions
 Schema |   Name   |   Object   |Description
+--++---
 public | foo_pkey | constraint | here is a comment
(1 row)

What exactly do you think the problem is?

regards, tom lane


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Bug in psql (\dd query)

2013-08-21 Thread Ivan Radovanovic

On 08/21/13 16:03, Tom Lane napisa:

Ivan Radovanovicradovano...@gmail.com  writes:

I was checking for way to get object comments, and it seems that \dd has
bug when it comes to extracting descriptions for constraints.


That code looks right to me, and it works according to a simple test:

d1=# create table foo (f1 int primary key);
CREATE TABLE
d1=# comment on constraint foo_pkey on foo is 'here is a comment';
COMMENT
d1=# \dd
 Object descriptions
  Schema |   Name   |   Object   |Description
+--++---
  public | foo_pkey | constraint | here is a comment
(1 row)

What exactly do you think the problem is?

regards, tom lane


Problem is if you create table in schema other than public (I am not 
sure if \dd should show comments only for objects in public schema, I 
assumed not?)


db=# create schema test;
CREATE SCHEMA
db=# create table test.foo (f1 int primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 
foo_pkey for table foo

CREATE TABLE
db=# comment on constraint foo_pkey on test.foo is 'here is a comment';
COMMENT
db=# \dd
 Object descriptions
 Schema | Name | Object | Description
+--++-
(0 rows)



--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Bug in psql (\dd query)

2013-08-21 Thread Ivan Radovanovic

On 08/21/13 16:34, Ivan Radovanovic napisa:

On 08/21/13 16:03, Tom Lane napisa:

Ivan Radovanovicradovano...@gmail.com writes:

I was checking for way to get object comments, and it seems that \dd has
bug when it comes to extracting descriptions for constraints.


That code looks right to me, and it works according to a simple test:

d1=# create table foo (f1 int primary key);
CREATE TABLE
d1=# comment on constraint foo_pkey on foo is 'here is a comment';
COMMENT
d1=# \dd
Object descriptions
Schema | Name | Object | Description
+--++---
public | foo_pkey | constraint | here is a comment
(1 row)

What exactly do you think the problem is?

regards, tom lane


Problem is if you create table in schema other than public (I am not
sure if \dd should show comments only for objects in public schema, I
assumed not?)

db=# create schema test;
CREATE SCHEMA
db=# create table test.foo (f1 int primary key);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index foo_pkey
for table foo
CREATE TABLE
db=# comment on constraint foo_pkey on test.foo is 'here is a comment';
COMMENT
db=# \dd
Object descriptions
Schema | Name | Object | Description
+--++-
(0 rows)



Obviously there is optional pattern argument for \dd which would show 
comments in different schema, so I it was my mistake after all.


Sorry for false alarm


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general