You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by Arina Yelchiyeva <ar...@gmail.com> on 2018/08/13 17:08:19 UTC

[DISCUSS] sqlline upgrade

Hi all,

currently Apache Drill is using custom version of Sqlline [1]. It has some
custom fixes, the importance of which I propose to discuss.

*1. Isolation.*
Drill supports TRANSACTION_NONE only, default in Sqlline
is TRANSACTION_REPEATABLE_READ. Apparently the was not possibility to
override the default or by any other reason, in custom version setting
transaction is commented out. After upgrade to the latest version, during
connection Drill errors that default transaction level is not acceptable
but this can be easily fixed by passing arguments to Sqlline to change the
defaults. Example will be provided below.

*2.  Resizing of output.*
After upgrade to the latest version, output is weirdly resized, custom
version has ResizingRowsProvider which fixed this issue but now this can be
easily fixed by passing incremental=false when calling Sqlline.

Example for points 1 and 2:
CMD="$JAVA $SHELL_OPTS -cp $CP sqlline.SqlLine -d
org.apache.drill.jdbc.Driver --maxWidth=10000* --isolation=TRANSACTION_NONE
--incremental=false*"

I haven't noticed any other issues with Sqlline that might regress after
the upgrade. If I have missed something else, please feel free to correct
me.

*3. Output of Drill version at start up.*
Now:
*apache drill 1.15.0-SNAPSHOT *
*"got drill?"*

After the upgrade:
*sqlline version 1.4.0*
*0: jdbc:drill:zk=local>*

*4. Options that Drill did not support were commented out, so they are not
displayed in help menu.*

If we upgrade, we'll lose the last two enhancements, though I don't think
they are crucial. Other projects like Apache Phoenix are doing fine without
them. Plus I think it's quite obvious why moving from custom version is a
good choice.

Any thoughts?

[1] https://github.com/mapr/sqlline/commits/1.1.9-drill-r7

Kind regards,
Arina

Re: [DISCUSS] sqlline upgrade

Posted by John Omernik <jo...@omernik.com>.
Since we are "shipping" sqlline, can we include a sqline shell script that
puts the command line arguments we need, and then include another that
people can use if they want to use without our arguments? This way anyone
who is used to just "sqlline" doesn't have to change, it's the "new"
functionality that has to change...

On Mon, Aug 13, 2018 at 12:08 PM, Arina Yelchiyeva <
arina.yelchiyeva@gmail.com> wrote:

> Hi all,
>
> currently Apache Drill is using custom version of Sqlline [1]. It has some
> custom fixes, the importance of which I propose to discuss.
>
> *1. Isolation.*
> Drill supports TRANSACTION_NONE only, default in Sqlline
> is TRANSACTION_REPEATABLE_READ. Apparently the was not possibility to
> override the default or by any other reason, in custom version setting
> transaction is commented out. After upgrade to the latest version, during
> connection Drill errors that default transaction level is not acceptable
> but this can be easily fixed by passing arguments to Sqlline to change the
> defaults. Example will be provided below.
>
> *2.  Resizing of output.*
> After upgrade to the latest version, output is weirdly resized, custom
> version has ResizingRowsProvider which fixed this issue but now this can be
> easily fixed by passing incremental=false when calling Sqlline.
>
> Example for points 1 and 2:
> CMD="$JAVA $SHELL_OPTS -cp $CP sqlline.SqlLine -d
> org.apache.drill.jdbc.Driver --maxWidth=10000* --isolation=TRANSACTION_NONE
> --incremental=false*"
>
> I haven't noticed any other issues with Sqlline that might regress after
> the upgrade. If I have missed something else, please feel free to correct
> me.
>
> *3. Output of Drill version at start up.*
> Now:
> *apache drill 1.15.0-SNAPSHOT *
> *"got drill?"*
>
> After the upgrade:
> *sqlline version 1.4.0*
> *0: jdbc:drill:zk=local>*
>
> *4. Options that Drill did not support were commented out, so they are not
> displayed in help menu.*
>
> If we upgrade, we'll lose the last two enhancements, though I don't think
> they are crucial. Other projects like Apache Phoenix are doing fine without
> them. Plus I think it's quite obvious why moving from custom version is a
> good choice.
>
> Any thoughts?
>
> [1] https://github.com/mapr/sqlline/commits/1.1.9-drill-r7
>
> Kind regards,
> Arina
>

