From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Marc Tardif <admin(at)wtbwts(dot)com> |
Cc: | Jose Soares <jose(at)sferacarta(dot)com>, pgsql-sql(at)postgreSQL(dot)org |
Subject: | Re: [SQL] char(19) to varchar(32) |
Date: | 2000-01-19 17:24:33 |
Message-ID: | 10207.948302673@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Marc Tardif <admin(at)wtbwts(dot)com> writes:
> Actually, here's my complete rule and error message:
> CREATE RULE prod_company AS ON UPDATE
> TO company_base WHERE OLD.company <> NEW.company
> DO UPDATE prod_base set company = NEW.company
> WHERE prod_base.cid = OLD.oid;
> ERROR: Type of 'company' does not match target column 'company'
>
> company in prod_base is char(19);
> company in company_baase is varchar(32);
Interesting. You can get the same error from just doing the UPDATE
by hand --- so it's not got anything to do with the rule environment:
create table prod_base (company char(19));
create table company_base (company varchar(32));
update prod_base set company = company_base.company;
ERROR: Type of 'company' does not match target column 'company'
but
update prod_base set company = company_base.company::char;
is accepted. Even more interesting, so is
update prod_base set company = company_base.company::text;
so it's not simply a matter of UPDATE missing automatic coercion
support; it's willing to do a coercion if you hand it an expression,
but seemingly not if you hand it a simple field reference.
This sure looks like a bug to me... I recommend a CAST as a workaround
for now, but I'll try to fix it for 7.0.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Marten Feldtmann | 2000-01-19 17:46:26 | Re: [SQL] index usage ... strange !? |
Previous Message | Bruce Momjian | 2000-01-19 17:07:15 | Re: [GENERAL] Re: [SQL] Bug in CEIL? |