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¶m2=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