[ 
https://issues.apache.org/jira/browse/DERBY-3610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12696688#action_12696688
 ] 

Dag H. Wanvik commented on DERBY-3610:
--------------------------------------

Thanks, Hiranya! 
Knut, I don't think "procedure" and "function" is a problem, both are SQL 
keywords, we had similar cases in the past. But I like the idea of avoiding 
having to introduce a new error message so doing as you suggest is still good: 
+1.

Patch looks good, but some nits: One of the lines was longer than 80 characters 
and had trailing whitespace. We try to avoid both.

As a matter of style (feel free to disagree); I prefer this

String keyword;

if (rd.isFunction) {
    keyword = "function";
} else {
   keyword = "procedure";
}

over:

String keyword = "procedure";
if (rd.isFunction) {
   keyword = "function";
}

since in the function case there is one redundant assignment. I also find it 
easier to read.

Some would perhaps prefer:

String keyword = rd.isFunction ? "function" : "procedure";

but I find this harder to read. But in any case, using Knut's idea, this code 
would go away anyway... ;-)



> Confusing error message when granting execute privilege
> -------------------------------------------------------
>
>                 Key: DERBY-3610
>                 URL: https://issues.apache.org/jira/browse/DERBY-3610
>             Project: Derby
>          Issue Type: Improvement
>          Components: Newcomer, SQL
>            Reporter: Dag H. Wanvik
>            Priority: Trivial
>         Attachments: DERBY-3610.patch
>
>
> When the wrong keyword is used in a grant execute privilege statement, the 
> error message
> leads one the believe the identifier is neither a procedure or a function, 
> when in deed it is one of the two.
> > create function bc(i int) returns int language java parameter style java 
> > external name 'java.lang.Integer.bitCount' no sql;
> > grant execute on procedure bc to foo;
> ERROR 42Y03: 'BC' is not recognized as a function or procedure.
> > grant execute on function bc to foo;
> (works)
> The reason is that the error message is generic. It would be better to have 
> an error message for each case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to