Skip site navigation (1) Skip section navigation (2)

Casts question

From: Shachar Shemesh <psql(at)shemesh(dot)biz>
To: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Casts question
Date: 2004-06-17 16:58:39
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers
Hi all,

I have defined a datatype called "varcharci", shamelessly yanking the 
input, output, recv and send functions from varchar. This means (as far 
as I understand things) that this type is binary compatible with varchar.

As such, I used the following two lines:
create cast ( varcharci AS varchar ) WITHOUT FUNCTION AS IMPLICIT;
create cast ( varchar AS varcharci ) WITHOUT FUNCTION AS ASSIGNMENT;

I defined two tables. Both have a column called "name". One is a 
varchar, and the other is a varcharci. When I try to do the following 
select, I get an error:
test=# select as "id-1", as "id-2", from 
test2 inner join test3 on;
ERROR:  operator does not exist: character varying = varcharci
HINT:  No operator matches the given name and argument type(s). You may 
need to add explicit type casts.

When I add an explicit cast, everything works:
sun=# select as "id-1", as "id-2", from 
test2 inner join test3 on as varchar);
results go here

Why is that? Being as it is that no operator = is defined for varcharci, 
and that the cast from varchar to varcharci is "as assignment" anyways, 
shouldn't postgres be able to do the cast implicitly?


Shachar Shemesh
Lingnu Open Source Consulting ltd.


pgsql-hackers by date

Next:From: markwDate: 2004-06-17 17:00:28
Subject: Re: Status in 7.5 patches
Previous:From: Andrew SullivanDate: 2004-06-17 16:51:03
Subject: Re: signal 11 on AIX: 7.4.2

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group