>
> > Each type has a typeinput(char * => type ) proc and a typeoutput(
> > type -> char *) proc.
> > Doesn't int2in(int4out()) convert int4 to int2 ?
> > However,typeinput proc causes elog(ERROR) in most cases if it
> > couldn't convert correctly.
>
> Conversion using an intermediate string is possible, but not the
> preferred technique.
>
Every type of PostgreSQL must have typeinput/typeoutput procs.
So this technique doesn't need new procs/operators any more.
Isn't it an advantage ?
> The "automatic type coersion" code, used earlier in the parser, uses
> the convention that any single-argument function taking the source
> type as input and with the same name as the target type can be used
> for type conversion. For example, the function int4(int2) would
> convert int2 to int4. There are now routines in the parser for
> choosing conversion strategies and for finding candidates, and these
> could be reused for similar purposes when trying to match index
> arguments.
>
It seems reasonable.
But I'm afraid that the defintion of new type requires many functions
of type conversion.
Regards.
Hiroshi Inoue
Inoue@tpf.co.jp