[
https://issues.apache.org/jira/browse/DERBY-6022?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13542907#comment-13542907
]
Rick Hillegas commented on DERBY-6022:
--------------------------------------
Hi Dag,
Thanks for looking at this approach. Sorry if my description was a bit
confusing:
1) Note that DBMDWrapper does live in derbytools.jar. It's just the
OptionalTools interface which lives in derby.jar. OptionalTools is an interface
shared by engine and tools code.
2) Note that this issue deals with tools which weren't previously checked into
the main codeline but which will be checked into the codeline when this work is
done. There are several reasons for not auto-registering these tools:
a) That would bloat up the namespace as you note.
b) That would add significant further time to Derby database creation.
c) It isn't clear where to register the tools. In the case of the DBMDWrapper
routines, they end up in the current schema of the user who registers them.
d) For the next tool I'm going to tackle (ForeignTableVTI), the foreign
database isn't even known when the Derby database is created, so there is no
way to auto-register those routines.
Hope this makes more sense now. Thanks.
> Add a system procedure for (un)registering optional packages of Derby tools.
> ----------------------------------------------------------------------------
>
> Key: DERBY-6022
> URL: https://issues.apache.org/jira/browse/DERBY-6022
> Project: Derby
> Issue Type: Improvement
> Components: SQL, Tools
> Affects Versions: 10.10.0.0
> Reporter: Rick Hillegas
> Attachments: derby-6022-01-aa-registerToolProc.diff,
> derby-6022-02-aa-dbmdWrapper.diff
>
>
> Now that vararg routines have been added to Derby (see DERBY-3069), I would
> like to add a new vararg system procedure for registering and unregistering
> optional packages of Derby tools. For starters, these would be tools which
> aren't checked into the Derby codeline but are just attached to various
> JIRAs. These tools are:
> o DBMDWrapper (DERBY-3973 and DERBY-5967) - This tool creates functions and
> table functions for all of the DatabaseMetaData methods so that you can write
> complicated queries which join and filter JDBC metadata.
> o ForeignTableVTI (DERBY-4962) - This tool creates views against foreign
> databases so that you can bulk-import foreign data into Derby without
> indirecting through csv files.
> It also may be possible to use this approach to expose the log and data file
> reading tools attached to DERBY-5195 and DERBY-5201.
> The new system procedure would look like this:
> create procedure syscs_util.syscs_register_tool
> (
> toolName varchar( 32672 ),
> boolean register,
> optionalArgs varchar( 32672 ) ...
> )
> language java parameter style derby modifies sql data
> external name 'willFigureOutWhereToPutThis';
> The arguments would have these meanings:
> o toolName - A name specific to the tool.
> o register - True means "register the tool" and false means "unregister the
> tool".
> o optionalArgs - Each tool could have its own variable set of additional
> configuration parameters.
> By default, only the DBO could run this procedure. The DBO could grant
> execute permission to other users.
> The known tool names and their optional parameters would be documented in the
> Derby Reference Manual in the section on syscs_util.syscs_register_tool.
> I am thinking that we should put the optional tools themselves in
> derbytools.jar. We might want to document all of the optional tools in the
> Tools Guide, although I can see arguments for documenting some tools in the
> Admin Guide.
> I would appreciate other people's thoughts about this proposal.
> Thanks,
> -Rick
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira