Re: Implicit coercions need to be reined in - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Implicit coercions need to be reined in
Date
Msg-id 200204171906.g3HJ6qQ22390@candle.pha.pa.us
Whole thread Raw
In response to Re: Implicit coercions need to be reined in  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Tom Lane wrote:
> Thomas Lockhart <thomas@fourpalms.org> writes:
> >> It's one thing to say that "apples || oranges" should
> >> be interpreted as "apples::text || oranges::text", but it is quite
> >> another to say that "apples <= oranges" should be handled that way.
> 
> > Hmm. istm that we might need some information to travel with the
> > operators, not just the coersion functions themselves. We have a fairly
> > type-rich system, but need to preserve the ability to add types and a
> > *partial* set of functions and operators and get reasonable behaviors.
> 
> Could we do anything based on looking at the whole set of candidate
> operators?  For example, I think that the reason "apples || oranges"
> is so appealing is that there really is only one way to interpret
> the || operator; whereas of course there are lots of different <=
> operators.  Perhaps we could be more forgiving of implicit coercions
> when there are fewer candidate operators, in some way?  Again, something
> based on type categories would make sense to me.  Perhaps allow
> cross-category implicit coercions only if there are no candidate
> operators accepting the input's native category?

Yes, I think any solution will have to consider the number of possible
conversions for a given mix of function/args.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-hackers by date:

Previous
From: Michael Meskes
Date:
Subject: Bison grammer
Next
From: "Rod Taylor"
Date:
Subject: Re: Index Scans become Seq Scans after VACUUM ANALYSE