Re: [DISCUSS] sqlline upgrade

Posted by Parth Chandra <pa...@apache.org>.
@Parth Chandra <pa...@apache.org>
> could you please give an example about
> {quote}
> While we are at it, we could fix the (very annoying) behavior of SQLLine
> where it tries to disconnect from the database even after the connect call
> failed.
> {quote}
>
>
Provide an invalid connect string to SQLLine. Then quit.

[1136][~/drill]$ sqlline -u "jdbc:drill:drillbit=localhost:31011"  -n admin
-p admin --showNestedErrs=false
Error: Failure in connecting to Drill:
org.apache.drill.exec.rpc.ChannelClosedException: Channel closed /
127.0.0.1:51878 <--> localhost/127.0.0.1:31011. (state=,code=0)
java.sql.SQLNonTransientConnectionException: Failure in connecting to
Drill: org.apache.drill.exec.rpc.ChannelClosedException: Channel closed /
127.0.0.1:51878 <--> localhost/127.0.0.1:31011.
at
org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:178)
at
org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:72)
at
org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:68)
at
org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:138)
at org.apache.drill.jdbc.Driver.connect(Driver.java:72)
at sqlline.DatabaseConnection.connect(DatabaseConnection.java:168)
at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:214)
at sqlline.Commands.connect(Commands.java:1083)
at sqlline.Commands.connect(Commands.java:1015)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
at sqlline.SqlLine.dispatch(SqlLine.java:742)
at sqlline.SqlLine.initArgs(SqlLine.java:528)
at sqlline.SqlLine.begin(SqlLine.java:596)
at sqlline.SqlLine.start(SqlLine.java:375)
at sqlline.SqlLine.main(SqlLine.java:268)
Caused by: org.apache.drill.exec.rpc.ChannelClosedException: Channel closed
/127.0.0.1:51878 <--> localhost/127.0.0.1:31011.
at
org.apache.drill.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:165)
at
org.apache.drill.exec.rpc.RpcBus$ChannelClosedHandler.operationComplete(RpcBus.java:144)
       <snip/>
at
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
at java.lang.Thread.run(Thread.java:748)
apache drill 1.15.0-SNAPSHOT
"what ever the mind of man can conceive and believe, drill can query"
0: jdbc:drill:drillbit=localhost:31011>
0: jdbc:drill:drillbit=localhost:31011> !quit
Error: Failure in connecting to Drill:
org.apache.drill.exec.rpc.ChannelClosedException: Channel closed /
127.0.0.1:51879 <--> localhost/127.0.0.1:31011. (state=,code=0)
Error: Failure in connecting to Drill:
org.apache.drill.exec.rpc.ChannelClosedException: Channel closed /
127.0.0.1:51880 <--> localhost/127.0.0.1:31011. (state=,code=0)

Re: [DISCUSS] sqlline upgrade

Posted by Arina Yelchiyeva <ar...@gmail.com>.
@John Omernik <jo...@omernik.com>
if I understood you correctly, new options were going to be added in
existing scripts, so users would have been calling, for example,
`drill-embedded` as usual.

