Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider using go-prompt to enable a nice interactive prompt like mssql-cli #481

Open
daviewales opened this issue Nov 23, 2023 · 8 comments
Labels
enhancement New feature or request
Milestone

Comments

@daviewales
Copy link

mssql-cli has a nice prompt and nice table output thanks to the use of the following Python libraries:

mssql-cli is on the deprecation track, and suggests that go-sqlcmd is the future.
It would be nice if go-sqlcmd copied some of the nice usability features from mssql-cli.

There are existing Go libraries inspired by Python Prompt Toolkit and Tabulate which may help improve the go-sqlcmd interface similar to mssql-cli:

Tabulate inspired libraries:

Non-tabulate-inspired table library:

Python Prompt Toolkit inspired library:

Would go-sqlcmd consider implementing some of these usability features?

@dlevy-msft dlevy-msft added the enhancement New feature or request label Nov 28, 2023
@dlevy-msft dlevy-msft added this to the Backlog milestone Nov 28, 2023
@michaelstack
Copy link

I would also like to see go-sqlcmd implement more of the functionality that is available in mssql-cli and the other tools in the dbcli family (https://github.com/dbcli).

  • Tab completion of table names and other object names
  • show long output in a user-configurable pager
  • ability to transpose records like postgres psql's \x command
  • in interactive sessions, have a setting to invoke a statement without having to put GO on a newline

@shueybubbles
Copy link
Collaborator

thx for the input!
Regarding transpose records is that similar to sqlcmd -F vertical ?

@Coding-Journey
Copy link

+1 to this request, very happy using mssql-cli to discover and walk through tables, would hate to lose that interactive element of being able to do this in a terminal

@michaelstack
Copy link

@shueybubbles

Regarding transpose records is that similar to sqlcmd -F vertical ?

Yes, and it is also like these:

:setvar SQLCMDFORMAT vertical
:setvar SQLCMDFORMAT horizontal

The advantage of psql's \x command is that it is much easier to type. Plus the one single command toggles the setting, as opposed to two separate commands.

Psql also has \x auto, which will automatically switch based on the width of the records selected.

This automatic behaviour is included in pgcli under the auto_expand setting:

https://github.com/dbcli/pgcli/blob/96eb37fd1989ec8fd86150f20053abd03f50e7a4/pgcli/pgclirc#L51

Looks like it was included in mssql-cli also with the expand setting:

https://github.com/dbcli/mssql-cli/blob/67a3a4364383d11776bb0a397ceae7bc19200e41/mssqlcli/mssqlclirc#L29

@pietdaniel
Copy link

+1

1 similar comment
@azinsharaf
Copy link

+1

@AnhQuanTrl
Copy link

I think this is not ready to replace mssql-cli yet if tab-completion is not supported. This capabilities make using DB CLI tool a comparable alternative to full-fleshed DB tool such as DBeaver.

@azinsharaf
Copy link

i checked usql cli and it had some tab completion capabilities. i haven't spent enough time to check it throughly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

8 participants