From: | Arturo Pie Joa <arturotd08(at)yahoo(dot)ca> |
---|---|
To: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Using incorrect default-value type |
Date: | 2012-10-14 19:49:58 |
Message-ID: | 1350244198.76626.YahooMailNeo@web46404.mail.sp1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello,
I have found a strange behavior in postgreSQL when adding columns with defaults of a domain type in a schema different from public. This is the example to reproduce it:
CREATE SCHEMA schema_1;
CREATE DOMAIN schema_1.text AS text;
SET search_path TO schema_1, pg_catalog;
CREATE TABLE test
(
col1 text DEFAULT 'some value'
);
SELECT a.attname,
pg_get_expr(d.adbin, d.adrelid) AS default
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = 'schema_1."test"'::regclass
AND a.attnum > 0
ORDER BY a.attnum;
Last query will return:
col1 | "'some value'::pg_catalog.text"
I don't understand why it is using "pg_catalog.text", when it should be using "schema_1.text", or in this case the query should return just "text" since the search path is using "schema_1".
Furthermore, if I open pgAdmin and select "col1" in "test" table, SQL pane will show:
ALTER TABLE schema_1.test ALTER COLUMN col1 SET DEFAULT 'some value'::text;
but I believe, it should show:
ALTER TABLE schema_1.test ALTER COLUMN col1 SET DEFAULT 'some value'::schema_1.text;
Is this a bug or am I missing something?
Thanks,
Arturo
From | Date | Subject | |
---|---|---|---|
Next Message | David Johnston | 2012-10-14 20:07:50 | Re: Using incorrect default-value type |
Previous Message | Tom Lane | 2012-10-14 16:10:42 | Re: BUG #6510: A simple prompt is displayed using wrong charset |