Based on the feedback before moving to the new Sqlline version we would
expect the following to be fixed:
1. Customization in sqlline (
https://github.com/julianhyde/sqlline/issues/106).
2. Upgrade to jline3 (https://github.com/julianhyde/sqlline/issues/73)
[took a quick look, this one would require some re-write in sqlline,
packages, interfaces etc have changed]

@Parth Chandra <pa...@apache.org>
could you please give an example about
{quote}
While we are at it, we could fix the (very annoying) behavior of SQLLine
where it tries to disconnect from the database even after the connect call
failed.
{quote}

I have updated https://issues.apache.org/jira/browse/DRILL-3853 with
relevant information.

Kind regards,
Arina



On Tue, Aug 14, 2018 at 2:14 AM Parth Chandra <pa...@apache.org> wrote:

> #3 was considered a bit of a requirement when it was done. Having SQLLine
> show a different version from that of Drill caused confusion among users.
> #4 seems another usability issue. I would feel less confident in a product
> whose command line tool shows me commands that are not supported.
> Also you will lose the somewhat amusing Drill quotes.
>
> So what is in the latest release of SQLLine that we do not have in the
> Drill version?  (Not much from what I can see).
>
> It would be nice to externalize the changes made in the Drill version and
> submit the changes back to SQLLine.
> We could move the options supported, the default startup options, the
> product version, and the startup quotes to an external resource file that
> is optionally passed to SQLLine at startup.
> While we are at it, we could fix the (very annoying) behavior of SQLLine
> where it tries to disconnect from the database even after the connect call
> failed.
>
> Note that SQLLine is not actively being updated by a team like many other
> open source projects are, so if we want scrolling thru multi line sql
> statements, then we probably should do it ourselves. (Probably needs an
> update to JLine 3.0.2 or newer. see :
> https://github.com/jline/jline3/issues/36)
>
>
>
>
> On Mon, Aug 13, 2018 at 4:00 PM, Boaz Ben-Zvi <bo...@apache.org> wrote:
>
> > supports scrolling through multi-line SQL statements as single snippets
> in
> >>> history
> >>>
> >>
> >   I opened an issue (#73) for that back in April (
> > https://github.com/julianhyde/sqlline/issues/73 ), but no progress so
> > far....
> >
> >
> >
> > On 8/13/18 10:15 AM, Abhishek Girish wrote:
> >
> >> +1. Need to try out (2) to understand it's impact on usability. Okay
> with
> >> (3). Not sure of consequences of (4) - what will happen to options Drill
> >> doesn't support?
> >>
> >> Also, do we know if the latest sqlline supports scrolling through
> >> multi-line SQL statements as single snippets in history?
> >>
> >> On Mon, Aug 13, 2018 at 10:08 AM Arina Yelchiyeva <
> >> arina.yelchiyeva@gmail.com> wrote:
> >>
> >> Hi all,
> >>>
> >>> currently Apache Drill is using custom version of Sqlline [1]. It has
> >>> some
> >>> custom fixes, the importance of which I propose to discuss.
> >>>
> >>> *1. Isolation.*
> >>> Drill supports TRANSACTION_NONE only, default in Sqlline
> >>> is TRANSACTION_REPEATABLE_READ. Apparently the was not possibility to
> >>> override the default or by any other reason, in custom version setting
> >>> transaction is commented out. After upgrade to the latest version,
> during
> >>> connection Drill errors that default transaction level is not
> acceptable
> >>> but this can be easily fixed by passing arguments to Sqlline to change
> >>> the
> >>> defaults. Example will be provided below.
> >>>
> >>> *2.  Resizing of output.*
> >>> After upgrade to the latest version, output is weirdly resized, custom
> >>> version has ResizingRowsProvider which fixed this issue but now this
> can
> >>> be
> >>> easily fixed by passing incremental=false when calling Sqlline.
> >>>
> >>> Example for points 1 and 2:
> >>> CMD="$JAVA $SHELL_OPTS -cp $CP sqlline.SqlLine -d
> >>> org.apache.drill.jdbc.Driver --maxWidth=10000*
> >>> --isolation=TRANSACTION_NONE
> >>> --incremental=false*"
> >>>
> >>> I haven't noticed any other issues with Sqlline that might regress
> after
> >>> the upgrade. If I have missed something else, please feel free to
> correct
> >>> me.
> >>>
> >>> *3. Output of Drill version at start up.*
> >>> Now:
> >>> *apache drill 1.15.0-SNAPSHOT *
> >>> *"got drill?"*
> >>>
> >>> After the upgrade:
> >>> *sqlline version 1.4.0*
> >>> *0: jdbc:drill:zk=local>*
> >>>
> >>> *4. Options that Drill did not support were commented out, so they are
> >>> not
> >>> displayed in help menu.*
> >>>
> >>> If we upgrade, we'll lose the last two enhancements, though I don't
> think
> >>> they are crucial. Other projects like Apache Phoenix are doing fine
> >>> without
> >>> them. Plus I think it's quite obvious why moving from custom version
> is a
> >>> good choice.
> >>>
> >>> Any thoughts?
> >>>
> >>> [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
> >>> com_mapr_sqlline_commits_1.1.9-2Ddrill-2Dr7&d=DwIBaQ&c=cskdk
> >>> SMqhcnjZxdQVpwTXg&r=EqulKDxxEDCX6zbp1AZAa1-iAPQGgCioAqgDp7DE
> >>> 2BU&m=IOnXhPFq5KW53jZWUtI3T9Ch5ywWk4apFyywnzcJRKg&s=uO5-3iox
> >>> zSHMH2fnsB_O-FSpT8Y0FwD24DCbbBMkupg&e=
> >>>
> >>> Kind regards,
> >>> Arina
> >>>
> >>>
> >
>

Re: [DISCUSS] sqlline upgrade

Posted by Parth Chandra <pa...@apache.org>.
#3 was considered a bit of a requirement when it was done. Having SQLLine
show a different version from that of Drill caused confusion among users.
#4 seems another usability issue. I would feel less confident in a product
whose command line tool shows me commands that are not supported.
Also you will lose the somewhat amusing Drill quotes.

So what is in the latest release of SQLLine that we do not have in the
Drill version?  (Not much from what I can see).

It would be nice to externalize the changes made in the Drill version and
submit the changes back to SQLLine.
We could move the options supported, the default startup options, the
product version, and the startup quotes to an external resource file that
is optionally passed to SQLLine at startup.
While we are at it, we could fix the (very annoying) behavior of SQLLine
where it tries to disconnect from the database even after the connect call
failed.

Note that SQLLine is not actively being updated by a team like many other
open source projects are, so if we want scrolling thru multi line sql
statements, then we probably should do it ourselves. (Probably needs an
update to JLine 3.0.2 or newer. see :
https://github.com/jline/jline3/issues/36)




On Mon, Aug 13, 2018 at 4:00 PM, Boaz Ben-Zvi <bo...@apache.org> wrote:

> supports scrolling through multi-line SQL statements as single snippets in
>>> history
>>>
>>
>   I opened an issue (#73) for that back in April (
> https://github.com/julianhyde/sqlline/issues/73 ), but no progress so
> far....
>
>
>
> On 8/13/18 10:15 AM, Abhishek Girish wrote:
>
>> +1. Need to try out (2) to understand it's impact on usability. Okay with
>> (3). Not sure of consequences of (4) - what will happen to options Drill
>> doesn't support?
>>
>> Also, do we know if the latest sqlline supports scrolling through
>> multi-line SQL statements as single snippets in history?
>>
>> On Mon, Aug 13, 2018 at 10:08 AM Arina Yelchiyeva <
>> arina.yelchiyeva@gmail.com> wrote:
>>
>> Hi all,
>>>
>>> currently Apache Drill is using custom version of Sqlline [1]. It has
>>> some
>>> custom fixes, the importance of which I propose to discuss.
>>>
>>> *1. Isolation.*
>>> Drill supports TRANSACTION_NONE only, default in Sqlline
>>> is TRANSACTION_REPEATABLE_READ. Apparently the was not possibility to
>>> override the default or by any other reason, in custom version setting
>>> transaction is commented out. After upgrade to the latest version, during
>>> connection Drill errors that default transaction level is not acceptable
>>> but this can be easily fixed by passing arguments to Sqlline to change
>>> the
>>> defaults. Example will be provided below.
>>>
>>> *2.  Resizing of output.*
>>> After upgrade to the latest version, output is weirdly resized, custom
>>> version has ResizingRowsProvider which fixed this issue but now this can
>>> be
>>> easily fixed by passing incremental=false when calling Sqlline.
>>>
>>> Example for points 1 and 2:
>>> CMD="$JAVA $SHELL_OPTS -cp $CP sqlline.SqlLine -d
>>> org.apache.drill.jdbc.Driver --maxWidth=10000*
>>> --isolation=TRANSACTION_NONE
>>> --incremental=false*"
>>>
>>> I haven't noticed any other issues with Sqlline that might regress after
>>> the upgrade. If I have missed something else, please feel free to correct
>>> me.
>>>
>>> *3. Output of Drill version at start up.*
>>> Now:
>>> *apache drill 1.15.0-SNAPSHOT *
>>> *"got drill?"*
>>>
>>> After the upgrade:
>>> *sqlline version 1.4.0*
>>> *0: jdbc:drill:zk=local>*
>>>
>>> *4. Options that Drill did not support were commented out, so they are
>>> not
>>> displayed in help menu.*
>>>
>>> If we upgrade, we'll lose the last two enhancements, though I don't think
>>> they are crucial. Other projects like Apache Phoenix are doing fine
>>> without
>>> them. Plus I think it's quite obvious why moving from custom version is a
>>> good choice.
>>>
>>> Any thoughts?
>>>
>>> [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
>>> com_mapr_sqlline_commits_1.1.9-2Ddrill-2Dr7&d=DwIBaQ&c=cskdk
>>> SMqhcnjZxdQVpwTXg&r=EqulKDxxEDCX6zbp1AZAa1-iAPQGgCioAqgDp7DE
>>> 2BU&m=IOnXhPFq5KW53jZWUtI3T9Ch5ywWk4apFyywnzcJRKg&s=uO5-3iox
>>> zSHMH2fnsB_O-FSpT8Y0FwD24DCbbBMkupg&e=
>>>
>>> Kind regards,
>>> Arina
>>>
>>>
>

Re: [DISCUSS] sqlline upgrade

Posted by Boaz Ben-Zvi <bo...@apache.org>.
>> supports scrolling through multi-line SQL statements as single snippets in history

   I opened an issue (#73) for that back in April ( 
https://github.com/julianhyde/sqlline/issues/73 ), but no progress so 
far....


On 8/13/18 10:15 AM, Abhishek Girish wrote:
> +1. Need to try out (2) to understand it's impact on usability. Okay with
> (3). Not sure of consequences of (4) - what will happen to options Drill
> doesn't support?
>
> Also, do we know if the latest sqlline supports scrolling through
> multi-line SQL statements as single snippets in history?
>
> On Mon, Aug 13, 2018 at 10:08 AM Arina Yelchiyeva <
> arina.yelchiyeva@gmail.com> wrote:
>
>> Hi all,
>>
>> currently Apache Drill is using custom version of Sqlline [1]. It has some
>> custom fixes, the importance of which I propose to discuss.
>>
>> *1. Isolation.*
>> Drill supports TRANSACTION_NONE only, default in Sqlline
>> is TRANSACTION_REPEATABLE_READ. Apparently the was not possibility to
>> override the default or by any other reason, in custom version setting
>> transaction is commented out. After upgrade to the latest version, during
>> connection Drill errors that default transaction level is not acceptable
>> but this can be easily fixed by passing arguments to Sqlline to change the
>> defaults. Example will be provided below.
>>
>> *2.  Resizing of output.*
>> After upgrade to the latest version, output is weirdly resized, custom
>> version has ResizingRowsProvider which fixed this issue but now this can be
>> easily fixed by passing incremental=false when calling Sqlline.
>>
>> Example for points 1 and 2:
>> CMD="$JAVA $SHELL_OPTS -cp $CP sqlline.SqlLine -d
>> org.apache.drill.jdbc.Driver --maxWidth=10000* --isolation=TRANSACTION_NONE
>> --incremental=false*"
>>
>> I haven't noticed any other issues with Sqlline that might regress after
>> the upgrade. If I have missed something else, please feel free to correct
>> me.
>>
>> *3. Output of Drill version at start up.*
>> Now:
>> *apache drill 1.15.0-SNAPSHOT *
>> *"got drill?"*
>>
>> After the upgrade:
>> *sqlline version 1.4.0*
>> *0: jdbc:drill:zk=local>*
>>
>> *4. Options that Drill did not support were commented out, so they are not
>> displayed in help menu.*
>>
>> If we upgrade, we'll lose the last two enhancements, though I don't think
>> they are crucial. Other projects like Apache Phoenix are doing fine without
>> them. Plus I think it's quite obvious why moving from custom version is a
>> good choice.
>>
>> Any thoughts?
>>
>> [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mapr_sqlline_commits_1.1.9-2Ddrill-2Dr7&d=DwIBaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=EqulKDxxEDCX6zbp1AZAa1-iAPQGgCioAqgDp7DE2BU&m=IOnXhPFq5KW53jZWUtI3T9Ch5ywWk4apFyywnzcJRKg&s=uO5-3ioxzSHMH2fnsB_O-FSpT8Y0FwD24DCbbBMkupg&e=
>>
>> Kind regards,
>> Arina
>>


Re: [DISCUSS] sqlline upgrade

Posted by Abhishek Girish <ag...@apache.org>.
+1. Need to try out (2) to understand it's impact on usability. Okay with
(3). Not sure of consequences of (4) - what will happen to options Drill
doesn't support?

Also, do we know if the latest sqlline supports scrolling through
multi-line SQL statements as single snippets in history?

On Mon, Aug 13, 2018 at 10:08 AM Arina Yelchiyeva <
arina.yelchiyeva@gmail.com> wrote:

> Hi all,
>
> currently Apache Drill is using custom version of Sqlline [1]. It has some
> custom fixes, the importance of which I propose to discuss.
>
> *1. Isolation.*
> Drill supports TRANSACTION_NONE only, default in Sqlline
> is TRANSACTION_REPEATABLE_READ. Apparently the was not possibility to
> override the default or by any other reason, in custom version setting
> transaction is commented out. After upgrade to the latest version, during
> connection Drill errors that default transaction level is not acceptable
> but this can be easily fixed by passing arguments to Sqlline to change the
> defaults. Example will be provided below.
>
> *2.  Resizing of output.*
> After upgrade to the latest version, output is weirdly resized, custom
> version has ResizingRowsProvider which fixed this issue but now this can be
> easily fixed by passing incremental=false when calling Sqlline.
>
> Example for points 1 and 2:
> CMD="$JAVA $SHELL_OPTS -cp $CP sqlline.SqlLine -d
> org.apache.drill.jdbc.Driver --maxWidth=10000* --isolation=TRANSACTION_NONE
> --incremental=false*"
>
> I haven't noticed any other issues with Sqlline that might regress after
> the upgrade. If I have missed something else, please feel free to correct
> me.
>
> *3. Output of Drill version at start up.*
> Now:
> *apache drill 1.15.0-SNAPSHOT *
> *"got drill?"*
>
> After the upgrade:
> *sqlline version 1.4.0*
> *0: jdbc:drill:zk=local>*
>
> *4. Options that Drill did not support were commented out, so they are not
> displayed in help menu.*
>
> If we upgrade, we'll lose the last two enhancements, though I don't think
> they are crucial. Other projects like Apache Phoenix are doing fine without
> them. Plus I think it's quite obvious why moving from custom version is a
> good choice.
>
> Any thoughts?
>
> [1] https://github.com/mapr/sqlline/commits/1.1.9-drill-r7
>
> Kind regards,
> Arina
>

Re: [DISCUSS] sqlline upgrade

Posted by John Omernik <jo...@omernik.com>.
Since we are "shipping" sqlline, can we include a sqline shell script that
puts the command line arguments we need, and then include another that
people can use if they want to use without our arguments? This way anyone
who is used to just "sqlline" doesn't have to change, it's the "new"
functionality that has to change...

On Mon, Aug 13, 2018 at 12:08 PM, Arina Yelchiyeva <
arina.yelchiyeva@gmail.com> wrote:

> Hi all,
>
> currently Apache Drill is using custom version of Sqlline [1]. It has some
> custom fixes, the importance of which I propose to discuss.
>
> *1. Isolation.*
> Drill supports TRANSACTION_NONE only, default in Sqlline
> is TRANSACTION_REPEATABLE_READ. Apparently the was not possibility to
> override the default or by any other reason, in custom version setting
> transaction is commented out. After upgrade to the latest version, during
> connection Drill errors that default transaction level is not acceptable
> but this can be easily fixed by passing arguments to Sqlline to change the
> defaults. Example will be provided below.
>
> *2.  Resizing of output.*
> After upgrade to the latest version, output is weirdly resized, custom
> version has ResizingRowsProvider which fixed this issue but now this can be
> easily fixed by passing incremental=false when calling Sqlline.
>
> Example for points 1 and 2:
> CMD="$JAVA $SHELL_OPTS -cp $CP sqlline.SqlLine -d
> org.apache.drill.jdbc.Driver --maxWidth=10000* --isolation=TRANSACTION_NONE
> --incremental=false*"
>
> I haven't noticed any other issues with Sqlline that might regress after
> the upgrade. If I have missed something else, please feel free to correct
> me.
>
> *3. Output of Drill version at start up.*
> Now:
> *apache drill 1.15.0-SNAPSHOT *
> *"got drill?"*
>
> After the upgrade:
> *sqlline version 1.4.0*
> *0: jdbc:drill:zk=local>*
>
> *4. Options that Drill did not support were commented out, so they are not
> displayed in help menu.*
>
> If we upgrade, we'll lose the last two enhancements, though I don't think
> they are crucial. Other projects like Apache Phoenix are doing fine without
> them. Plus I think it's quite obvious why moving from custom version is a
> good choice.
>
> Any thoughts?
>
> [1] https://github.com/mapr/sqlline/commits/1.1.9-drill-r7
>
> Kind regards,
> Arina
>