Taras,

I spent today 30 minutes trying to connect to cluster with sqlline in Power
Shell  :(

I predict 100500+ questions on user list about "Failed to connect in bash /
cmd / powershell  with sqlline"

On Tue, Apr 3, 2018 at 3:55 PM, Taras Ledkov <tled...@gridgain.com> wrote:

> 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
>
>


-- 
Alexey Kuznetsov

Reply via email to