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

Dag H. Wanvik edited comment on DERBY-5357 at 3/8/12 2:16 AM:
--------------------------------------------------------------

Uploading an enlarged version of this patch with upgrade logic and upgrade 
tests, and updates to dblook (dblook tests failed before with the new scheme).

Note: the new code in RawStore had to accommodate the weird test in 
BackupPathTests.jar, which somewhat worryingly backs up <db> to <db>/jar (gave 
a recursion problem in the new code).

I still have not removed the sanitized schema and SQL object names from the 
file name of the jar, nor the regexp code unwanted for CDC, but will do so in a 
final increment.

Regressions passed.

                
      was (Author: dagw):
    Uploading an enlarged version of this patch with upgrade logic and upgrade 
tests, and updates to dblook (dblook tests failed before with the new scheme).

Additionally, I made a small change to the new code in RawStore to accommodate 
the weird test in BackupPathTests.jar, which somewhat worryingly backs up <db> 
to <db>/jar (gave a recursion problem in the new code).

I still have not removed the sanitized schema and SQL object names from the 
file name of the jar, nor the regexp code unwanted for CDC, but will do so in a 
final increment.

Regressions passed.

                  
> SQLJ.INSTALL_JAR shouldn't use identifier as file name
> ------------------------------------------------------
>
>                 Key: DERBY-5357
>                 URL: https://issues.apache.org/jira/browse/DERBY-5357
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.9.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Dag H. Wanvik
>              Labels: derby_triage10_9
>         Attachments: derby-5357-2.diff, derby-5357-2.stat, 
> derby-5357-with-tests.diff, derby-5357-with-tests.stat, derby-5357.diff, 
> derby-5357.stat
>
>
> When installing a jar file with the SQLJ.INSTALL_JAR procedure, it will copy 
> the jar file to a subdirectory of the database directory. The name of the 
> stored jar file is based on the qualified name specified by the second 
> parameter in the procedure, and becomes something like: 
> <DBDIR>/jar/<SCHEMA>/<JAR_NAME>.jar.<VERSION>
> This naming scheme is problematic because the qualified name of the jar file 
> is an SQL identifier and may contain any characters, also characters with 
> special meaning to the underlying file system.
> One example is this call:
> ij> call sqlj.install_jar('/path/to/toursdb.jar', 'APP."../../../x/jar"', 0);
> 0 rows inserted/updated/deleted
> On Unix-like systems, this will install the jar in a subdirectory of the 
> database directory's parent directory, which is clearly unfortunate as the 
> database directory should be self-contained (an assumption used when taking 
> backup of a database using operating system commands, or when moving the 
> database to another location).
> There's probably also a possibility that INSTALL_JAR fails if the identifier 
> contains a character that's not allowed in file names on the platform.
> It would be better if the jars were stored in a file whose name is 
> independent of the identifier used, so that any valid SQL identifier could be 
> used to name a jar file in the database without causing problems.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to