[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5212?page=c...
]
Anders Wallgren commented on HHH-5212:
--------------------------------------
(This is strictly for fun at this point, I"m not trying to start anything.)
Nothing? Look closer at the quote:
bq. A deprecated class or method is like that. It is no longer important. It is so
unimportant, in fact, that *you should no longer use it*, since it *has been superseded*
and may cease to exist in the future
I read, "you should no longer use it," as implying you stop using the old API.
Now. Not in some future release. If you haven't supplied the new API, I *must*
continue to use the deprecated API.
I read, "has been superseded," as implying that the new API is in place. Now.
Not in some future release.
Using deprecation without the new API in place is like asking me to let go of one branch
before the other one is within reach. ;-)
(Really, just doing this for fun now, not taking it seriously.)
Alter SQLFunction contract to be more flexible
----------------------------------------------
Key: HHH-5212
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5212
Project: Hibernate Core
Issue Type: Improvement
Components: core, query-criteria, query-hql
Reporter: Steve Ebersole
The SQLFunction contract currently combines contextual information (render/getReturnType)
and non-contextual (aka non-changing) information
(hasArguments/hasParenthesesIfNoArguments).
An example I just ran into where separating these would have been nice is in HHH-5173.
Some dialects return the argument data type when applying the AVG() function. That is
problematic for INTEGER values because the decimal portion gets dropped. On those
databases one would need to CAST() the argument to get the correct behavior. However,
again, this is only necessary based on the argument type. If the argument type is already
a non-integer the cast is uneeded.
Proposal (as always name subject to change/suggestion):
{code}
interface SQLFunction {
public boolean hasArguments();
public boolean hasParenthesesIfNoArguments();
public RenderingContext getRenderingContext(Type columnType,
SessionFactoryImplementor factory);
public static interface RenderingContext {
public Type getReturnType();
public String render(List args);
}
}
{code}
I used SessionFactoryImplementor as the argument to getRenderingContext, but the current
getReturnType accepts a Mapping. Is there really ever a time when we call that method
when we do not have a SessionFactory? My usage search shows no usages of this method
passing in a Configuration (which is the other Mapping implementor aside from
SessionFactory).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira