Hi Deepa,

The think the patch now handles the case of double-quotes correctly, but I'm wondering if we need to worry about single quotes, as well? I tried some examples in embedded vs server mode (after applying your patch) and here's what I noticed:

// Embedded.
ij> connect 'jdbc:derby:''good_1'';create=true';
<connection successful>
ij> connect 'jdbc:derby:''C:/my/db/path/bad'';create=true';
ERROR 08001: No suitable driver

// Network Server w/ Derby client.
ij> connect 'jdbc:derby://localhost:1527/''good_3'';create=true';
<connection successful>
ij> connect 'jdbc:derby://localhost:1527/''C:/my/db/path/bad'';create=true';
agentThread[DRDAConnThread_8,5,main]
ERROR (no SQLState): A communication error has been detected. Communication protocol being used: Reply.fill(). Communication API being used: InputStream.read(). Location where the error was detected: insufficient data. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS

I don't think we can just add a check for single quotes like you did for double quotes because that would mean that cases where a pathless database name is given in single quotes--a situation that currently works--would then fail, which I think would technically be a regression. So you might have to add logic to allow single quotes around a pathless database name, but to disallow them (with a syntax error) if an actual path is specified...?

I haven't tried any of this on a non-Windows machine, so I don't know if the results are different there.

Hope I'm not being too picky...
Army

Reply via email to