db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dag H. Wanvik (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3610) Confusing error message when granting execute privilege
Date Tue, 07 Apr 2009 18:56:13 GMT

    [ 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.


Mime
View raw message