julianhyde / sqlline

Shell for issuing SQL to relational databases via JDBC
BSD 3-Clause "New" or "Revised" License
614 stars 145 forks source link

Unable to see instruction to quit or read more when run !manual through sqlline CLI #264

Open swaroopak opened 5 years ago

swaroopak commented 5 years ago

Observed this problem while running !manual command from sqlline CLI. As per the code https://github.com/julianhyde/sqlline/commit/f3263e95c4c981515edc02a730d472d8d6d043cd#diff-4151e9ed27b575a9e975057af55c5378R1736 , it should display the following message "[ Hit "enter" for more ("q" to exit) ]" but it is not there on the terminal.

snuyanzin commented 5 years ago

Indeed it does not. This code works only on Windows OS. In case of Linux/Mac there will be used jline3's less implementation which is much better. Unfortunately it does not work well under Windows that is why the old code is used there e.g. there are several issues while Windows https://github.com/jline/jline3/issues/344, https://github.com/jline/jline3/issues/304

snuyanzin commented 5 years ago

By the way here it is a comment in the code related to the topic https://github.com/julianhyde/sqlline/blob/dc969a28f009b18a9dfb1026f96cbec0450338da/src/main/java/sqlline/Commands.java#L1704-L1709

swaroopak commented 5 years ago

Thanks! How do I test my changes https://github.com/julianhyde/sqlline/pull/263 with CLI that uses same function call?

snuyanzin commented 5 years ago

Could you please explain a bit more what are going to test that is not covered by tests from the mentioned issue?

swaroopak commented 5 years ago

I wanted to see things are working fine and as expected when I run DROP/DELETE command from SQLline and confirm flag set to true. #263 I am using Mac/Linux and currently, as you mentioned because of the OS related settings, I don't see any confirmation step there. @snuyanzin

swaroopak commented 5 years ago

Also, is this fix in the roadmap? @snuyanzin

julianhyde commented 5 years ago

There is no roadmap. People contribute PRs, we do our best to review and commit them if they are suitable. There are also no salaried developers on this project.

snuyanzin commented 5 years ago

Also, is this fix in the roadmap? @snuyanzin

To be honest I'm not sure if there is a reason to fix it because in case of !manual there is emulation of less command (sqlline's "sillyLess" for Windows and jline's for Linux/Mac). And there is no message "[ Hit "enter" for more ("q" to exit) ]" in case of less while 'q' is a standard key to exit.

I am using Mac/Linux and currently, as you mentioned because of the OS related settings, I don't see any confirmation step there.

I think there could be added a way to specify if a symbols should be printed or not after key pressed while confirmation step required. If it matches your expectations I would suggest to rename the issue.