Hi,

1. Mysql JDBC driver Conenctor/J [1] and postgres JDBC driver [2] use ampersand to delimit properties. 2. Mysql use regular URL encoding for properties values instead of legacy escaping (e.g braces etc.) 3. Microsoft JDBC (and ODBC) driver for SQL Server [3] use semicolon to delimit and square braces to escape.

So, there is no true way to solve the issue.

However, the inconvenience of using the console is the last thing I paid attention to.
- using JDBC driver from console client is not common case;
- when any command line shell is used the various escaping of the parameters is routine job.

So, the root cause of the proposal is not clear for me.

[1]. https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html

[2]. https://jdbc.postgresql.org/documentation/80/connect.html

[3]. https://msdn.microsoft.com/ru-ru/library/ms378428(v=sql.100).aspx

On 03.04.2018 11:30, Vladimir Ozerov wrote:
Igniters,

Thanks to Alex Kuznetsov, we revealed serious usability issue in our thin
JDBC driver - we user ampersand character to delimit properties:

jdbc:ignite:thin://host:port/schema?param1=val1*&*param2=val2

This leads to multiple problems:
1) This format is unusable from many console environments and require
special escaping (PowerShell, bash)
2) Also this causing issues when writing connection string is passed to
some 3rd-party applications as sometimes they cannot escape it as well.

I performed investigation on how other vendors do that. Bottom line -
nobody use ampersand. Instead semicolon or parentheses are used:

jdbc:ignite:thin://host:port/schema?param1=val1&param2=val2
jdbc:ignite:thin://host:port/schema?(param1=val1)(param2=val2)

I propose to do a breaking change in AI 2.5 and change the format to
*parentheses*. This would be a disruptive experience for existing users,
but in the long term benefits will outweight. Also remember that we do not
offered officially any backward compatibility for our JDBC driver.

Alternatively we may allow users to use previous format with help of system
property or environment variable.

Thoughts?

Vladimir.


--
Taras Ledkov
Mail-To: tled...@gridgain.com

Reply via email to