db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3809) Add a SHOW FUNCTONS command to ij
Date Fri, 25 Sep 2009 11:34:18 GMT

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

Knut Anders Hatlen commented on DERBY-3809:
-------------------------------------------

Escaping the schema name sounds like a good idea, since we may make the syntax more liberal
later. There's a method called IdUtil.normalToDelimited() that does this in the embedded driver.
Unfortunately, this code cannot be called from ij, since derby.jar is not guaranteed to be
on the classpath, but you can look at the method to see how to escape the identifier. Using
a prepared statement sounds simpler and cleaner, though, so I think I would have preferred
that.

One minor issue with the patch: Derby's code uses tab size 4. The patch uses spaces for indentation,
which is fine, but to match the surrounding code, it should use four spaces for each indentation
level, not eight.

By the way, JDBC 4.0 has a method in DatabaseMetaData called getFunctions() which is similar
to the getProcedures() method used by SHOW PROCEDURES. This method is implemented in Derby's
JDBC 3.0 drivers too, so we may consider using that method instead of querying the system
tables directly. The benefit of using getFunctions() is that it will be more portable and
work against other databases that have implemented that meta-data call. Since ij is compiled
against the JDBC 3.0 libraries, we will need to use reflection to call it. I think it would
be something along these lines:

DatabaseMetaData dbmd = theConnection.getMetaData();
Method getFuncs;
try {
    getFuncs = dbmd.getClass().getMethod("getFunctions", ...);
} catch (NoSuchMethodException nsme) {
    throw new ijException.notAvailableForDriver(...);
}
ResultSet rs = (ResultSet) getFuncs.invoke(dbmd, ...);

> Add a SHOW FUNCTONS command to ij
> ---------------------------------
>
>                 Key: DERBY-3809
>                 URL: https://issues.apache.org/jira/browse/DERBY-3809
>             Project: Derby
>          Issue Type: Improvement
>          Components: Tools
>    Affects Versions: 10.4.1.3
>            Reporter: Rick Hillegas
>            Assignee: Sylvain Leroux
>         Attachments: show-functions.diff
>
>
> Currently, the ij SHOW command can give you information on a number of schema objects,
including procedures. It should be fairly easy to add SHOW FUNCTIONS as well. This request
surfaced on the user list: http://www.nabble.com/How-can-i-see-my-self-defined-functions--td18773980.html#a18773980

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