microsoft / go-sqlcmd

The new sqlcmd, CLI for SQL Server and Azure SQL (winget install sqlcmd / sqlcmd create mssql / sqlcmd open ads)
https://learn.microsoft.com/sql/tools/sqlcmd/go-sqlcmd-utility
MIT License
323 stars 56 forks source link

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

Open daviewales opened 7 months ago

daviewales commented 7 months ago

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?

michaelstack commented 6 months ago

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

shueybubbles commented 6 months ago

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

Coding-Journey commented 5 months ago

+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 commented 4 months ago

@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 commented 3 months ago

+1

azinsharaf commented 3 months ago

+1

AnhQuanTrl commented 2 months ago

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 commented 2 months ago

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