You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Mamta Satoor <ms...@gmail.com> on 2005/10/03 15:59:18 UTC

Re: [PATCH] (DERBY-582) Dynamic parameter should be allowed to be the operand of unary operator "-". Derby throws exception 42X36: The '-' operator is not allowed to take a ? parameter as an operand."

My logic is trying to do what you explained in the 2nd paragraph. As for the
cases, where the parameters are excluded, parameters under a unary minus
will be excluded automatically too because I have defined UnaryOperatorNode
to extend ParameterNode. The existing code (where parameters are disallowed)
checks for isParameterNode() and throws exception if isParameterNode()
returns true. I have added the method isParameterNode() to UnaryOperatorNode
which returns true if it is unary minus/unary plus and has a parameter for
the operand. Because of this implementation scheme, I didn't have to go look
at the existing parameter exclusion code to also check for unary minus/unary
plus parameters.
 I should have the code for review within a day or two, need to write
comments and more tests.
 Mamta

 On 10/2/05, Jeffrey Lichtman <sw...@rcn.com> wrote:
>
> I've been thinking about where "- ?" should be allowed in queries.
> Currently, parameters are allowed only in certain situations - the
> documentation lists seventeen different places where parameters can
> be used. These places were chosen because it's possible to figure out
> the type of the parameter from the context. For example, a parameter
> can be used as the first operand of BETWEEN as long as the one of the
> second and third operands is not a parameter.
>
> It seems to me that a parameter could be used with a unary minus
> anywhere a "bare" parameter is allowed. Derby could use the same
> rules to determine the type of the parameter as if the minus weren't
> there. Obviously, there would have to be an error if the type isn't
> numeric.
>
> I don't think we should allow unary minus on parameters in any other
> cases. This seems obvious, but it means poring over the code and
> looking for all the places where parameters are excluded, and making
> it look for parameters under a unary minus.
>
>
> - Jeff Lichtman
> swazoo@rcn.com
> Check out Swazoo Koolak's Web Jukebox at
> http://swazoo.com/
>
>