[
https://issues.apache.org/jira/browse/DERBY-4805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mamta A. Satoor updated DERBY-4805:
-----------------------------------
Attachment: DERBY4805_patch3_stat.txt
DERBY4805_patch3_diff.txt
I am attaching patch DERBY4805_patch3_diff.txt which has RDBNAM length limit of
1024 bytes. This length used to be 255 bytes.
I have run derbyall with this patch and there were no failures. junit suite ran
fine too except InternationalConnectTest.java. InternationalConnectTest has a
fixture named testBoundaries which has positive test to try 1024 bytes long
RDBNAM and then a negative test to go over the limit for RDBMAM.
The positive test in testBoundaries fails with the patch both on Windows and
Linux machines. It appears that atleast on Windows, the individual components
of a filename (i.e. each subdirectory along the path, and the final filename)
can not be greater than 255 characters. The positive test is testing the final
filename as 1024 characters long and thus causing the fixture to fail.
The length limit for RDBNAM includes the entire filename(not just the final
filename) along with any parameters in the url(for eg ;create=true etc)and so I
hand tested following with and without my patch
java org.apache.derby.drda.NetworkServerControl -noSecurityManager start &
java -Dij.exceptionTrace=true org.apache.derby.tools.ij
connect
'jdbc:derby://localhost:1527/c:/del/del22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222/dellater11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111/db1;create=true';
Notice that individual component of filename are shorter than 255 characters
but the total length of the string after jdbc:derby://localhost:1527/ in the
jdbc url is 435 characters ie greater than 255 characters. The above connection
attempt through ij works with my patch but fails without it which demonstrates
that with the patch, we do accept RDBNAM longer than 255 characters.
For now, I am not running the boundary test with Windows OS. Probably I need to
put the same rule for other oses with similar restriction of individual
component length. Ideally, I should change positive and negaive test cases to
to use individual filename component shorter than 255 characters but the total
url length withouthout "jdbc:derby://localhost:1527/" to be exactly 1024(for
positive test case) or greater than 1024(for negative test case) to test the
boundaries. Has anyone ever had to write a junit test where you don't create
the test db in the default location and not use the default 'wombat' name for
the db? My test probably would need to do that so that full filename in url
will add upto be 1024 characters.
Appreicate any feedback. Thanks
> Increase the length of the RDBNAM field in the DRDA implementation
> ------------------------------------------------------------------
>
> Key: DERBY-4805
> URL: https://issues.apache.org/jira/browse/DERBY-4805
> Project: Derby
> Issue Type: Improvement
> Components: Network Client, Network Server
> Affects Versions: 10.7.1.1
> Reporter: Tiago R. Espinha
> Assignee: Mamta A. Satoor
> Labels: derby_triage10_9
> Attachments: DERBY4805_patch2_diff.txt, DERBY4805_patch2_stat.txt,
> DERBY4805_patch3_diff.txt, DERBY4805_patch3_stat.txt,
> DERBY_4805_diff_patch1.txt
>
>
> Currently, whenever the client driver is used, there is a limit of 255 bytes
> for the database name. This is defined by the DRDA spec and there has been a
> discussion on the list [1]/[2] as to whether this limit should be raised due
> to the introduction of the new ACR that allows for UTF-8 characters.
> UTF-8 characters can take up to four bytes and this reduces the limit in
> characters dramatically.
> This should be an easy change as there is a codepoint that defines this limit.
> [1] did not work but [2] did
> [1] - http://old.nabble.com/Database-name-length-tt29691419.html
> [2]http://apache-database.10148.n7.nabble.com/Database-name-length-td33182.html
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)