nushell/crates
Reilly Wood e8a55aa647
Overhaul schema command, remove database name (#7344)
This PR changes the `schema` command for viewing the schema of a SQLite
database file. It removes 1 level of nesting (intended to handle
multiple databases in the same connection) that I believe is
unnecessary.

### Before

![image](https://user-images.githubusercontent.com/26268125/205467643-05df0f64-bc8f-4135-9ff1-f978cc7a12bd.png)

### After

![image](https://user-images.githubusercontent.com/26268125/205467655-c4783184-9bde-46e2-9316-0f06acd1abe1.png)

## Rationale

A SQLite database connection can technically be associated with multiple
non-temporary databases using [the ATTACH DATABASE
command](https://www.sqlite.org/lang_attach.html). But it's not possible
to do that _in the context of Nushell_, and so I believe that there is
no benefit to displaying the schema as if there could be multiple
databases.

I initially raised this concern back in April, but we decided to keep
the database nesting because at the time we were still looking into more
generalized database functionality (i.e. not just SQLite). I believe
that rationale no longer applies.

Also, the existing code would not have worked correctly even if a
connection had multiple databases; for every database, it was looking up
tables without filtering them by database:

6295b20545/crates/nu-command/src/database/values/sqlite.rs (L104-L118)

## Future Work

I'd like to add information on views+triggers to the `schema` output.
I'm also working on making it possible to `ctrl+c` reading from a
database (which is turning into a massive yak shave).
2022-12-03 18:16:57 -08:00
..
nu_plugin_custom_values bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu_plugin_example bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu_plugin_gstat bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu_plugin_inc bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu_plugin_python Further edits to help messages (#6913) 2022-10-26 09:36:42 -07:00
nu_plugin_query bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu-cli Protocol: debug_assert!() Span to reflect a valid slice (#6806) 2022-12-03 11:44:12 +02:00
nu-color-config [MVP][WIP] less like pager (#6984) 2022-12-01 09:32:10 -06:00
nu-command Overhaul schema command, remove database name (#7344) 2022-12-03 18:16:57 -08:00
nu-engine Protocol: debug_assert!() Span to reflect a valid slice (#6806) 2022-12-03 11:44:12 +02:00
nu-explore nu-explore/ A few fixes. (#7334) 2022-12-03 00:12:33 +02:00
nu-glob Remove unused dev-dependencies (#7285) 2022-12-01 11:53:24 +01:00
nu-json Remove unused dev-dependencies (#7285) 2022-12-01 11:53:24 +01:00
nu-parser Protocol: debug_assert!() Span to reflect a valid slice (#6806) 2022-12-03 11:44:12 +02:00
nu-path bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu-plugin Protocol: debug_assert!() Span to reflect a valid slice (#6806) 2022-12-03 11:44:12 +02:00
nu-pretty-hex bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu-protocol Protocol: debug_assert!() Span to reflect a valid slice (#6806) 2022-12-03 11:44:12 +02:00
nu-system bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu-table [MVP][WIP] less like pager (#6984) 2022-12-01 09:32:10 -06:00
nu-term-grid bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu-test-support bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
nu-utils Rename $env.config.explore_config to $env.config.explore (for consistency with $env.config.ls, $env.config.table etc.) (#7317) 2022-12-02 01:42:18 -05:00
old bump to dev release v0.72.1 (#7281) 2022-11-30 16:06:22 -06:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.