From c7dce435608e4f300f547cc46732855a823aeeed Mon Sep 17 00:00:00 2001 From: Neil Le Date: Thu, 21 Feb 2019 10:19:10 -0800 Subject: [PATCH 01/13] Documenting for YSQL commands. --- docs/content/latest/api/ysql/_index.md | 6 +- .../latest/api/ysql/ddl_create_user.md | 64 +++++++++++++++++++ 2 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 docs/content/latest/api/ysql/ddl_create_user.md diff --git a/docs/content/latest/api/ysql/_index.md b/docs/content/latest/api/ysql/_index.md index b704c15cb8ef..4f0259356096 100644 --- a/docs/content/latest/api/ysql/_index.md +++ b/docs/content/latest/api/ysql/_index.md @@ -71,9 +71,9 @@ Statement | Description | [`DROP DATABASE`](ddl_drop_database) | Delete a database and associated objects | [`DROP TABLE`](ddl_drop_table) | Delete a table from a database | [`CREATE VIEW`](ddl_create_view) | Create a new view | -[`CREATE USER`](permissions) | Create a new user/role | -[`GRANT`](permissions) | Grant permissions| -[`REVOKE`](permissions) | Revoke permissions | +[`CREATE USER`](ddl_create_user) | Create a new user/role | +[//]: # [`GRANT`](permissions) | Grant permissions| +[//]: # [`REVOKE`](permissions) | Revoke permissions | ## DML Statements Data manipulation language (DML) statements read from and write to the existing database objects. Currently, YugaByte DB implicitly commits any updates by DML statements. diff --git a/docs/content/latest/api/ysql/ddl_create_user.md b/docs/content/latest/api/ysql/ddl_create_user.md new file mode 100644 index 000000000000..a98064b88de8 --- /dev/null +++ b/docs/content/latest/api/ysql/ddl_create_user.md @@ -0,0 +1,64 @@ +--- +title: Roles and Permissions +description: Roles and Permissions +summary: Roles and Permissions +menu: + latest: + identifier: api-postgresql-permissions + parent: api-postgresql + weight: 3500 +aliases: + - /latest/api/postgresql/permissions + - /latest/api/ysql/permissions +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +YugaByte supports the `CREATE USER` and limited `GRANT`/`REVOKE` commands to create new roles and set/remove permissions. + +## Syntax + +### Diagrams + +#### create_user +CREATEUSERname + +### Grammar + +``` +create_user ::= CREATE USER name ; +``` + +- Not all GRANT and REVOKE options are supported yet in YSQL, but the following GRANT and REVOKE statements are supported in YSQL. +``` +postgres=# GRANT ALL ON DATABASE name TO name; +postgres=# REVOKE ALL ON DATABASE name FROM name; +``` + +- For the list of possible `privileges` or `privilege_target`s see [this](https://www.postgresql.org/docs/9.0/static/sql-grant.html) page. + +## Examples + +- Create a sample role. + +```sql +postgres=# CREATE USER John; +``` + +- Grant John all permissions on the `postgres` database. + +```sql +postgres=# GRANT ALL ON DATABASE postgres TO John; +``` + +- Remove John's permissions from the `postgres` database. + +```sql +postgres=# REVOKE ALL ON DATABASE postgres FROM John; +``` + +## See Also + +[Other PostgreSQL Statements](..) \ No newline at end of file From d9532c673021a3cbfcd2d37ba8f85600b500ac3e Mon Sep 17 00:00:00 2001 From: Neil Le Date: Fri, 22 Feb 2019 13:23:08 -0800 Subject: [PATCH 02/13] Reorganize files --- docs/content/latest/api/ysql/_index.md | 76 +- .../latest/api/ysql/commands/_index.md | 46 + .../{ => commands}/ddl_create_database.md | 7 +- .../ysql/{ => commands}/ddl_create_table.md | 8 +- .../ysql/{ => commands}/ddl_create_user.md | 13 +- .../ysql/{ => commands}/ddl_create_view.md | 7 +- .../ysql/{ => commands}/ddl_drop_database.md | 11 +- .../api/ysql/{ => commands}/ddl_drop_table.md | 7 +- .../api/ysql/{ => commands}/dml_insert.md | 7 +- .../api/ysql/{ => commands}/dml_select.md | 7 +- .../latest/api/ysql/{ => commands}/explain.md | 7 +- .../api/ysql/{ => commands}/permissions.md | 7 +- .../ysql/{ => commands}/prepare_execute.md | 7 +- .../api/ysql/{ => commands}/transactions.md | 7 +- .../latest/api/ysql/datatypes/_index.md | 29 + .../api/ysql/{ => datatypes}/type_int.md | 7 +- .../api/ysql/{ => datatypes}/type_number.md | 7 +- .../api/ysql/{ => datatypes}/type_text.md | 7 +- docs/content/latest/api/ysql/ddl.md | 30 - docs/content/latest/api/ysql/dml.md | 24 - docs/package-lock.json | 2800 +++++++++-------- docs/package.json | 1 + 22 files changed, 1563 insertions(+), 1559 deletions(-) create mode 100644 docs/content/latest/api/ysql/commands/_index.md rename docs/content/latest/api/ysql/{ => commands}/ddl_create_database.md (88%) rename docs/content/latest/api/ysql/{ => commands}/ddl_create_table.md (98%) rename docs/content/latest/api/ysql/{ => commands}/ddl_create_user.md (87%) rename docs/content/latest/api/ysql/{ => commands}/ddl_create_view.md (95%) rename docs/content/latest/api/ysql/{ => commands}/ddl_drop_database.md (80%) rename docs/content/latest/api/ysql/{ => commands}/ddl_drop_table.md (89%) rename docs/content/latest/api/ysql/{ => commands}/dml_insert.md (96%) rename docs/content/latest/api/ysql/{ => commands}/dml_select.md (98%) rename docs/content/latest/api/ysql/{ => commands}/explain.md (98%) rename docs/content/latest/api/ysql/{ => commands}/permissions.md (97%) rename docs/content/latest/api/ysql/{ => commands}/prepare_execute.md (97%) rename docs/content/latest/api/ysql/{ => commands}/transactions.md (98%) create mode 100644 docs/content/latest/api/ysql/datatypes/_index.md rename docs/content/latest/api/ysql/{ => datatypes}/type_int.md (90%) rename docs/content/latest/api/ysql/{ => datatypes}/type_number.md (92%) rename docs/content/latest/api/ysql/{ => datatypes}/type_text.md (85%) delete mode 100644 docs/content/latest/api/ysql/ddl.md delete mode 100644 docs/content/latest/api/ysql/dml.md diff --git a/docs/content/latest/api/ysql/_index.md b/docs/content/latest/api/ysql/_index.md index 4f0259356096..d858345c22f7 100644 --- a/docs/content/latest/api/ysql/_index.md +++ b/docs/content/latest/api/ysql/_index.md @@ -5,14 +5,13 @@ description: YugaByte Structured Query Language (YSQL) [Beta] summary: Reference for the YSQL API image: /images/section_icons/api/pgsql.png beta: /faq/product/#what-is-the-definition-of-the-beta-feature-tag -aliases: - - /latest/api/postgresql/ - - /latest/api/ysql/ menu: latest: - identifier: api-postgresql + identifier: api-ysql parent: api - weight: 1300 + weight: 3000 +aliases: + - /latest/api/ysql/ isTocNested: true showAsideToc: true --- @@ -20,14 +19,15 @@ showAsideToc: true ## Introduction YSQL is a distributed SQL API compatible with PostgreSQL. It supports the following features. -- Data definition language (DDL) statements. -- Data manipulation language (DML) statements. -- Builtin functions and Expression operators. -- Primitive user-defined datatypes. +- Data definition language (DDL) statements are provided to define a database structure, modify it, and delete it by using CREATE, ALTER, and DROP commands respectively. +- Data manipulation language (DML) statements are provided to modify the contents of a database by using INSERT, UPDATE, DELETE, and SELECT commands. +- Data control language (DCL) statements are provided to protect and prevent it from corruptions by using GRANT and REVOKE commands. +- There are also a host of other commands for different purposes such as system control, transaction control, and performance tuning. +- Builtin datatypes are provided to specify a database object. +- Builtin functions and expression operators are provided for performance purpose as selected data are computed and filtered on server side before being sent to clients. ## Example -The following example illustrates how to use `psql` to connect to YugaByte DB's PostgreSQL API. -It assumes you have [installed YugaByte](../../quick-start/install/) and started a [PostgreSQL-enabled cluster](../../quick-start/test-postgresql/). +The following example illustrates how to use `psql` to connect to YugaByte DB's PostgreSQL-compatible API. It assumes you have [installed YugaByte](../../quick-start/install/) and started a [PostgreSQL-enabled cluster](../../quick-start/test-postgresql/). ```sh $ bin/psql -p 5433 -U postgres @@ -59,59 +59,7 @@ postgres=# select * from sample ORDER BY id DESC; ``` The examples given in the rest of this section assume the cluster is running and `psql` is connected to it as described above. -## DDL Statements -Data definition language (DDL) statements are instructions for the following database operations. - -- Create and drop database objects. - -Statement | Description | -----------|-------------| -[`CREATE DATABASE`](ddl_create_database) | Create a new database | -[`CREATE TABLE`](ddl_create_table) | Create a new table | -[`DROP DATABASE`](ddl_drop_database) | Delete a database and associated objects | -[`DROP TABLE`](ddl_drop_table) | Delete a table from a database | -[`CREATE VIEW`](ddl_create_view) | Create a new view | -[`CREATE USER`](ddl_create_user) | Create a new user/role | -[//]: # [`GRANT`](permissions) | Grant permissions| -[//]: # [`REVOKE`](permissions) | Revoke permissions | - -## DML Statements -Data manipulation language (DML) statements read from and write to the existing database objects. Currently, YugaByte DB implicitly commits any updates by DML statements. - -Statement | Description | -----------|-------------| -[`INSERT`](dml_insert) | Insert rows into a table | -[`SELECT`](dml_select) | Select rows from a table | -[`UPDATE`] | In progress. Update rows in a table | -[`DELETE`] | In progress. Delete rows from a table | - -## Transactions -Statement | Description | -----------|-------------| -[`ABORT` | `ROLLBACK`](transactions) | Rollback a transaction | -[`BEGIN`](transactions) | Start a transaction | -[`END` | `COMMIT`](transactions) | Commit a transaction | - -## Sequences -Statement | Description | -----------|------------| -[`CREATE SEQUENCE`](create_sequence) | Create a new sequence | -[`DROP SEQUENCE`](drop_sequence) | Drop a sequence | -[`nextval(sequence)`](nextval_sequence) | Get the next value in the sequence -[`currval(sequence)`](currval_sequence) | Get the last value returned by the most recent nextval call for the specified sequence -[`lastval()`](lastval_sequence) | Get the last value returned by the most recent nextval call for any sequence - -- `ALTER SEQUENCE` and `setval()` are not supported yet. - -## Other SQL Statements - -Statement | Description | -----------|-------------| -[`EXECUTE`](prepare_execute) | Insert rows into a table | -[`EXPLAIN`](explain) | Insert rows into a table | -[`PREPARE`](prepare_execute) | Select rows from a table | -[`SET`](transactions) | Select rows from a table | -[`SHOW`](transactions) | Select rows from a table | +## SQL Commands ## Expressions PostgreSQL builtin functions and operators are supported. diff --git a/docs/content/latest/api/ysql/commands/_index.md b/docs/content/latest/api/ysql/commands/_index.md new file mode 100644 index 000000000000..b00f7dc77b8a --- /dev/null +++ b/docs/content/latest/api/ysql/commands/_index.md @@ -0,0 +1,46 @@ +--- +title: SQL Commands +description: Overview on PostgreSQL-Compatible Commands +summary: Overview on SQL Commands +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-commands + parent: api-ysql + weight: 3100 +aliases: + - /latest/api/ysql/commands/ +isTocNested: true +showAsideToc: true +--- + +The following table lists all SQL commands that are supported by YugaByte Database. + +| Statement | Description | +|-----------|-------------| +| [`ABORT`|`ROLLBACK`](transactions) | Rollback a transaction | +| [`BEGIN`](transactions) | Start a transaction | +| [`CREATE DATABASE`](ddl_create_database) | Create a new database | +| [`CREATE INDEX`](ddl_create_index) | Create a new index | +| [`CREATE TABLE`](ddl_create_table) | Create a new table | +| [`CREATE USER`](ddl_create_user) | Create a new user/role | +| [`CREATE VIEW`](ddl_create_view) | Create a new view | +| [`DELETE`](dml_delete) | Delete rows from a table | +| [`DROP TABLE`](ddl_drop_table) | Delete a table from a database | +| [`END` | `COMMIT`](transactions) | Commit a transaction | +| [`EXECUTE`](prepare_execute) | Insert rows into a table | +| [`EXPLAIN`](explain) | Insert rows into a table | +| [`INSERT`](dml_insert) | Insert rows into a table | +| [`PREPARE`](prepare_execute) | Select rows from a table | +| [`SELECT`](dml_select) | Select rows from a table | +| [`SET`](transactions) | Select rows from a table | +| [`SHOW`](transactions) | Select rows from a table | +| [`TRUNCATE`](ddl_truncate_table) | Clear all rows from a table | +| [`UPDATE`](dml_update) | Update rows in a table | + + diff --git a/docs/content/latest/api/ysql/ddl_create_database.md b/docs/content/latest/api/ysql/commands/ddl_create_database.md similarity index 88% rename from docs/content/latest/api/ysql/ddl_create_database.md rename to docs/content/latest/api/ysql/commands/ddl_create_database.md index 6673cb4a182d..e781ef5d759c 100644 --- a/docs/content/latest/api/ysql/ddl_create_database.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_database.md @@ -4,11 +4,10 @@ summary: Create a new database description: CREATE DATABASE menu: latest: - identifier: api-postgresql-create-db - parent: api-postgresql-ddl + identifier: api-ysql-commands-create-db + parent: api-ysql-commands aliases: - - /latest/api/postgresql/ddl_create_database - - /latest/api/ysql/ddl_create_database + - /latest/api/ysql/commands/ddl_create_database isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/ddl_create_table.md b/docs/content/latest/api/ysql/commands/ddl_create_table.md similarity index 98% rename from docs/content/latest/api/ysql/ddl_create_table.md rename to docs/content/latest/api/ysql/commands/ddl_create_table.md index cdc961383748..bf42cd595d05 100644 --- a/docs/content/latest/api/ysql/ddl_create_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_table.md @@ -1,14 +1,14 @@ --- title: CREATE TABLE +linkTitle: CREATE TABLE summary: Create a new table in a database description: CREATE TABLE menu: latest: - identifier: api-postgresql-create-table - parent: api-postgresql-ddl + identifier: api-ysql-commands-create-table + parent: api-ysql-commands aliases: - - /latest/api/postgresql/ddl_create_table - - /latest/api/ysql/ddl_create_table + - /latest/api/ysql/commands/ddl_create_table isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/ddl_create_user.md b/docs/content/latest/api/ysql/commands/ddl_create_user.md similarity index 87% rename from docs/content/latest/api/ysql/ddl_create_user.md rename to docs/content/latest/api/ysql/commands/ddl_create_user.md index a98064b88de8..e1f93a0e1f05 100644 --- a/docs/content/latest/api/ysql/ddl_create_user.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_user.md @@ -1,15 +1,14 @@ --- -title: Roles and Permissions -description: Roles and Permissions -summary: Roles and Permissions +title: Roles +description: Users and roles +summary: Users and roles menu: latest: - identifier: api-postgresql-permissions - parent: api-postgresql + identifier: api-ysql-commands-create-users + parent: api-ysql-commands weight: 3500 aliases: - - /latest/api/postgresql/permissions - - /latest/api/ysql/permissions + - /latest/api/ysql/commands/permissions isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/ddl_create_view.md b/docs/content/latest/api/ysql/commands/ddl_create_view.md similarity index 95% rename from docs/content/latest/api/ysql/ddl_create_view.md rename to docs/content/latest/api/ysql/commands/ddl_create_view.md index 6a85cc9d7b1d..567b490b1803 100644 --- a/docs/content/latest/api/ysql/ddl_create_view.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_view.md @@ -4,11 +4,10 @@ summary: Create a new view in a database description: CREATE VIEW menu: latest: - identifier: api-postgresql-create-view - parent: api-postgresql-ddl + identifier: api-ysql-commands-create-view + parent: api-ysql-commands aliases: - - /latest/api/postgresql/ddl_create_view - - /latest/api/ysql/ddl_create_view + - /latest/api/ysql/commands/ddl_create_view isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/ddl_drop_database.md b/docs/content/latest/api/ysql/commands/ddl_drop_database.md similarity index 80% rename from docs/content/latest/api/ysql/ddl_drop_database.md rename to docs/content/latest/api/ysql/commands/ddl_drop_database.md index 5ed581238a4b..d3e1aa8ada9f 100644 --- a/docs/content/latest/api/ysql/ddl_drop_database.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_database.md @@ -4,17 +4,16 @@ summary: Removes a database and all of its database objects description: DROP DATABASE menu: latest: - identifier: api-postgresql-drop-db - parent: api-postgresql-ddl + identifier: api-ysql-commands-drop-db + parent: api-ysql-commands aliases: - - /latest/api/postgresql/ddl_drop_database - - /latest/api/ysql/ddl_drop_database + - /latest/api/ysql/commands/ddl_drop_database isTocNested: true showAsideToc: true --- ## Synopsis -The `DROP DATABASE` statement removes a database and all its database objects (such as [tables](../ddl_create_table) or [types](../ddl_create_type)) from the system. +The `DROP DATABASE` statement removes a database and all its database objects (such as [tables](ddl_create_table) or [types](ddl_create_type)) from the system. ## Syntax @@ -37,5 +36,5 @@ Where - Currently, an error is raised if the specified database is non-empty (contains tables or types). This restriction will be removed. ## See Also -[`CREATE DATABASE`](../ddl_create_database) +[`CREATE DATABASE`](ddl_create_database) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/ddl_drop_table.md b/docs/content/latest/api/ysql/commands/ddl_drop_table.md similarity index 89% rename from docs/content/latest/api/ysql/ddl_drop_table.md rename to docs/content/latest/api/ysql/commands/ddl_drop_table.md index 25a6d97c4924..8aef0d091261 100644 --- a/docs/content/latest/api/ysql/ddl_drop_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_table.md @@ -4,11 +4,10 @@ summary: Remove a table description: DROP TABLE menu: latest: - identifier: api-postgresql-drop-table - parent: api-postgresql-ddl + identifier: api-ysql-commands-drop-table + parent: api-ysql-commands aliases: - - /latest/api/postgresql/ddl_drop_table - - /latest/api/ysql/ddl_drop_table + - /latest/api/ysql/commands/ddl_drop_table isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/dml_insert.md b/docs/content/latest/api/ysql/commands/dml_insert.md similarity index 96% rename from docs/content/latest/api/ysql/dml_insert.md rename to docs/content/latest/api/ysql/commands/dml_insert.md index 393827aabe3b..1522cbb0516f 100644 --- a/docs/content/latest/api/ysql/dml_insert.md +++ b/docs/content/latest/api/ysql/commands/dml_insert.md @@ -4,11 +4,10 @@ summary: Add a new row to a table description: INSERT menu: latest: - identifier: api-postgresql-insert - parent: api-postgresql-dml + identifier: api-ysql-commands-insert + parent: api-ysql-commands aliases: - - /latest/api/postgresql/dml/insert - - /latest/api/ysql/dml/insert + - /latest/api/ysql/dml/commands/insert isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/dml_select.md b/docs/content/latest/api/ysql/commands/dml_select.md similarity index 98% rename from docs/content/latest/api/ysql/dml_select.md rename to docs/content/latest/api/ysql/commands/dml_select.md index 3a71b371e591..4658398cfc0f 100644 --- a/docs/content/latest/api/ysql/dml_select.md +++ b/docs/content/latest/api/ysql/commands/dml_select.md @@ -4,11 +4,10 @@ summary: Retrieves rows from a table description: SELECT menu: latest: - identifier: api-postgresql-select - parent: api-postgresql-dml + identifier: api-ysql-commands-select + parent: api-ysql-commands aliases: - - /latest/api/postgresql/dml/select - - /latest/api/ysql/dml/select + - /latest/api/ysql/commands/select isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/explain.md b/docs/content/latest/api/ysql/commands/explain.md similarity index 98% rename from docs/content/latest/api/ysql/explain.md rename to docs/content/latest/api/ysql/commands/explain.md index 1c3b8b79a9fd..3ec1c20abb3c 100644 --- a/docs/content/latest/api/ysql/explain.md +++ b/docs/content/latest/api/ysql/commands/explain.md @@ -4,12 +4,11 @@ description: Explain Statement summary: EXPLAIN menu: latest: - identifier: api-postgresql-explain - parent: api-postgresql + identifier: api-ysql-commands-explain + parent: api-ysql-commands weight: 3700 aliases: - - /latest/api/postgresql/explain - - /latest/api/ysql/explain + - /latest/api/ysql/commands/explain isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/permissions.md b/docs/content/latest/api/ysql/commands/permissions.md similarity index 97% rename from docs/content/latest/api/ysql/permissions.md rename to docs/content/latest/api/ysql/commands/permissions.md index e2bfe936ad8e..dad5c8448109 100644 --- a/docs/content/latest/api/ysql/permissions.md +++ b/docs/content/latest/api/ysql/commands/permissions.md @@ -4,12 +4,11 @@ description: Roles and Permissions summary: Roles and Permissions menu: latest: - identifier: api-postgresql-permissions - parent: api-postgresql + identifier: api-ysql-commands-permissions + parent: api-ysql-commands weight: 3500 aliases: - - /latest/api/postgresql/permissions - - /latest/api/ysql/permissions + - /latest/api/ysql/commands/permissions isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/prepare_execute.md b/docs/content/latest/api/ysql/commands/prepare_execute.md similarity index 97% rename from docs/content/latest/api/ysql/prepare_execute.md rename to docs/content/latest/api/ysql/commands/prepare_execute.md index dc06e6749500..dc9aa7bf2670 100644 --- a/docs/content/latest/api/ysql/prepare_execute.md +++ b/docs/content/latest/api/ysql/commands/prepare_execute.md @@ -4,12 +4,11 @@ description: Prepared Statements. summary: Prepare and execute statements. menu: latest: - identifier: api-postgresql-prepare - parent: api-postgresql + identifier: api-ysql-commands-prepare + parent: api-ysql-commands weight: 3600 aliases: - - /latest/api/postgresql/prepare - - /latest/api/ysql/prepare + - /latest/api/ysql/commands/prepare isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/transactions.md b/docs/content/latest/api/ysql/commands/transactions.md similarity index 98% rename from docs/content/latest/api/ysql/transactions.md rename to docs/content/latest/api/ysql/commands/transactions.md index 662976e09076..9ea90c36c68f 100644 --- a/docs/content/latest/api/ysql/transactions.md +++ b/docs/content/latest/api/ysql/commands/transactions.md @@ -4,12 +4,11 @@ description: Transactions summary: Overview of transaction-related commands. menu: latest: - identifier: api-postgresql-transactions - parent: api-postgresql + identifier: api-ysql-commands-transactions + parent: api-ysql-commands weight: 3400 aliases: - - /latest/api/postgresql/transactions - - /latest/api/ysql/transactions + - /latest/api/ysql/commands/transactions isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/datatypes/_index.md b/docs/content/latest/api/ysql/datatypes/_index.md new file mode 100644 index 000000000000..63929506b5bc --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/_index.md @@ -0,0 +1,29 @@ +--- +title: Datatypes +description: PostgreSQL-Compatible Datatypes +summary: Datatype overview and specification. +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-datatypes + parent: api-ysql + weight: 3300 +aliases: + - /latest/api/ysql/datatypes/ +isTocNested: true +showAsideToc: true +--- + +The following table lists all supported primitive types. + +Primitive Type | Allowed in Key | Type Parameters | Description | +---------------|----------------|-----------------|-------------| +[`BIGINT`](type_int) | Yes | - | 64-bit signed integer | +[`BOOLEAN`](type_bool) | Yes | - | Boolean | +[`DECIMAL`](type_number) | Yes | - | Exact, fixed-point number | +[`DOUBLE PRECISION`](type_number) | Yes | - | 64-bit, inexact, floating-point number | +[`FLOAT`](type_number) | Yes | - | 64-bit, inexact, floating-point number | +[`REAL`](type_number) | Yes | - | 32-bit, inexact, floating-point number | +[`INT` | `INTEGER`](type_int) | Yes | - | 32-bit signed integer | +[`SMALLINT`](type_int) | Yes | - | 16-bit signed integer | +[`TEXT` | `VARCHAR`](type_text) | Yes | - | Variable-size string of Unicode characters | diff --git a/docs/content/latest/api/ysql/type_int.md b/docs/content/latest/api/ysql/datatypes/type_int.md similarity index 90% rename from docs/content/latest/api/ysql/type_int.md rename to docs/content/latest/api/ysql/datatypes/type_int.md index b5fa4c964f5c..4de9ec01bf6a 100644 --- a/docs/content/latest/api/ysql/type_int.md +++ b/docs/content/latest/api/ysql/datatypes/type_int.md @@ -4,11 +4,10 @@ summary: Signed integers of different ranges description: Integer Types menu: latest: - identifier: api-postgresql-int - parent: api-postgresql-type + identifier: api-ysql-datatypes-int + parent: api-ysql-datatypes aliases: - - /latest/api/postgresql/type/int - - /latest/api/ysql/type/int + - /latest/api/ysql/datatypes/int isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/type_number.md b/docs/content/latest/api/ysql/datatypes/type_number.md similarity index 92% rename from docs/content/latest/api/ysql/type_number.md rename to docs/content/latest/api/ysql/datatypes/type_number.md index f05f764d8264..9457581cf6fe 100644 --- a/docs/content/latest/api/ysql/type_number.md +++ b/docs/content/latest/api/ysql/datatypes/type_number.md @@ -4,11 +4,10 @@ summary: FLOAT, DOUBLE, and DECIMAL description: Floating-Point Types menu: latest: - identifier: api-postgresql-number - parent: api-postgresql-type + identifier: api-ysql-datatypes-number + parent: api-ysql-datatypes aliases: - - /latest/api/postgresql/type/number - - /latest/api/ysql/type/number + - /latest/api/ysql/datatypes/number isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/type_text.md b/docs/content/latest/api/ysql/datatypes/type_text.md similarity index 85% rename from docs/content/latest/api/ysql/type_text.md rename to docs/content/latest/api/ysql/datatypes/type_text.md index 5f79691f8397..64f2634c910d 100644 --- a/docs/content/latest/api/ysql/type_text.md +++ b/docs/content/latest/api/ysql/datatypes/type_text.md @@ -4,11 +4,10 @@ summary: String of Unicode characters description: Character Types menu: latest: - identifier: api-postgresql-text - parent: api-postgresql-type + identifier: api-ysql-datatypes-text + parent: api-ysql-datatypes aliases: - - /latest/api/postgresql/type/text - - /latest/api/ysql/type/text + - /latest/api/ysql/datatypes/text isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/ddl.md b/docs/content/latest/api/ysql/ddl.md deleted file mode 100644 index 6def17de5ba3..000000000000 --- a/docs/content/latest/api/ysql/ddl.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: DDL Statements -description: PostgreSQL DDL Statements -summary: DDL overview and specification. -menu: - latest: - identifier: api-postgresql-ddl - parent: api-postgresql - weight: 3100 -aliases: - - /latest/api/postgresql/ddl - - /latest/api/ysql/ddl -isTocNested: true -showAsideToc: true ---- - -Data definition language (DDL) statements are instructions for the following database operations. - -- Create and drop database objects. - -Statement | Description | -----------|-------------| -[`CREATE DATABASE`](../ddl_create_database) | Create a new database | -[`CREATE TABLE`](../ddl_create_table) | Create a new table | -[`DROP DATABASE`](../ddl_drop_database) | Delete a database and associated objects | -[`DROP TABLE`](../ddl_drop_table) | Delete a table from a database | -[`CREATE VIEW`](../ddl_create_view) | Create a new view | -[`CREATE USER`](../permissions) | Create a new user/role | -[`GRANT`](../permissions) | Grant permissions| -[`REVOKE`](../permissions) | Revoke permissions | diff --git a/docs/content/latest/api/ysql/dml.md b/docs/content/latest/api/ysql/dml.md deleted file mode 100644 index b37d9aba5e16..000000000000 --- a/docs/content/latest/api/ysql/dml.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: DML Statements -description: PostgreSQL DML Statements -summary: DML overview and specification. -menu: - latest: - identifier: api-postgresql-dml - parent: api-postgresql - weight: 3200 -aliases: - - /latest/api/postgresql/dml - - /latest/api/ysql/dml -isTocNested: true -showAsideToc: true ---- - -Data manipulation language (DML) statements are used to read from and write to the existing database objects. Currently, YugaByte DB implicitly commits any updates by DML statements. - -Statement | Description | -----------|-------------| -[`INSERT`](../dml_insert) | Insert rows into a table | -[`SELECT`](../dml_select) | Select rows from a table | -[`UPDATE`] | In progress. Update rows in a table | -[`DELETE`] | In progress. Delete rows from a table | diff --git a/docs/package-lock.json b/docs/package-lock.json index bb52a2f330ad..560a96b3ee28 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -9,9 +9,9 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.32.tgz", "integrity": "sha512-EVq4T1a2GviKiQ75OfxNrGPPhJyXzg9jjORuuwhloZbFdrhT4FHa73sv9OFWBwX7rl2b6bxBVmfxrBQYWYz9tA==", "requires": { - "chalk": "2.3.0", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -19,7 +19,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -27,9 +27,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "supports-color": { @@ -37,7 +37,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -68,7 +68,7 @@ "@babel/code-frame": "7.0.0-beta.32", "@babel/types": "7.0.0-beta.32", "babylon": "7.0.0-beta.32", - "lodash": "4.17.4" + "lodash": "^4.2.0" }, "dependencies": { "babylon": { @@ -87,10 +87,10 @@ "@babel/helper-function-name": "7.0.0-beta.32", "@babel/types": "7.0.0-beta.32", "babylon": "7.0.0-beta.32", - "debug": "3.1.0", - "globals": "10.3.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "debug": "^3.0.1", + "globals": "^10.0.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" }, "dependencies": { "babylon": { @@ -118,9 +118,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.32.tgz", "integrity": "sha512-w8+wzVcYCMb9OfaBfay2Vg5hyj7UfBX6qQtA+kB0qsW1h1NH/7xHMwvTZNqkuFBwjz5wxGS2QmaIcC3HH+UoxA==", "requires": { - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { @@ -140,7 +140,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.16", "negotiator": "0.6.1" } }, @@ -154,7 +154,7 @@ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" }, "dependencies": { "acorn": { @@ -169,7 +169,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -194,10 +194,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -210,21 +210,21 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.24.9.tgz", "integrity": "sha512-/jK/slMZBNfZB9TESqWs21IZD4i2ANvksYNU/PZwwqfsij56VHf6pvxeaQ0tQDM9YF49tdo7zsI620uDFEtXpA==", "requires": { - "agentkeepalive": "2.2.0", - "debug": "2.6.9", - "envify": "4.1.0", - "es6-promise": "4.2.2", - "events": "1.1.1", - "foreach": "2.0.5", - "global": "4.3.2", - "inherits": "2.0.3", - "isarray": "2.0.2", - "load-script": "1.0.0", - "object-keys": "1.0.11", - "querystring-es3": "0.2.1", - "reduce": "1.0.1", - "semver": "5.4.1", - "tunnel-agent": "0.6.0" + "agentkeepalive": "^2.2.0", + "debug": "^2.6.8", + "envify": "^4.0.0", + "es6-promise": "^4.1.0", + "events": "^1.1.0", + "foreach": "^2.0.5", + "global": "^4.3.2", + "inherits": "^2.0.1", + "isarray": "^2.0.1", + "load-script": "^1.0.0", + "object-keys": "^1.0.11", + "querystring-es3": "^0.2.1", + "reduce": "^1.0.1", + "semver": "^5.1.0", + "tunnel-agent": "^0.6.0" }, "dependencies": { "isarray": { @@ -239,9 +239,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -274,8 +274,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "aproba": { @@ -288,8 +288,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { @@ -297,7 +297,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "aria-query": { @@ -313,7 +313,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -341,8 +341,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-map": { @@ -360,7 +360,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -388,7 +388,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "asn1.js": { @@ -396,9 +396,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -424,7 +424,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "async-each": { @@ -470,9 +470,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-core": { @@ -480,25 +480,25 @@ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" } }, "babel-eslint": { @@ -506,10 +506,10 @@ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.0.2.tgz", "integrity": "sha512-yyl5U088oE+419+BNLJDKVWkUokuPLQeQt9ZTy9uM9kAzbtQgyYL3JkG425B8jxXA7MwTxnDAtRLMKJNH36qjA==", "requires": { - "@babel/code-frame": "7.0.0-beta.32", - "@babel/traverse": "7.0.0-beta.32", - "@babel/types": "7.0.0-beta.32", - "babylon": "7.0.0-beta.32" + "@babel/code-frame": "^7.0.0-beta.31", + "@babel/traverse": "^7.0.0-beta.31", + "@babel/types": "^7.0.0-beta.31", + "babylon": "^7.0.0-beta.31" }, "dependencies": { "babylon": { @@ -524,14 +524,14 @@ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -539,9 +539,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -549,9 +549,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -559,10 +559,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -570,10 +570,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -581,9 +581,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -591,11 +591,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -603,8 +603,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -612,8 +612,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -621,8 +621,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -630,9 +630,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -640,11 +640,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -652,12 +652,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -665,8 +665,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-loader": { @@ -674,9 +674,9 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" } }, "babel-messages": { @@ -684,7 +684,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -692,7 +692,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -730,9 +730,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-decorators-legacy": { @@ -740,9 +740,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz", "integrity": "sha1-dBtY9sW86eYCfgiC2cmU8E82aSU=", "requires": { - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-syntax-decorators": "^6.1.18", + "babel-runtime": "^6.2.0", + "babel-template": "^6.3.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -750,7 +750,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -758,7 +758,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -766,11 +766,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -778,15 +778,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -794,8 +794,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -803,7 +803,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -811,8 +811,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -820,7 +820,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -828,9 +828,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -838,7 +838,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -846,9 +846,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -856,10 +856,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -867,9 +867,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -877,9 +877,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -887,8 +887,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -896,12 +896,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -909,8 +909,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -918,7 +918,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -926,9 +926,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -936,7 +936,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -944,7 +944,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -952,9 +952,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -962,9 +962,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { @@ -972,8 +972,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { @@ -981,7 +981,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -989,9 +989,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { @@ -999,8 +999,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { @@ -1008,8 +1008,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -1017,7 +1017,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -1025,8 +1025,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-preset-env": { @@ -1034,36 +1034,36 @@ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.9.0", - "invariant": "2.2.2", - "semver": "5.4.1" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-flow": { @@ -1071,7 +1071,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { @@ -1079,12 +1079,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { @@ -1092,13 +1092,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -1106,8 +1106,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.1", - "regenerator-runtime": "0.11.0" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -1115,11 +1115,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -1127,15 +1127,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -1143,10 +1143,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1174,7 +1174,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big.js": { @@ -1192,7 +1192,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bn.js": { @@ -1206,15 +1206,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.1", - "http-errors": "1.6.2", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "~1.6.15" } }, "bonjour": { @@ -1222,12 +1222,12 @@ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.1.1", - "multicast-dns-service-types": "1.1.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" } }, "brace-expansion": { @@ -1235,7 +1235,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1244,9 +1244,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1259,12 +1259,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -1272,9 +1272,9 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -1282,9 +1282,9 @@ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -1292,8 +1292,8 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1301,13 +1301,13 @@ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -1315,7 +1315,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { - "pako": "1.0.6" + "pako": "~1.0.5" } }, "browserslist": { @@ -1323,8 +1323,8 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.9.0.tgz", "integrity": "sha512-vJEBcDTANoDhSHL46NeOEW5hvQw7It9uCqzeFPQhpawXfnOwnpvW5C97vn1eGJ7iCkSg8wWU0nYObE7d/N95Iw==", "requires": { - "caniuse-lite": "1.0.30000765", - "electron-to-chromium": "1.3.27" + "caniuse-lite": "^1.0.30000760", + "electron-to-chromium": "^1.3.27" } }, "buffer": { @@ -1332,9 +1332,9 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-indexof": { @@ -1367,7 +1367,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -1385,8 +1385,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "caniuse-lite": { @@ -1404,8 +1404,8 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -1413,11 +1413,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "chokidar": { @@ -1425,15 +1425,15 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "cipher-base": { @@ -1441,8 +1441,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -1455,7 +1455,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1468,9 +1468,9 @@ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz", "integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=", "requires": { - "good-listener": "1.2.2", - "select": "1.1.2", - "tiny-emitter": "2.0.2" + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" } }, "cliui": { @@ -1478,9 +1478,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -1488,7 +1488,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -1496,9 +1496,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -1518,7 +1518,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -1531,7 +1531,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -1549,7 +1549,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", "requires": { - "mime-db": "1.30.0" + "mime-db": ">= 1.30.0 < 2" } }, "compression": { @@ -1557,13 +1557,13 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "bytes": "3.0.0", - "compressible": "2.0.12", + "compressible": "~2.0.11", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.1", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "concat-map": { @@ -1576,9 +1576,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "connect-history-api-fallback": { @@ -1591,7 +1591,7 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "console-control-strings": { @@ -1649,8 +1649,8 @@ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -1658,10 +1658,10 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.9" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1669,12 +1669,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1682,9 +1682,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-browserify": { @@ -1692,17 +1692,17 @@ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.5", - "randomfill": "1.0.3" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "currently-unhandled": { @@ -1710,7 +1710,7 @@ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d": { @@ -1718,7 +1718,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.35" + "es5-ext": "^0.10.9" } }, "damerau-levenshtein": { @@ -1731,7 +1731,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "date-now": { @@ -1767,8 +1767,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "del": { @@ -1776,13 +1776,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "pify": { @@ -1817,8 +1817,8 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -1831,7 +1831,7 @@ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -1844,8 +1844,8 @@ "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.3.tgz", "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=", "requires": { - "address": "1.0.3", - "debug": "2.6.9" + "address": "^1.0.1", + "debug": "^2.6.0" } }, "diffie-hellman": { @@ -1853,9 +1853,9 @@ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dns-equal": { @@ -1868,8 +1868,8 @@ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-txt": { @@ -1877,7 +1877,7 @@ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -1885,8 +1885,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "dom-walk": { @@ -1909,8 +1909,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -1928,13 +1928,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emoji-regex": { @@ -1957,7 +1957,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" } }, "enhanced-resolve": { @@ -1965,10 +1965,10 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" } }, "envify": { @@ -1976,8 +1976,8 @@ "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz", "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==", "requires": { - "esprima": "4.0.0", - "through": "2.3.8" + "esprima": "^4.0.0", + "through": "~2.3.4" } }, "errno": { @@ -1985,7 +1985,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", "requires": { - "prr": "0.0.0" + "prr": "~0.0.0" } }, "error-ex": { @@ -1993,7 +1993,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -2001,11 +2001,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz", "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2013,9 +2013,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -2023,8 +2023,8 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz", "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "es6-iterator": "~2.0.1", + "es6-symbol": "~3.1.1" } }, "es6-iterator": { @@ -2032,9 +2032,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -2042,12 +2042,12 @@ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-promise": { @@ -2060,11 +2060,11 @@ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -2072,8 +2072,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -2081,10 +2081,10 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -2102,10 +2102,10 @@ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -2113,43 +2113,43 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.11.0.tgz", "integrity": "sha512-UWbhQpaKlm8h5x/VLwm0S1kheMrDj8jPwhnBMjr/Dlo3qqT7MvcN/UfKAR3E1N4lr4YNtOvS4m3hwsrVc/ky7g==", "requires": { - "ajv": "5.3.0", - "babel-code-frame": "6.26.0", - "chalk": "2.3.0", - "concat-stream": "1.6.0", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.0.0", - "eslint-scope": "3.7.1", - "espree": "3.5.2", - "esquery": "1.0.0", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.7", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.0.0", - "js-yaml": "3.10.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "require-uncached": "1.0.3", - "semver": "5.4.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.0.1", + "doctrine": "^2.0.0", + "eslint-scope": "^3.7.1", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^9.17.0", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "^4.0.1", + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -2162,7 +2162,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -2170,9 +2170,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "debug": { @@ -2188,7 +2188,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -2196,7 +2196,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -2206,7 +2206,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz", "integrity": "sha512-zLyOhVWhzB/jwbz7IPSbkUuj7X2ox4PHXTcZkEmDqTvd0baJmJyuxlFPDlZOE/Y5bC+HQRaEkT3FoHo9wIdRiw==", "requires": { - "eslint-config-airbnb-base": "12.1.0" + "eslint-config-airbnb-base": "^12.1.0" } }, "eslint-config-airbnb-base": { @@ -2214,7 +2214,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz", "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==", "requires": { - "eslint-restricted-globals": "0.1.1" + "eslint-restricted-globals": "^0.1.1" } }, "eslint-config-xo": { @@ -2227,7 +2227,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-xo-space/-/eslint-config-xo-space-0.17.0.tgz", "integrity": "sha512-A0pcBjcyv0dbbLsUl7Dz5lOZCNnNrOgEDsijlnMvZ5aCdp0AixhfO7c3k++X6wKY6bw1h02uvajINi7EZsmt1Q==", "requires": { - "eslint-config-xo": "0.18.2" + "eslint-config-xo": "^0.18.0" } }, "eslint-import-resolver-node": { @@ -2235,8 +2235,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz", "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==", "requires": { - "debug": "2.6.9", - "resolve": "1.5.0" + "debug": "^2.6.8", + "resolve": "^1.2.0" } }, "eslint-loader": { @@ -2244,11 +2244,11 @@ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==", "requires": { - "loader-fs-cache": "1.0.1", - "loader-utils": "1.1.0", - "object-assign": "4.1.1", - "object-hash": "1.2.0", - "rimraf": "2.6.2" + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" } }, "eslint-module-utils": { @@ -2256,8 +2256,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" }, "dependencies": { "find-up": { @@ -2265,8 +2265,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -2274,7 +2274,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pkg-dir": { @@ -2282,7 +2282,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } } } @@ -2292,16 +2292,16 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.1", - "eslint-module-utils": "2.1.1", - "has": "1.0.1", - "lodash.cond": "4.5.2", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash.cond": "^4.3.0", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" }, "dependencies": { "doctrine": { @@ -2309,8 +2309,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } } } @@ -2320,13 +2320,13 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.0.2.tgz", "integrity": "sha1-ZZJ3p1iwNsMFp+ShMFfDAc075z8=", "requires": { - "aria-query": "0.7.0", - "array-includes": "3.0.3", + "aria-query": "^0.7.0", + "array-includes": "^3.0.3", "ast-types-flow": "0.0.7", - "axobject-query": "0.1.0", - "damerau-levenshtein": "1.0.4", - "emoji-regex": "6.5.1", - "jsx-ast-utils": "1.4.1" + "axobject-query": "^0.1.0", + "damerau-levenshtein": "^1.0.0", + "emoji-regex": "^6.1.0", + "jsx-ast-utils": "^1.4.0" } }, "eslint-plugin-react": { @@ -2334,10 +2334,10 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz", "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==", "requires": { - "doctrine": "2.0.0", - "has": "1.0.1", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.0" + "doctrine": "^2.0.0", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.0", + "prop-types": "^15.5.10" }, "dependencies": { "jsx-ast-utils": { @@ -2345,7 +2345,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", "requires": { - "array-includes": "3.0.3" + "array-includes": "^3.0.3" } } } @@ -2360,8 +2360,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "requires": { - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "espree": { @@ -2369,8 +2369,8 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", "requires": { - "acorn": "5.2.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.2.1", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -2383,7 +2383,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -2391,8 +2391,8 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0", + "object-assign": "^4.0.1" } }, "estraverse": { @@ -2415,8 +2415,8 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35" + "d": "1", + "es5-ext": "~0.10.14" } }, "event-stream": { @@ -2424,13 +2424,13 @@ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" } }, "eventemitter3": { @@ -2448,7 +2448,7 @@ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "requires": { - "original": "1.0.0" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -2456,8 +2456,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -2465,13 +2465,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "expand-brackets": { @@ -2479,7 +2479,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -2487,7 +2487,7 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "expand-tilde": { @@ -2495,7 +2495,7 @@ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "requires": { - "homedir-polyfill": "1.0.1" + "homedir-polyfill": "^1.0.1" } }, "express": { @@ -2503,36 +2503,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.0", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "~2.0.2", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.1", "serve-static": "1.13.1", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "~1.3.1", + "type-is": "~1.6.15", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "array-flatten": { @@ -2552,7 +2552,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "external-editor": { @@ -2560,9 +2560,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", "requires": { - "iconv-lite": "0.4.19", - "jschardet": "1.6.0", - "tmp": "0.0.33" + "iconv-lite": "^0.4.17", + "jschardet": "^1.4.2", + "tmp": "^0.0.33" } }, "extglob": { @@ -2570,7 +2570,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -2598,7 +2598,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fbjs": { @@ -2606,13 +2606,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.9" }, "dependencies": { "core-js": { @@ -2627,7 +2627,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2635,8 +2635,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2654,11 +2654,11 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -2667,12 +2667,12 @@ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "find-cache-dir": { @@ -2680,9 +2680,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "requires": { - "commondir": "1.0.1", - "make-dir": "1.1.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-up": { @@ -2690,7 +2690,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -2698,10 +2698,10 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "for-in": { @@ -2714,7 +2714,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -2732,9 +2732,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -2763,8 +2763,8 @@ "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", "optional": true, "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.39" }, "dependencies": { "abbrev": { @@ -2783,7 +2783,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.1.1", @@ -2826,7 +2827,8 @@ }, "balanced-match": { "version": "0.4.2", - "bundled": true + "bundled": true, + "optional": true }, "bcrypt-pbkdf": { "version": "1.0.1", @@ -2839,6 +2841,7 @@ "block-stream": { "version": "0.0.9", "bundled": true, + "optional": true, "requires": { "inherits": "2.0.3" } @@ -2846,6 +2849,7 @@ "boom": { "version": "2.10.1", "bundled": true, + "optional": true, "requires": { "hoek": "2.16.3" } @@ -2853,6 +2857,7 @@ "brace-expansion": { "version": "1.1.7", "bundled": true, + "optional": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -2860,7 +2865,8 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "caseless": { "version": "0.12.0", @@ -2874,30 +2880,36 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "combined-stream": { "version": "1.0.5", "bundled": true, + "optional": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "cryptiles": { "version": "2.0.5", "bundled": true, + "optional": true, "requires": { "boom": "2.10.1" } @@ -2932,7 +2944,8 @@ }, "delayed-stream": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "delegates": { "version": "1.0.0", @@ -2959,7 +2972,8 @@ }, "extsprintf": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "forever-agent": { "version": "0.6.1", @@ -2978,11 +2992,13 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "fstream": { "version": "1.0.11", "bundled": true, + "optional": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -3033,6 +3049,7 @@ "glob": { "version": "7.1.2", "bundled": true, + "optional": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -3044,7 +3061,8 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "bundled": true, + "optional": true }, "har-schema": { "version": "1.0.5", @@ -3068,6 +3086,7 @@ "hawk": { "version": "3.1.3", "bundled": true, + "optional": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -3077,7 +3096,8 @@ }, "hoek": { "version": "2.16.3", - "bundled": true + "bundled": true, + "optional": true }, "http-signature": { "version": "1.1.1", @@ -3092,6 +3112,7 @@ "inflight": { "version": "1.0.6", "bundled": true, + "optional": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -3099,7 +3120,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.4", @@ -3109,6 +3131,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "1.0.1" } @@ -3120,7 +3143,8 @@ }, "isarray": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "isstream": { "version": "0.1.2", @@ -3183,11 +3207,13 @@ }, "mime-db": { "version": "1.27.0", - "bundled": true + "bundled": true, + "optional": true }, "mime-types": { "version": "2.1.15", "bundled": true, + "optional": true, "requires": { "mime-db": "1.27.0" } @@ -3195,17 +3221,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -3255,7 +3284,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "oauth-sign": { "version": "0.8.2", @@ -3270,6 +3300,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1.0.2" } @@ -3295,7 +3326,8 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "performance-now": { "version": "0.2.0", @@ -3304,7 +3336,8 @@ }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "bundled": true, + "optional": true }, "punycode": { "version": "1.4.1", @@ -3337,6 +3370,7 @@ "readable-stream": { "version": "2.2.9", "bundled": true, + "optional": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -3379,13 +3413,15 @@ "rimraf": { "version": "2.6.1", "bundled": true, + "optional": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "bundled": true + "bundled": true, + "optional": true }, "semver": { "version": "5.3.0", @@ -3405,6 +3441,7 @@ "sntp": { "version": "1.0.9", "bundled": true, + "optional": true, "requires": { "hoek": "2.16.3" } @@ -3435,6 +3472,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -3444,6 +3482,7 @@ "string_decoder": { "version": "1.0.1", "bundled": true, + "optional": true, "requires": { "safe-buffer": "5.0.1" } @@ -3456,6 +3495,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "2.1.1" } @@ -3468,6 +3508,7 @@ "tar": { "version": "2.2.1", "bundled": true, + "optional": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -3517,7 +3558,8 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "uuid": { "version": "3.0.1", @@ -3542,7 +3584,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -3551,10 +3594,10 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "function-bind": { @@ -3572,14 +3615,14 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -3587,7 +3630,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -3595,9 +3638,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -3607,7 +3650,7 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "requires": { - "globule": "1.2.1" + "globule": "^1.0.0" } }, "get-caller-file": { @@ -3630,7 +3673,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -3638,12 +3681,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -3651,8 +3694,8 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -3660,7 +3703,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "global": { @@ -3668,8 +3711,8 @@ "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "requires": { - "min-document": "2.19.0", - "process": "0.5.2" + "min-document": "^2.19.0", + "process": "~0.5.1" }, "dependencies": { "process": { @@ -3684,9 +3727,9 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "requires": { - "global-prefix": "1.0.2", - "is-windows": "1.0.1", - "resolve-dir": "1.0.1" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, "global-prefix": { @@ -3694,11 +3737,11 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "requires": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.1", - "ini": "1.3.4", - "is-windows": "1.0.1", - "which": "1.3.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, "globals": { @@ -3711,12 +3754,12 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -3731,9 +3774,9 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "requires": { - "glob": "7.1.2", - "lodash": "4.17.11", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" }, "dependencies": { "lodash": { @@ -3748,7 +3791,7 @@ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", "requires": { - "delegate": "3.2.0" + "delegate": "^3.1.2" } }, "graceful-fs": { @@ -3761,10 +3804,10 @@ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-3.1.1.tgz", "integrity": "sha512-nZ1qjLmayEv0/wt3sHig7I0s3/sJO0dkAaKYQ5YAOApUtYEOonXSFdWvL1khvnZMTvov4UufkqlFsilPnejEXA==", "requires": { - "extend-shallow": "2.0.1", - "js-yaml": "3.10.0", - "kind-of": "5.1.0", - "strip-bom-string": "1.0.0" + "extend-shallow": "^2.0.1", + "js-yaml": "^3.10.0", + "kind-of": "^5.0.2", + "strip-bom-string": "^1.0.0" }, "dependencies": { "kind-of": { @@ -3779,7 +3822,7 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", "requires": { - "duplexer": "0.1.1" + "duplexer": "^0.1.1" } }, "handle-thing": { @@ -3797,8 +3840,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "ajv": "5.3.0", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has": { @@ -3806,7 +3849,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -3814,7 +3857,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -3832,7 +3875,7 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1" } }, "hash.js": { @@ -3840,8 +3883,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hmac-drbg": { @@ -3849,9 +3892,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -3859,8 +3902,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "homedir-polyfill": { @@ -3868,7 +3911,7 @@ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "requires": { - "parse-passwd": "1.0.0" + "parse-passwd": "^1.0.0" } }, "hosted-git-info": { @@ -3881,10 +3924,10 @@ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "requires": { - "inherits": "2.0.3", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "wbuf": "1.7.2" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "html-entities": { @@ -3905,7 +3948,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "statuses": ">= 1.3.1 < 2" }, "dependencies": { "setprototypeof": { @@ -3925,8 +3968,8 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" } }, "http-proxy-middleware": { @@ -3934,10 +3977,10 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.4", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -3950,7 +3993,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -3960,9 +4003,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.15.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -3975,19 +4018,19 @@ "resolved": "https://registry.npmjs.org/hugo-algolia/-/hugo-algolia-1.2.11.tgz", "integrity": "sha512-/SLhzbmUkIn5UUg18UHc7HC2bciUyY33dn9eklHA7R2E8u1PA49VaPCwRWD42fHmD/7yn41/Y3DZWomWliie0A==", "requires": { - "algoliasearch": "3.24.9", - "bytes": "3.0.0", - "commander": "2.13.0", - "glob": "7.1.2", - "gray-matter": "3.1.1", - "lodash": "4.17.4", - "pos": "0.4.2", - "remove-markdown": "0.2.2", - "stopword": "0.1.9", - "striptags": "3.1.1", - "to-snake-case": "1.0.0", - "toml": "2.3.3", - "truncate-utf8-bytes": "1.0.2" + "algoliasearch": "^3.24.1", + "bytes": "^3.0.0", + "commander": "^2.11.0", + "glob": "^7.1.2", + "gray-matter": "^3.0.2", + "lodash": "^4.17.4", + "pos": "^0.4.2", + "remove-markdown": "^0.2.0", + "stopword": "^0.1.8", + "striptags": "^3.0.1", + "to-snake-case": "^1.0.0", + "toml": "^2.3.2", + "truncate-utf8-bytes": "^1.0.2" } }, "iconv-lite": { @@ -4010,8 +4053,8 @@ "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -4029,7 +4072,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -4042,8 +4085,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4061,20 +4104,20 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.0.5", - "figures": "2.0.0", - "lodash": "4.17.4", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -4087,7 +4130,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4095,9 +4138,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "strip-ansi": { @@ -4105,7 +4148,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -4113,7 +4156,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -4123,7 +4166,7 @@ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "interpret": { @@ -4136,7 +4179,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -4164,7 +4207,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4177,7 +4220,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -4200,7 +4243,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4218,7 +4261,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -4231,7 +4274,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -4239,7 +4282,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-path-cwd": { @@ -4252,7 +4295,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -4260,7 +4303,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-posix-bracket": { @@ -4283,7 +4326,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-resolvable": { @@ -4291,7 +4334,7 @@ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", "requires": { - "tryit": "1.0.3" + "tryit": "^1.0.1" } }, "is-root": { @@ -4352,8 +4395,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isstream": { @@ -4376,8 +4419,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -4466,7 +4509,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -4479,7 +4522,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -4487,8 +4530,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -4496,10 +4539,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -4519,7 +4562,7 @@ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", "requires": { - "find-cache-dir": "0.1.1", + "find-cache-dir": "^0.1.1", "mkdirp": "0.5.1" }, "dependencies": { @@ -4528,9 +4571,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -4538,8 +4581,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -4547,7 +4590,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pkg-dir": { @@ -4555,7 +4598,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } } } @@ -4570,9 +4613,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, "locate-path": { @@ -4580,8 +4623,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -4624,7 +4667,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -4632,8 +4675,8 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -4641,8 +4684,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -4650,7 +4693,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-obj": { @@ -4668,8 +4711,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" }, "dependencies": { "hash-base": { @@ -4677,8 +4720,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } } } @@ -4693,7 +4736,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "memory-fs": { @@ -4701,8 +4744,8 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.3" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "memorystream": { @@ -4715,16 +4758,16 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "find-up": { @@ -4732,8 +4775,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "load-json-file": { @@ -4741,11 +4784,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "minimist": { @@ -4758,7 +4801,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -4766,9 +4809,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -4781,9 +4824,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -4791,8 +4834,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "strip-bom": { @@ -4800,7 +4843,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -4820,19 +4863,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "miller-rabin": { @@ -4840,8 +4883,8 @@ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -4859,7 +4902,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, "mimic-fn": { @@ -4872,7 +4915,7 @@ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "requires": { - "dom-walk": "0.1.1" + "dom-walk": "^0.1.0" } }, "minimalistic-assert": { @@ -4890,7 +4933,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4916,8 +4959,8 @@ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", "requires": { - "dns-packet": "1.2.2", - "thunky": "0.1.0" + "dns-packet": "^1.0.1", + "thunky": "^0.1.0" } }, "multicast-dns-service-types": { @@ -4951,8 +4994,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { @@ -4965,18 +5008,18 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.88.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "semver": { @@ -4991,28 +5034,28 @@ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.4", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" } }, @@ -5021,25 +5064,25 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.4.tgz", "integrity": "sha512-MXyurANsUoE4/6KmfMkwGcBzAnJQ5xJBGW7Ei6ea8KnUKuzHr/SguVBIi3uaUAHtZCPUYkvlJ3Ef5T5VAwVpaA==", "requires": { - "async-foreach": "0.1.3", - "chalk": "1.1.3", - "cross-spawn": "3.0.1", - "gaze": "1.1.3", - "get-stdin": "4.0.1", - "glob": "7.1.2", - "in-publish": "2.0.0", - "lodash.assign": "4.2.0", - "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.11.1", - "node-gyp": "3.8.0", - "npmlog": "4.1.2", - "request": "2.88.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.1", - "true-case-path": "1.0.3" + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" }, "dependencies": { "cross-spawn": { @@ -5047,8 +5090,8 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "nan": { @@ -5063,7 +5106,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -5071,10 +5114,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -5082,7 +5125,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-all": { @@ -5090,15 +5133,15 @@ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.2.tgz", "integrity": "sha512-Z2aRlajMK4SQ8u19ZA75NZZu7wupfCNQWdYosIi8S6FgBdGf/8Y6Hgyjdc8zU2cYmIRVCx1nM80tJPkdEd+UYg==", "requires": { - "ansi-styles": "3.2.0", - "chalk": "2.3.0", - "cross-spawn": "5.1.0", - "memorystream": "0.3.1", - "minimatch": "3.0.4", - "ps-tree": "1.1.0", - "read-pkg": "3.0.0", - "shell-quote": "1.6.1", - "string.prototype.padend": "3.0.0" + "ansi-styles": "^3.2.0", + "chalk": "^2.1.0", + "cross-spawn": "^5.1.0", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "ps-tree": "^1.1.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -5106,7 +5149,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -5114,9 +5157,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "load-json-file": { @@ -5124,10 +5167,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -5135,8 +5178,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.1" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -5144,7 +5187,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -5152,9 +5195,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "supports-color": { @@ -5162,7 +5205,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -5172,7 +5215,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npmlog": { @@ -5180,10 +5223,10 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -5216,8 +5259,8 @@ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "obuf": { @@ -5243,7 +5286,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -5251,7 +5294,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "opn": { @@ -5259,7 +5302,7 @@ "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optionator": { @@ -5267,12 +5310,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "original": { @@ -5280,7 +5323,7 @@ "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", "requires": { - "url-parse": "1.0.5" + "url-parse": "1.0.x" }, "dependencies": { "url-parse": { @@ -5288,8 +5331,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" + "querystringify": "0.0.x", + "requires-port": "1.0.x" } } } @@ -5309,7 +5352,7 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -5322,8 +5365,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-finally": { @@ -5341,7 +5384,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -5359,11 +5402,11 @@ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "requires": { - "asn1.js": "4.9.2", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parse-glob": { @@ -5371,10 +5414,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -5382,7 +5425,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-passwd": { @@ -5440,7 +5483,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -5455,7 +5498,7 @@ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { - "through": "2.3.8" + "through": "~2.3" } }, "pbkdf2": { @@ -5463,11 +5506,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -5490,7 +5533,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -5498,7 +5541,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pluralize": { @@ -5511,9 +5554,9 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "async": { @@ -5563,7 +5606,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "prop-types": { @@ -5571,9 +5614,9 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.16", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "proxy-addr": { @@ -5581,7 +5624,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.5.2" } }, @@ -5595,7 +5638,7 @@ "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", "requires": { - "event-stream": "3.3.4" + "event-stream": "~3.3.0" } }, "pseudomap": { @@ -5613,11 +5656,11 @@ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.5" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "punycode": { @@ -5650,8 +5693,8 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -5659,7 +5702,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5667,7 +5710,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5677,7 +5720,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5687,7 +5730,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -5695,8 +5738,8 @@ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", "requires": { - "randombytes": "2.0.5", - "safe-buffer": "5.1.1" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -5737,7 +5780,7 @@ "inquirer": "3.3.0", "is-root": "1.0.0", "opn": "5.1.0", - "react-error-overlay": "3.0.0", + "react-error-overlay": "^3.0.0", "recursive-readdir": "2.2.1", "shell-quote": "1.6.1", "sockjs-client": "1.1.4", @@ -5755,9 +5798,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -5765,8 +5808,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -5774,13 +5817,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -5788,10 +5831,10 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "recursive-readdir": { @@ -5807,7 +5850,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.0.0" } } } @@ -5817,8 +5860,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reduce": { @@ -5826,7 +5869,7 @@ "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.1.tgz", "integrity": "sha1-FPouX/H8VgcDoCDLtfuqtpFWWAQ=", "requires": { - "object-keys": "1.0.11" + "object-keys": "~1.0.0" } }, "regenerate": { @@ -5844,9 +5887,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -5854,7 +5897,7 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexpu-core": { @@ -5862,9 +5905,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -5877,7 +5920,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -5912,7 +5955,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -5920,26 +5963,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.21", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "mime-db": { @@ -5952,7 +5995,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "1.37.0" + "mime-db": "~1.37.0" } }, "qs": { @@ -5982,8 +6025,8 @@ "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "requires-port": { @@ -5996,7 +6039,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-cwd": { @@ -6004,7 +6047,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { "resolve-from": { @@ -6019,8 +6062,8 @@ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" } }, "resolve-from": { @@ -6033,8 +6076,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "right-align": { @@ -6042,7 +6085,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -6050,7 +6093,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "ripemd160": { @@ -6058,8 +6101,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^2.0.0", + "inherits": "^2.0.1" } }, "run-async": { @@ -6067,9 +6110,14 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, + "run-p": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/run-p/-/run-p-0.0.0.tgz", + "integrity": "sha1-cWpVvRICd6nZDaX4IzO3C5GAiPI=" + }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -6080,7 +6128,7 @@ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -6098,10 +6146,10 @@ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" } }, "scss-tokenizer": { @@ -6109,8 +6157,8 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "requires": { - "js-base64": "2.4.9", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" }, "dependencies": { "source-map": { @@ -6118,7 +6166,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -6152,18 +6200,18 @@ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", "requires": { "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" } }, "serve-index": { @@ -6171,13 +6219,13 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.17", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" } }, "serve-static": { @@ -6185,9 +6233,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.1" } }, @@ -6216,8 +6264,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -6225,7 +6273,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -6238,10 +6286,10 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" } }, "signal-exit": { @@ -6259,7 +6307,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "sockjs": { @@ -6267,8 +6315,8 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" + "faye-websocket": "^0.10.0", + "uuid": "^2.0.2" }, "dependencies": { "faye-websocket": { @@ -6276,7 +6324,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "uuid": { @@ -6291,12 +6339,12 @@ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", "requires": { - "debug": "2.6.9", + "debug": "^2.6.6", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.2.0" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" } }, "source-list-map": { @@ -6314,7 +6362,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "spdx-correct": { @@ -6322,7 +6370,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -6340,12 +6388,12 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.0.20" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" } }, "spdy-transport": { @@ -6353,13 +6401,13 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "safe-buffer": "5.1.1", - "wbuf": "1.7.2" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" } }, "split": { @@ -6367,7 +6415,7 @@ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "requires": { - "through": "2.3.8" + "through": "2" } }, "sprintf-js": { @@ -6380,15 +6428,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "statuses": { @@ -6401,7 +6449,7 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.1" } }, "stopword": { @@ -6414,8 +6462,8 @@ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-combiner": { @@ -6423,7 +6471,7 @@ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "requires": { - "duplexer": "0.1.1" + "duplexer": "~0.1.1" } }, "stream-http": { @@ -6431,11 +6479,11 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.2.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "string-width": { @@ -6443,8 +6491,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -6457,7 +6505,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -6467,9 +6515,9 @@ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0", - "function-bind": "1.1.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" } }, "string_decoder": { @@ -6477,7 +6525,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6485,7 +6533,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -6508,7 +6556,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -6531,12 +6579,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "requires": { - "ajv": "5.3.0", - "ajv-keywords": "2.1.1", - "chalk": "2.3.0", - "lodash": "4.17.4", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ansi-styles": { @@ -6544,7 +6592,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "chalk": { @@ -6552,9 +6600,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "supports-color": { @@ -6562,7 +6610,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -6577,9 +6625,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "text-table": { @@ -6607,7 +6655,7 @@ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "tiny-emitter": { @@ -6620,7 +6668,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-arraybuffer": { @@ -6643,7 +6691,7 @@ "resolved": "https://registry.npmjs.org/to-snake-case/-/to-snake-case-1.0.0.tgz", "integrity": "sha1-znRpE4l5RgGah+Yu366upMYIq4w=", "requires": { - "to-space-case": "1.0.0" + "to-space-case": "^1.0.0" } }, "to-space-case": { @@ -6651,7 +6699,7 @@ "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz", "integrity": "sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=", "requires": { - "to-no-case": "1.0.2" + "to-no-case": "^1.0.0" } }, "toml": { @@ -6664,8 +6712,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "trim-newlines": { @@ -6683,7 +6731,7 @@ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "requires": { - "glob": "7.1.2" + "glob": "^7.1.2" } }, "truncate-utf8-bytes": { @@ -6691,7 +6739,7 @@ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", "requires": { - "utf8-byte-length": "1.0.4" + "utf8-byte-length": "^1.0.1" } }, "tryit": { @@ -6709,7 +6757,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -6722,7 +6770,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -6731,7 +6779,7 @@ "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.15" } }, "typedarray": { @@ -6749,9 +6797,9 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "camelcase": { @@ -6764,8 +6812,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, @@ -6779,9 +6827,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -6798,9 +6846,9 @@ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.0.2" + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" } }, "unpipe": { @@ -6829,8 +6877,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", "requires": { - "querystringify": "1.0.0", - "requires-port": "1.0.0" + "querystringify": "~1.0.0", + "requires-port": "~1.0.0" }, "dependencies": { "querystringify": { @@ -6880,8 +6928,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "vary": { @@ -6894,9 +6942,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vm-browserify": { @@ -6912,9 +6960,9 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "async": "^2.1.2", + "chokidar": "^1.7.0", + "graceful-fs": "^4.1.2" } }, "wbuf": { @@ -6922,7 +6970,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", "requires": { - "minimalistic-assert": "1.0.0" + "minimalistic-assert": "^1.0.0" } }, "webpack": { @@ -6930,28 +6978,28 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", "requires": { - "acorn": "5.2.1", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.3.0", - "ajv-keywords": "2.1.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.0.4", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", - "webpack-sources": "1.0.2", - "yargs": "8.0.2" + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^5.1.5", + "ajv-keywords": "^2.0.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" }, "dependencies": { "camelcase": { @@ -6964,9 +7012,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "supports-color": { @@ -6974,7 +7022,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "which-module": { @@ -6987,19 +7035,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" } }, "yargs-parser": { @@ -7007,7 +7055,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -7017,11 +7065,11 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz", "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=", "requires": { - "memory-fs": "0.4.1", - "mime": "1.4.1", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^1.3.4", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" } }, "webpack-dev-server": { @@ -7030,32 +7078,32 @@ "integrity": "sha512-thrqC0EQEoSjXeYgP6pUXcUCZ+LNrKsDPn+mItLnn5VyyNZOJKd06hUP5vqkYwL8nWWXsii0loSF9NHNccT6ow==", "requires": { "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.1", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.2", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "0.1.1", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^1.6.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.13.3", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "import-local": "^0.1.1", "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.0", - "opn": "5.1.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.1", - "serve-index": "1.9.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.18", "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "4.5.0", - "webpack-dev-middleware": "1.12.0", - "yargs": "6.6.0" + "spdy": "^3.4.1", + "strip-ansi": "^3.0.1", + "supports-color": "^4.2.1", + "webpack-dev-middleware": "^1.11.0", + "yargs": "^6.6.0" }, "dependencies": { "camelcase": { @@ -7076,12 +7124,12 @@ "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "find-up": { @@ -7089,8 +7137,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "globby": { @@ -7098,11 +7146,11 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -7117,7 +7165,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "load-json-file": { @@ -7125,11 +7173,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "pify": { @@ -7144,7 +7192,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -7152,9 +7200,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -7169,9 +7217,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -7179,8 +7227,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "string-width": { @@ -7188,9 +7236,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-bom": { @@ -7198,7 +7246,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "supports-color": { @@ -7206,7 +7254,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "yargs": { @@ -7214,19 +7262,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" } }, "yargs-parser": { @@ -7234,7 +7282,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" } } } @@ -7244,8 +7292,8 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.2.tgz", "integrity": "sha512-Y7UddMCv6dGjy81nBv6nuQeFFIt5aalHm7uyDsAsW86nZwfOVPGRr3XMjEQLaT+WKo8rlzhC9qtbJvYKLtAwaw==", "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -7260,8 +7308,8 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.9", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -7279,7 +7327,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -7292,7 +7340,7 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "requires": { - "string-width": "2.1.1" + "string-width": "^1.0.2 || 2" } }, "window-size": { @@ -7310,8 +7358,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -7319,7 +7367,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -7327,9 +7375,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -7344,7 +7392,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "xtend": { @@ -7367,19 +7415,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" }, "dependencies": { "camelcase": { @@ -7392,8 +7440,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "is-fullwidth-code-point": { @@ -7401,7 +7449,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "load-json-file": { @@ -7409,11 +7457,11 @@ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "path-exists": { @@ -7421,7 +7469,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -7429,9 +7477,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -7444,9 +7492,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -7454,8 +7502,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "string-width": { @@ -7463,9 +7511,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-bom": { @@ -7473,7 +7521,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -7483,7 +7531,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { diff --git a/docs/package.json b/docs/package.json index a39bc5ff4f0f..ad3f7f63f162 100644 --- a/docs/package.json +++ b/docs/package.json @@ -43,6 +43,7 @@ "particles.js": "^2.0.0", "react-dev-tools": "0.0.1", "react-dev-utils": "^4.2.1", + "run-p": "0.0.0", "webpack": "^3.8.1", "webpack-dev-server": "^2.9.4" } From f6450c9317c2f128fad03680507e1d585367168f Mon Sep 17 00:00:00 2001 From: Neil Le Date: Tue, 26 Feb 2019 15:20:20 -0800 Subject: [PATCH 03/13] Reorg YSQL commands --- docs/content/latest/api/ysql/_index.md | 33 ++-- .../latest/api/ysql/commands/_index.md | 8 +- ...{ddl_create_user.md => dcl_create_user.md} | 5 +- .../latest/api/ysql/commands/dcl_grant.md | 55 +++++++ .../latest/api/ysql/commands/dcl_revoke.md | 54 +++++++ .../latest/api/ysql/commands/perf_execute.md | 77 +++++++++ .../commands/{explain.md => perf_explain.md} | 7 +- .../{prepare_execute.md => perf_prepare.md} | 21 +-- .../latest/api/ysql/commands/txn_abort.md | 150 +++++++++++++++++ .../latest/api/ysql/commands/txn_begin.md | 150 +++++++++++++++++ .../latest/api/ysql/commands/txn_commit.md | 151 ++++++++++++++++++ .../latest/api/ysql/commands/txn_end.md | 150 +++++++++++++++++ .../latest/api/ysql/commands/txn_rollback.md | 151 ++++++++++++++++++ .../latest/api/ysql/commands/txn_set.md | 151 ++++++++++++++++++ .../latest/api/ysql/commands/txn_show.md | 151 ++++++++++++++++++ .../latest/api/ysql/components/_index.md | 31 ++++ .../permissions.md => components/dcl.md} | 11 +- .../transactions.md => components/tcl.md} | 9 +- .../latest/api/ysql/datatypes/_index.md | 4 +- .../latest/api/ysql/elements/_index.md | 29 ++++ docs/content/latest/api/ysql/exprs/_index.md | 17 ++ 21 files changed, 1354 insertions(+), 61 deletions(-) rename docs/content/latest/api/ysql/commands/{ddl_create_user.md => dcl_create_user.md} (96%) create mode 100644 docs/content/latest/api/ysql/commands/dcl_grant.md create mode 100644 docs/content/latest/api/ysql/commands/dcl_revoke.md create mode 100644 docs/content/latest/api/ysql/commands/perf_execute.md rename docs/content/latest/api/ysql/commands/{explain.md => perf_explain.md} (98%) rename docs/content/latest/api/ysql/commands/{prepare_execute.md => perf_prepare.md} (61%) create mode 100644 docs/content/latest/api/ysql/commands/txn_abort.md create mode 100644 docs/content/latest/api/ysql/commands/txn_begin.md create mode 100644 docs/content/latest/api/ysql/commands/txn_commit.md create mode 100644 docs/content/latest/api/ysql/commands/txn_end.md create mode 100644 docs/content/latest/api/ysql/commands/txn_rollback.md create mode 100644 docs/content/latest/api/ysql/commands/txn_set.md create mode 100644 docs/content/latest/api/ysql/commands/txn_show.md create mode 100644 docs/content/latest/api/ysql/components/_index.md rename docs/content/latest/api/ysql/{commands/permissions.md => components/dcl.md} (96%) rename docs/content/latest/api/ysql/{commands/transactions.md => components/tcl.md} (97%) create mode 100644 docs/content/latest/api/ysql/elements/_index.md create mode 100644 docs/content/latest/api/ysql/exprs/_index.md diff --git a/docs/content/latest/api/ysql/_index.md b/docs/content/latest/api/ysql/_index.md index d858345c22f7..1ca332ee6eb3 100644 --- a/docs/content/latest/api/ysql/_index.md +++ b/docs/content/latest/api/ysql/_index.md @@ -17,14 +17,11 @@ showAsideToc: true --- ## Introduction -YSQL is a distributed SQL API compatible with PostgreSQL. It supports the following features. +YSQL - YugaByte Structured Query Language - is a distributed SQL API compatible with PostgreSQL. Similar to PostgreSQL, YSQL has several components being constructed by a number of elements. -- Data definition language (DDL) statements are provided to define a database structure, modify it, and delete it by using CREATE, ALTER, and DROP commands respectively. -- Data manipulation language (DML) statements are provided to modify the contents of a database by using INSERT, UPDATE, DELETE, and SELECT commands. -- Data control language (DCL) statements are provided to protect and prevent it from corruptions by using GRANT and REVOKE commands. -- There are also a host of other commands for different purposes such as system control, transaction control, and performance tuning. -- Builtin datatypes are provided to specify a database object. -- Builtin functions and expression operators are provided for performance purpose as selected data are computed and filtered on server side before being sent to clients. +The main components of YSQL are Data definition language (DDL), Data manipulation language (DML), and Data control language (DCL). Several other components are also provided for different purposes such as system control, transaction control, and performance tuning. + +A number of elements are used to construct the languages in YSQL such as datatypes, database objects, names and qualifiers, expressions, and comments. ## Example The following example illustrates how to use `psql` to connect to YugaByte DB's PostgreSQL-compatible API. It assumes you have [installed YugaByte](../../quick-start/install/) and started a [PostgreSQL-enabled cluster](../../quick-start/test-postgresql/). @@ -59,21 +56,13 @@ postgres=# select * from sample ORDER BY id DESC; ``` The examples given in the rest of this section assume the cluster is running and `psql` is connected to it as described above. -## SQL Commands +## References -## Expressions -PostgreSQL builtin functions and operators are supported. -User-defined functions are currently in progress. +### Commands +All suppoted commands are listed in the [Commands](commands/) section. -## Data Types -The following table lists all supported primitive types. +### Data Types +All PostgresSQL-compatible types are supported although not all of them can be used for columns in PRIMARY KEY yet. All suppoted types are listed in the [Data Types](datatypes/) section. -Primitive Type | Allowed in Key | Type Parameters | Description | ----------------|----------------|-----------------|-------------| -[`BIGINT`](type_int) | Yes | - | 64-bit signed integer | -[`DOUBLE PRECISION`](type_number) | Yes | - | 64-bit, inexact, floating-point number | -[`FLOAT`](type_number) | Yes | - | 64-bit, inexact, floating-point number | -[`REAL`](type_number) | Yes | - | 32-bit, inexact, floating-point number | -[`INT` | `INTEGER`](type_int) | Yes | - | 32-bit signed integer | -[`SMALLINT`](type_int) | Yes | - | 16-bit signed integer | -[`TEXT` | `VARCHAR`](type_text) | Yes | - | Variable-size string of Unicode characters | +### Expressions +All PostgreSQL-compatible builtin functions and operators are supported. User-defined functions are currently in progress. All suppoted expressions are listed in the [Expressions](exprs/) section. diff --git a/docs/content/latest/api/ysql/commands/_index.md b/docs/content/latest/api/ysql/commands/_index.md index b00f7dc77b8a..5730ae0020ae 100644 --- a/docs/content/latest/api/ysql/commands/_index.md +++ b/docs/content/latest/api/ysql/commands/_index.md @@ -1,13 +1,13 @@ --- -title: SQL Commands -description: Overview on PostgreSQL-Compatible Commands -summary: Overview on SQL Commands +title: Commands +description: Overview on YSQL Commands +summary: Overview on YSQL Commands image: /images/section_icons/api/pgsql.png menu: latest: identifier: api-ysql-commands parent: api-ysql - weight: 3100 + weight: 4100 aliases: - /latest/api/ysql/commands/ isTocNested: true diff --git a/docs/content/latest/api/ysql/commands/ddl_create_user.md b/docs/content/latest/api/ysql/commands/dcl_create_user.md similarity index 96% rename from docs/content/latest/api/ysql/commands/ddl_create_user.md rename to docs/content/latest/api/ysql/commands/dcl_create_user.md index e1f93a0e1f05..a1f27580707a 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_user.md +++ b/docs/content/latest/api/ysql/commands/dcl_create_user.md @@ -1,14 +1,13 @@ --- -title: Roles +title: CREATE USER description: Users and roles summary: Users and roles menu: latest: identifier: api-ysql-commands-create-users parent: api-ysql-commands - weight: 3500 aliases: - - /latest/api/ysql/commands/permissions + - /latest/api/ysql/commands/dcl_create_user isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/commands/dcl_grant.md b/docs/content/latest/api/ysql/commands/dcl_grant.md new file mode 100644 index 000000000000..7dcf36357531 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dcl_grant.md @@ -0,0 +1,55 @@ +--- +title: GRANT +description: GRANT Command +summary: GRANT Command +menu: + latest: + identifier: api-ysql-commands-grant + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/dcl_grant +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`GRANT` allows access privileges. + +## Syntax + +### Diagrams + +#### grant + +GRANTprivilegesONprivilege_targetTO,nameWITHGRANTOPTION + +### Grammar + +``` +grant ::= GRANT privileges ON privilege_target TO name [, ...] [ WITH GRANT OPTION ] ; +``` + +## Examples + +- Create a sample role. + +```sql +postgres=# CREATE USER John; +``` + +- Grant John all permissions on the `postgres` database. + +```sql +postgres=# GRANT ALL ON DATABASE postgres TO John; +``` + +- Remove John's permissions from the `postgres` database. + +```sql +postgres=# REVOKE ALL ON DATABASE postgres FROM John; +``` + +## See Also + +[Other YSQL Statements](..) \ No newline at end of file diff --git a/docs/content/latest/api/ysql/commands/dcl_revoke.md b/docs/content/latest/api/ysql/commands/dcl_revoke.md new file mode 100644 index 000000000000..d69827e88198 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dcl_revoke.md @@ -0,0 +1,54 @@ +--- +title: REVOKE +description: REVOKE +summary: REVOKE +menu: + latest: + identifier: api-ysql-commands-revoke + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/dcl_revoke +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +Remove access privileges. + +## Syntax + +### Diagrams + +#### revoke +REVOKEprivilegesONprivilege_targetFROM,nameCASCADERESTRICT + +### Grammar + +``` +revoke ::= REVOKE privileges ON privilege_target FROM name [, ...] [ CASCADE | RESTRICT ] ; +``` + +## Examples + +- Create a sample role. + +```sql +postgres=# CREATE USER John; +``` + +- Grant John all permissions on the `postgres` database. + +```sql +postgres=# GRANT ALL ON DATABASE postgres TO John; +``` + +- Remove John's permissions from the `postgres` database. + +```sql +postgres=# REVOKE ALL ON DATABASE postgres FROM John; +``` + +## See Also + +[Other YSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/perf_execute.md b/docs/content/latest/api/ysql/commands/perf_execute.md new file mode 100644 index 000000000000..a31d37fa6ec6 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/perf_execute.md @@ -0,0 +1,77 @@ +--- +title: EXECUTE +description: EXECUTE +summary: EXECUTE +menu: + latest: + identifier: api-ysql-commands-execute + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/perf_execute +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`EXECUTE` command executes a previously prepared statement. This separation is a performance optimization because a prepared statement would be executed many times with different values while the syntax and semantics analysis and rewriting are done only once during `PREPARE` processing. + +## Syntax + +### Diagrams + +#### execute +EXECUTEname(,expression) + +### Grammar + +``` +EXECUTE name [ ( expression [, ...] ) ] +``` + +## Semantics + +- Each expression in `EXECUTE` must match with the corresponding data type from `PREPARE`. + +## Examples + +- Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +- Prepare a simple insert. + +```sql +postgres=# PREPARE ins (bigint, double precision, int, text) AS + INSERT INTO sample(k1, k2, v1, v2) VALUES ($1, $2, $3, $4); +``` + +- Execute the insert twice (with different parameters). + +```sql +postgres=# EXECUTE ins(1, 2.0, 3, 'a'); +``` +```sql +postgres=# EXECUTE ins(2, 3.0, 4, 'b'); +``` + +- Check the results. + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/explain.md b/docs/content/latest/api/ysql/commands/perf_explain.md similarity index 98% rename from docs/content/latest/api/ysql/commands/explain.md rename to docs/content/latest/api/ysql/commands/perf_explain.md index 3ec1c20abb3c..6a7ba4022f55 100644 --- a/docs/content/latest/api/ysql/commands/explain.md +++ b/docs/content/latest/api/ysql/commands/perf_explain.md @@ -1,14 +1,13 @@ --- -title: Explain Statement -description: Explain Statement +title: EXPLAIN +description: EXPLAIN Command summary: EXPLAIN menu: latest: identifier: api-ysql-commands-explain parent: api-ysql-commands - weight: 3700 aliases: - - /latest/api/ysql/commands/explain + - /latest/api/ysql/commands/perf_explain isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/commands/prepare_execute.md b/docs/content/latest/api/ysql/commands/perf_prepare.md similarity index 61% rename from docs/content/latest/api/ysql/commands/prepare_execute.md rename to docs/content/latest/api/ysql/commands/perf_prepare.md index dc9aa7bf2670..28a342720a66 100644 --- a/docs/content/latest/api/ysql/commands/prepare_execute.md +++ b/docs/content/latest/api/ysql/commands/perf_prepare.md @@ -1,14 +1,13 @@ --- -title: Prepared Statements -description: Prepared Statements. -summary: Prepare and execute statements. +title: PREPARE +description: PREPARE +summary: PREPARE menu: latest: identifier: api-ysql-commands-prepare parent: api-ysql-commands - weight: 3600 aliases: - - /latest/api/ysql/commands/prepare + - /latest/api/ysql/commands/perf_prepare isTocNested: true showAsideToc: true --- @@ -16,35 +15,23 @@ showAsideToc: true ## Synopsis The `PREPARE` command creates a prepared statement by parsing, analyzing and rewriting (but not executing) the target statement. -Then, the `EXECUTE` command can be issued against the prepared statement actually execute it. This separation is useful as an optimization -for the case when a statement would be executed many times with different parameters. Then the parsing, analysis and rewriting steps can only -be done once (during `PREPARE`). - ## Syntax ### Diagrams -#### prepare PREPAREname(,data_type)ASstatement - -#### execute -EXECUTEname(,expression) - ### Grammar ``` PREPARE name [ ( data_type [, ...] ) ] AS statement - -EXECUTE name [ ( expression [, ...] ) ] ``` ## Semantics - The statement in `PREPARE` may (should) contain parameters (e.g. `$1`) that will be provided by the expression list in `EXECUTE`. - The data type list in `PREPARE` represent the types for the parameters used in the statement. -- Each expression in `EXECUTE` must match with the corresponding data type from `PREPARE`. ## Examples diff --git a/docs/content/latest/api/ysql/commands/txn_abort.md b/docs/content/latest/api/ysql/commands/txn_abort.md new file mode 100644 index 000000000000..b7fad5388ba8 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_abort.md @@ -0,0 +1,150 @@ +--- +title: ABORT +description: ABORT Command +summary: Overview of ABORT commands. +menu: + latest: + identifier: api-ysql-commands-txn-abort + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn_abort +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`ABORT` commands rolls back the current transaction and discards all updates by the transaction. + +## Grammar + +### Diagrams + +ABORTTRANSACTIONWORK + +### Syntax + +``` +abort_transaction ::= 'ABORT' [ 'TRANSACTION' | 'WORK' ] ; +``` + +## Semantics +- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). +- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). + +## Examples + +Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. + +For Mac/Linux: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +``` + +For Docker: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +``` + + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Begin a transaction and insert some rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); +``` + +Start a new shell with `psql` and begin another transaction to insert some more rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); +``` + +In each shell, check the only the rows from the current transaction are visible. + +1st shell. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` +2nd shell + +```sql +postgres=# SELECT * FROM sample; -- run in second shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +Commit the first transaction and abort the second one. + +```sql +postgres=# COMMIT TRANSACTION; -- run in first shell. +``` + +Abort the current transaction (from the first shell). + +```sql +postgres=# ABORT TRANSACTION; -- run second shell. +``` + +In each shell check that only the rows from the committed transaction are visible. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +```sql +postgres=# SELECT * FROM sample; -- run in second shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_begin.md b/docs/content/latest/api/ysql/commands/txn_begin.md new file mode 100644 index 000000000000..9cfa565bc807 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_begin.md @@ -0,0 +1,150 @@ +--- +title: BEGIN TRANSACTION +description: BEGIN TRANSACTION +summary: BEGIN TRANSACTION +menu: + latest: + identifier: api-ysql-commands-txn-begin + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn-begin +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`BEGIN` starts a new transaction with the default (or given) isolation level. + +## Grammar + +### Diagrams + +ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK + +### Syntax + +``` +transaction ::= 'BEGIN' [ 'TRANSACTION' | 'WORK' ] ; +``` + +## Semantics +- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). +- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). + +## Examples + +Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. + +For Mac/Linux: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +``` + +For Docker: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +``` + + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Begin a transaction and insert some rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); +``` + +Start a new shell with `psql` and begin another transaction to insert some more rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); +``` + +In each shell, check the only the rows from the current transaction are visible. + +1st shell. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` +2nd shell + +```sql +postgres=# SELECT * FROM sample; -- run in second shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +Commit the first transaction and abort the second one. + +```sql +postgres=# COMMIT TRANSACTION; -- run in first shell. +``` + +Abort the current transaction (from the first shell). + +```sql +postgres=# ABORT TRANSACTION; -- run second shell. +``` + +In each shell check that only the rows from the committed transaction are visible. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +```sql +postgres=# SELECT * FROM sample; -- run in second shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_commit.md b/docs/content/latest/api/ysql/commands/txn_commit.md new file mode 100644 index 000000000000..53a893f7c2eb --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_commit.md @@ -0,0 +1,151 @@ +--- +title: COMMIT +description: COMMIT +summary: COMMIT +menu: + latest: + identifier: api-ysql-commands-txn-commit + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn_commit +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`COMMIT` commit the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs. + +## Grammar + +### Diagrams + +ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK + +### Syntax + +``` +commit_transaction ::= { 'COMMIT' } [ 'TRANSACTION' | 'WORK' ] ; +``` + +## Semantics + +- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). +- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). + +## Examples + +Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. + +For Mac/Linux: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +``` + +For Docker: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +``` + + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Begin a transaction and insert some rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); +``` + +Start a new shell with `psql` and begin another transaction to insert some more rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); +``` + +In each shell, check the only the rows from the current transaction are visible. + +1st shell. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` +2nd shell + +```sql +postgres=# SELECT * FROM sample; -- run in second shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +Commit the first transaction and abort the second one. + +```sql +postgres=# COMMIT TRANSACTION; -- run in first shell. +``` + +Abort the current transaction (from the first shell). + +```sql +postgres=# ABORT TRANSACTION; -- run second shell. +``` + +In each shell check that only the rows from the committed transaction are visible. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +```sql +postgres=# SELECT * FROM sample; -- run in second shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_end.md b/docs/content/latest/api/ysql/commands/txn_end.md new file mode 100644 index 000000000000..cfc569018930 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_end.md @@ -0,0 +1,150 @@ +--- +title: END TRANSACTION +description: END TRANSACTION +summary: END TRANSACTION +menu: + latest: + identifier: api-ysql-commands-txn-end + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn-end +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`END` commits the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs. + +## Grammar + +### Diagrams + +ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK + +### Syntax + +``` +end_transaction ::= 'END' [ 'TRANSACTION' | 'WORK' ] ; +``` + +## Semantics +- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). +- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). + +## Examples + +Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. + +For Mac/Linux: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +``` + +For Docker: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +``` + + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Begin a transaction and insert some rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); +``` + +Start a new shell with `psql` and begin another transaction to insert some more rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); +``` + +In each shell, check the only the rows from the current transaction are visible. + +1st shell. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` +2nd shell + +```sql +postgres=# SELECT * FROM sample; -- run in second shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +Commit the first transaction and abort the second one. + +```sql +postgres=# COMMIT TRANSACTION; -- run in first shell. +``` + +Abort the current transaction (from the first shell). + +```sql +postgres=# ABORT TRANSACTION; -- run second shell. +``` + +In each shell check that only the rows from the committed transaction are visible. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +```sql +postgres=# SELECT * FROM sample; -- run in second shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_rollback.md b/docs/content/latest/api/ysql/commands/txn_rollback.md new file mode 100644 index 000000000000..042ff5f81cbf --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_rollback.md @@ -0,0 +1,151 @@ +--- +title: ROLLBACK +description: ROLLBACK +summary: ROLLBACK +menu: + latest: + identifier: api-ysql-commands-txn-rollback + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn-rollback +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`ROLLBACK` roll back the current transactions. All changes included in this transactions will be discarded. + +## Grammar + +### Diagrams + +ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK + +### Syntax + +``` +rollback_transaction ::= { 'ROLLBACK' } [ 'TRANSACTION' | 'WORK' ] ; +``` + +## Semantics + +- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). +- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). + +## Examples + +Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. + +For Mac/Linux: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +``` + +For Docker: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +``` + + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Begin a transaction and insert some rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); +``` + +Start a new shell with `psql` and begin another transaction to insert some more rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); +``` + +In each shell, check the only the rows from the current transaction are visible. + +1st shell. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` +2nd shell + +```sql +postgres=# SELECT * FROM sample; -- run in second shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +Commit the first transaction and abort the second one. + +```sql +postgres=# COMMIT TRANSACTION; -- run in first shell. +``` + +Abort the current transaction (from the first shell). + +```sql +postgres=# ABORT TRANSACTION; -- run second shell. +``` + +In each shell check that only the rows from the committed transaction are visible. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +```sql +postgres=# SELECT * FROM sample; -- run in second shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_set.md b/docs/content/latest/api/ysql/commands/txn_set.md new file mode 100644 index 000000000000..60a41ccc69a6 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_set.md @@ -0,0 +1,151 @@ +--- +title: SET TRANSACTION +description: SET TRANSACTION +summary: SET TRANSACTION +menu: + latest: + identifier: api-ysql-commands-txn-set + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn_set +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`SET` command is used to set the current transaction isolation level. + +## Grammar + +### Diagrams + +SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTEDREADCOMMITTEDREPEATABLEREAD + +### Syntax + +``` +set ::= SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ } +``` + +## Semantics + +- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). +- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). + +## Examples + +Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. + +For Mac/Linux: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +``` + +For Docker: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +``` + + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Begin a transaction and insert some rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); +``` + +Start a new shell with `psql` and begin another transaction to insert some more rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); +``` + +In each shell, check the only the rows from the current transaction are visible. + +1st shell. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` +2nd shell + +```sql +postgres=# SELECT * FROM sample; -- run in second shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +Commit the first transaction and abort the second one. + +```sql +postgres=# COMMIT TRANSACTION; -- run in first shell. +``` + +Abort the current transaction (from the first shell). + +```sql +postgres=# ABORT TRANSACTION; -- run second shell. +``` + +In each shell check that only the rows from the committed transaction are visible. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +```sql +postgres=# SELECT * FROM sample; -- run in second shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_show.md b/docs/content/latest/api/ysql/commands/txn_show.md new file mode 100644 index 000000000000..647e49a5fc67 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_show.md @@ -0,0 +1,151 @@ +--- +title: SHOW TRANSACTION +description: SHOW TRANSACTION +summary: SHOW TRANSACTION +menu: + latest: + identifier: api-ysql-commands-txn-show + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn_show +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +YugaByte's PostgresSQL API currently supports the following transactions-related SQL commands `BEGIN`, `ABORT`, `ROLLBACK`, `END`, `COMMIT`. +Additionally the `SET` and `SHOW` commands can be used to set and, respectively, show the current transaction isolation level. + +## Grammar + +### Diagrams + +SHOWTRANSACTIONISOLATIONLEVEL + +### Syntax + +``` +show ::= SHOW TRANSACTION ISOLATION LEVEL +``` + +## Semantics + +- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). +- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). + +## Examples + +Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. + +For Mac/Linux: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +``` + +For Docker: + +```sh +$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +``` + + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Begin a transaction and insert some rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); +``` + +Start a new shell with `psql` and begin another transaction to insert some more rows. + +```sql +postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; +``` + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); +``` + +In each shell, check the only the rows from the current transaction are visible. + +1st shell. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` +2nd shell + +```sql +postgres=# SELECT * FROM sample; -- run in second shell +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 2 | 3 | a + 2 | 3 | 4 | b +(2 rows) +``` + +Commit the first transaction and abort the second one. + +```sql +postgres=# COMMIT TRANSACTION; -- run in first shell. +``` + +Abort the current transaction (from the first shell). + +```sql +postgres=# ABORT TRANSACTION; -- run second shell. +``` + +In each shell check that only the rows from the committed transaction are visible. + +```sql +postgres=# SELECT * FROM sample; -- run in first shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +```sql +postgres=# SELECT * FROM sample; -- run in second shell. +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 1 | 3 | 4 | b +(2 rows) +``` + +## See Also + +[`SET`](../txn_set) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/components/_index.md b/docs/content/latest/api/ysql/components/_index.md new file mode 100644 index 000000000000..2570812d5ef8 --- /dev/null +++ b/docs/content/latest/api/ysql/components/_index.md @@ -0,0 +1,31 @@ +--- +title: Components +description: YSQL Components (To Be Completed) +summary: Overview on SQL Components +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-components + parent: api-ysql + weight: 3100 +aliases: + - /latest/api/ysql/components/ +isTocNested: true +showAsideToc: true +--- + +There are different components of YSQL, YugaByte Structured Query Language. + +## Data Definition Language (DDL) +DDL statements are provided to define a database structure, modify it, and delete it by using CREATE, ALTER, and DROP commands respectively. + +## Data Manipulation Language (DML) +DML statements are provided to modify the contents of a database by using INSERT, UPDATE, DELETE, and SELECT commands. + +## Data Control Language (DCL) +DCL statements are provided to protect and prevent it from corruptions by using GRANT and REVOKE commands. + +## Transaction Control +## Session Control +## System Control +## Perfomance Tuning diff --git a/docs/content/latest/api/ysql/commands/permissions.md b/docs/content/latest/api/ysql/components/dcl.md similarity index 96% rename from docs/content/latest/api/ysql/commands/permissions.md rename to docs/content/latest/api/ysql/components/dcl.md index dad5c8448109..5ed0e212cc63 100644 --- a/docs/content/latest/api/ysql/commands/permissions.md +++ b/docs/content/latest/api/ysql/components/dcl.md @@ -1,14 +1,15 @@ --- -title: Roles and Permissions +title: Data Control Language +linktitle: DCL description: Roles and Permissions summary: Roles and Permissions menu: latest: - identifier: api-ysql-commands-permissions - parent: api-ysql-commands - weight: 3500 + identifier: api-ysql-components-dcl + parent: api-ysql-components + weight: 3300 aliases: - - /latest/api/ysql/commands/permissions + - /latest/api/ysql/components/dcl isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/commands/transactions.md b/docs/content/latest/api/ysql/components/tcl.md similarity index 97% rename from docs/content/latest/api/ysql/commands/transactions.md rename to docs/content/latest/api/ysql/components/tcl.md index 9ea90c36c68f..f62e675e3fa9 100644 --- a/docs/content/latest/api/ysql/commands/transactions.md +++ b/docs/content/latest/api/ysql/components/tcl.md @@ -1,14 +1,15 @@ --- -title: Transactions +title: Transaction Control Language +linktitle: TCL description: Transactions summary: Overview of transaction-related commands. menu: latest: - identifier: api-ysql-commands-transactions - parent: api-ysql-commands + identifier: api-ysql-components-tcl + parent: api-ysql-components weight: 3400 aliases: - - /latest/api/ysql/commands/transactions + - /latest/api/ysql/components/tcl isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/datatypes/_index.md b/docs/content/latest/api/ysql/datatypes/_index.md index 63929506b5bc..224a5d70098b 100644 --- a/docs/content/latest/api/ysql/datatypes/_index.md +++ b/docs/content/latest/api/ysql/datatypes/_index.md @@ -1,13 +1,13 @@ --- title: Datatypes -description: PostgreSQL-Compatible Datatypes +description: YSQL Datatypes summary: Datatype overview and specification. image: /images/section_icons/api/pgsql.png menu: latest: identifier: api-ysql-datatypes parent: api-ysql - weight: 3300 + weight: 4200 aliases: - /latest/api/ysql/datatypes/ isTocNested: true diff --git a/docs/content/latest/api/ysql/elements/_index.md b/docs/content/latest/api/ysql/elements/_index.md new file mode 100644 index 000000000000..ed2b6aa54062 --- /dev/null +++ b/docs/content/latest/api/ysql/elements/_index.md @@ -0,0 +1,29 @@ +--- +title: Elements +description: YSQL Elements (To Be Completed) +summary: Overview on YSQL Elements +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-elements + parent: api-ysql + weight: 3200 +aliases: + - /latest/api/ysql/elements/ +isTocNested: true +showAsideToc: true +--- + +This section discusses the elements that are used to construct YSQL, YugaByte Structured Query Language. + +## Datatypes +All PostgreSQL compatible datatypes are provided. + +## Expressions +All PostgreSQL compatible builtin functions and operators are provided. + +## Database Objects + +## Names and Qualifiers + +## Comments diff --git a/docs/content/latest/api/ysql/exprs/_index.md b/docs/content/latest/api/ysql/exprs/_index.md new file mode 100644 index 000000000000..c3e79cb70468 --- /dev/null +++ b/docs/content/latest/api/ysql/exprs/_index.md @@ -0,0 +1,17 @@ +--- +title: Expressions +description: Overview on YSQL Expressions +summary: Overview on YSQL Expressions +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-exprs + parent: api-ysql + weight: 4300 +aliases: + - /latest/api/ysql/exprs/ +isTocNested: true +showAsideToc: true +--- + +This section discusses the expressions that are supported in YSQL From 81d62449ccc7d1ff9da2d02f15cd8cecfc10aea6 Mon Sep 17 00:00:00 2001 From: Neil Le Date: Tue, 26 Feb 2019 23:19:22 -0800 Subject: [PATCH 04/13] Add new commands --- .../latest/api/ysql/commands/cmd_copy.md | 35 ++++++++++++++++++ .../api/ysql/commands/cmd_create_schema.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/cmd_reset.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/cmd_set.md | 35 ++++++++++++++++++ .../api/ysql/commands/cmd_set_constraints.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/cmd_show.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/ddl_alter_db.md | 37 +++++++++++++++++++ .../api/ysql/commands/ddl_alter_table.md | 35 ++++++++++++++++++ .../api/ysql/commands/ddl_create_index.md | 35 ++++++++++++++++++ .../api/ysql/commands/ddl_create_seq.md | 35 ++++++++++++++++++ .../api/ysql/commands/ddl_create_table_as.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/ddl_truncate.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/dml_delete.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/dml_update.md | 35 ++++++++++++++++++ .../api/ysql/commands/txn_deallocate.md | 35 ++++++++++++++++++ .../latest/api/ysql/commands/txn_lock.md | 35 ++++++++++++++++++ .../latest/api/ysql/datatypes/type_serial.md | 28 ++++++++++++++ 17 files changed, 590 insertions(+) create mode 100644 docs/content/latest/api/ysql/commands/cmd_copy.md create mode 100644 docs/content/latest/api/ysql/commands/cmd_create_schema.md create mode 100644 docs/content/latest/api/ysql/commands/cmd_reset.md create mode 100644 docs/content/latest/api/ysql/commands/cmd_set.md create mode 100644 docs/content/latest/api/ysql/commands/cmd_set_constraints.md create mode 100644 docs/content/latest/api/ysql/commands/cmd_show.md create mode 100644 docs/content/latest/api/ysql/commands/ddl_alter_db.md create mode 100644 docs/content/latest/api/ysql/commands/ddl_alter_table.md create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_index.md create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_seq.md create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_table_as.md create mode 100644 docs/content/latest/api/ysql/commands/ddl_truncate.md create mode 100644 docs/content/latest/api/ysql/commands/dml_delete.md create mode 100644 docs/content/latest/api/ysql/commands/dml_update.md create mode 100644 docs/content/latest/api/ysql/commands/txn_deallocate.md create mode 100644 docs/content/latest/api/ysql/commands/txn_lock.md create mode 100644 docs/content/latest/api/ysql/datatypes/type_serial.md diff --git a/docs/content/latest/api/ysql/commands/cmd_copy.md b/docs/content/latest/api/ysql/commands/cmd_copy.md new file mode 100644 index 000000000000..36286d3d5e16 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/cmd_copy.md @@ -0,0 +1,35 @@ +--- +title: COPY +linkTitle: COPY +summary: COPY +description: COPY +menu: + latest: + identifier: api-ysql-commands-copy + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/cmd_copy +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_create_schema.md b/docs/content/latest/api/ysql/commands/cmd_create_schema.md new file mode 100644 index 000000000000..e607acd5ffda --- /dev/null +++ b/docs/content/latest/api/ysql/commands/cmd_create_schema.md @@ -0,0 +1,35 @@ +--- +title: CREATE SCHEMA +linkTitle: CREATE SCHEMA +summary: Create schema +description: CREATE SCHEMA +menu: + latest: + identifier: api-ysql-commands-create-schema + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/cmd_create_schema +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_reset.md b/docs/content/latest/api/ysql/commands/cmd_reset.md new file mode 100644 index 000000000000..577f9cfb6e2a --- /dev/null +++ b/docs/content/latest/api/ysql/commands/cmd_reset.md @@ -0,0 +1,35 @@ +--- +title: RESET +linkTitle: RESET +summary: Reset a system or session variable to factory settings. +description: RESET +menu: + latest: + identifier: api-ysql-commands-reset + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/cmd_reset +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_set.md b/docs/content/latest/api/ysql/commands/cmd_set.md new file mode 100644 index 000000000000..e9df1b8cbfa9 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/cmd_set.md @@ -0,0 +1,35 @@ +--- +title: SET +linkTitle: SET +summary: Set a session or system variable +description: SET +menu: + latest: + identifier: api-ysql-commands-set + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/cmd_set +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_set_constraints.md b/docs/content/latest/api/ysql/commands/cmd_set_constraints.md new file mode 100644 index 000000000000..60c74b7ef5d4 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/cmd_set_constraints.md @@ -0,0 +1,35 @@ +--- +title: SET CONSTRAINTS +linkTitle: SET CONSTRAINTS +summary: SET CONSTRAINTS +description: SET CONSTRAINTS +menu: + latest: + identifier: api-ysql-commands-set-constraints + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/cmd_set_constraints +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_show.md b/docs/content/latest/api/ysql/commands/cmd_show.md new file mode 100644 index 000000000000..1a059e64b35d --- /dev/null +++ b/docs/content/latest/api/ysql/commands/cmd_show.md @@ -0,0 +1,35 @@ +--- +title: SHOW +linkTitle: SHOW +summary: Display values of a system or session variable +description: SHOW +menu: + latest: + identifier: api-ysql-commands-show + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/cmd_show +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_db.md b/docs/content/latest/api/ysql/commands/ddl_alter_db.md new file mode 100644 index 000000000000..652bad4c9505 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_alter_db.md @@ -0,0 +1,37 @@ +--- +title: ALTER DATABASE +linkTitle: ALTER DATABASE +summary: Alter database +description: ALTER DATABASE +menu: + latest: + identifier: api-ysql-commands-alter-db + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_alter_db +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +This include RenameStmt for DATABASE + +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_table.md b/docs/content/latest/api/ysql/commands/ddl_alter_table.md new file mode 100644 index 000000000000..97c47c539d22 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_alter_table.md @@ -0,0 +1,35 @@ +--- +title: ALTER TABLE +linkTitle: ALTER TABLE +summary: Alter a table in a database +description: ALTER TABLE +menu: + latest: + identifier: api-ysql-commands-alter-table + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_alter_table +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_index.md b/docs/content/latest/api/ysql/commands/ddl_create_index.md new file mode 100644 index 000000000000..b29b5279f550 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_index.md @@ -0,0 +1,35 @@ +--- +title: CREATE INDEX +linkTitle: CREATE INDEX +summary: Create index on a table in a database +description: CREATE INDEX +menu: + latest: + identifier: api-ysql-commands-create-index + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_index +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_seq.md b/docs/content/latest/api/ysql/commands/ddl_create_seq.md new file mode 100644 index 000000000000..df070adaa199 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_seq.md @@ -0,0 +1,35 @@ +--- +title: CREATE SEQUENCE +linkTitle: CREATE SEQUENCE +summary: CREATE SEQUENCE +description: CREATE SEQUENCE +menu: + latest: + identifier: api-ysql-commands-create-seq + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_seq +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table_as.md b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md new file mode 100644 index 000000000000..e8bed71b3209 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md @@ -0,0 +1,35 @@ +--- +title: CREATE TABLE AS +linkTitle: CREATE TABLE AS +summary: Create a new table from a query result +description: CREATE TABLE AS +menu: + latest: + identifier: api-ysql-commands-create-table-as + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_table_as +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_truncate.md b/docs/content/latest/api/ysql/commands/ddl_truncate.md new file mode 100644 index 000000000000..434b675f0527 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_truncate.md @@ -0,0 +1,35 @@ +--- +title: TRUNCATE +linkTitle: TRUNCATE +summary: Clear all rows in a table +description: TRUNCATE +menu: + latest: + identifier: api-ysql-commands-truncate + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_truncate +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_delete.md b/docs/content/latest/api/ysql/commands/dml_delete.md new file mode 100644 index 000000000000..2a9c28c25f76 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dml_delete.md @@ -0,0 +1,35 @@ +--- +title: DELETE +linkTitle: DELETE +summary: DELETE +description: DELETE +menu: + latest: + identifier: api-ysql-commands-delete + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/dml_delete +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_update.md b/docs/content/latest/api/ysql/commands/dml_update.md new file mode 100644 index 000000000000..e762544e3ca3 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dml_update.md @@ -0,0 +1,35 @@ +--- +title: UPDATE +linkTitle: UPDATE +summary: Update table data +description: UPDATE +menu: + latest: + identifier: api-ysql-commands-update + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/dml_update +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_deallocate.md b/docs/content/latest/api/ysql/commands/txn_deallocate.md new file mode 100644 index 000000000000..7616f1706b01 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_deallocate.md @@ -0,0 +1,35 @@ +--- +title: DEALLOCATE +linkTitle: DEALLOCATE +summary: Deallocate a prepared statement +description: DEALLOCATE +menu: + latest: + identifier: api-ysql-commands-deallocate + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn_deallocate +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_lock.md b/docs/content/latest/api/ysql/commands/txn_lock.md new file mode 100644 index 000000000000..3560c9e2d72d --- /dev/null +++ b/docs/content/latest/api/ysql/commands/txn_lock.md @@ -0,0 +1,35 @@ +--- +title: LOCK +linkTitle: LOCK +summary: Lock a table +description: LOCK +menu: + latest: + identifier: api-ysql-commands-lock + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/txn_lock +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +### Diagram + +### Grammar +``` +``` + +Where + +## Semantics + +### PRIMARY KEY + +## Examples + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/datatypes/type_serial.md b/docs/content/latest/api/ysql/datatypes/type_serial.md new file mode 100644 index 000000000000..7d9f0fb4492a --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/type_serial.md @@ -0,0 +1,28 @@ +--- +title: SERIAL Datatypes +linktitle: SERIAL +summary: SERIAL Datatypes +description: SERIAL Datatypes +menu: + latest: + identifier: api-ysql-datatypes-serial + parent: api-ysql-datatypes +aliases: + - /latest/api/ysql/datatypes/type_serial +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +## Syntax + +``` +type_specification ::= SMALLSERIAL | SERIAL | BIGSERIAL +``` + +## Semantics + +## See Also + +[Data Types](../type) From a10f35c1f39ae2113bfce9b2e23ffb5b04551017 Mon Sep 17 00:00:00 2001 From: Neil Le Date: Wed, 27 Feb 2019 18:23:32 -0800 Subject: [PATCH 05/13] Address review comments --- .../latest/api/ysql/commands/txn_abort.md | 6 +- .../latest/api/ysql/commands/txn_begin.md | 4 +- .../latest/api/ysql/commands/txn_commit.md | 4 +- .../latest/api/ysql/commands/txn_end.md | 4 +- .../latest/api/ysql/commands/txn_rollback.md | 4 +- .../latest/api/ysql/commands/txn_set.md | 4 +- .../latest/api/ysql/commands/txn_show.md | 4 +- .../latest/api/ysql/components/_index.md | 31 ---- .../content/latest/api/ysql/components/dcl.md | 71 -------- .../content/latest/api/ysql/components/tcl.md | 172 ------------------ .../latest/api/ysql/elements/_index.md | 29 --- docs/content/latest/api/ysql/keywords.md | 16 ++ docs/content/latest/api/ysql/overview.md | 57 ++++++ .../content/latest/api/ysql/reserved_names.md | 16 ++ 14 files changed, 103 insertions(+), 319 deletions(-) delete mode 100644 docs/content/latest/api/ysql/components/_index.md delete mode 100644 docs/content/latest/api/ysql/components/dcl.md delete mode 100644 docs/content/latest/api/ysql/components/tcl.md delete mode 100644 docs/content/latest/api/ysql/elements/_index.md create mode 100644 docs/content/latest/api/ysql/keywords.md create mode 100644 docs/content/latest/api/ysql/overview.md create mode 100644 docs/content/latest/api/ysql/reserved_names.md diff --git a/docs/content/latest/api/ysql/commands/txn_abort.md b/docs/content/latest/api/ysql/commands/txn_abort.md index b7fad5388ba8..870c7915b03e 100644 --- a/docs/content/latest/api/ysql/commands/txn_abort.md +++ b/docs/content/latest/api/ysql/commands/txn_abort.md @@ -20,8 +20,6 @@ showAsideToc: true ### Diagrams -ABORTTRANSACTIONWORK - ### Syntax ``` @@ -39,13 +37,13 @@ Restart the YugaByte cluster and set the flag to enable transactions for the Pos For Mac/Linux: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +$ ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres ``` For Docker: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +$ ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres ``` diff --git a/docs/content/latest/api/ysql/commands/txn_begin.md b/docs/content/latest/api/ysql/commands/txn_begin.md index 9cfa565bc807..bf9b2f770291 100644 --- a/docs/content/latest/api/ysql/commands/txn_begin.md +++ b/docs/content/latest/api/ysql/commands/txn_begin.md @@ -39,13 +39,13 @@ Restart the YugaByte cluster and set the flag to enable transactions for the Pos For Mac/Linux: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +$ ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres ``` For Docker: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +$ ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres ``` diff --git a/docs/content/latest/api/ysql/commands/txn_commit.md b/docs/content/latest/api/ysql/commands/txn_commit.md index 53a893f7c2eb..615295363e33 100644 --- a/docs/content/latest/api/ysql/commands/txn_commit.md +++ b/docs/content/latest/api/ysql/commands/txn_commit.md @@ -40,13 +40,13 @@ Restart the YugaByte cluster and set the flag to enable transactions for the Pos For Mac/Linux: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +$ ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres ``` For Docker: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +$ ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres ``` diff --git a/docs/content/latest/api/ysql/commands/txn_end.md b/docs/content/latest/api/ysql/commands/txn_end.md index cfc569018930..429733598a76 100644 --- a/docs/content/latest/api/ysql/commands/txn_end.md +++ b/docs/content/latest/api/ysql/commands/txn_end.md @@ -39,13 +39,13 @@ Restart the YugaByte cluster and set the flag to enable transactions for the Pos For Mac/Linux: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +$ ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres ``` For Docker: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +$ ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres ``` diff --git a/docs/content/latest/api/ysql/commands/txn_rollback.md b/docs/content/latest/api/ysql/commands/txn_rollback.md index 042ff5f81cbf..958cf4f6e966 100644 --- a/docs/content/latest/api/ysql/commands/txn_rollback.md +++ b/docs/content/latest/api/ysql/commands/txn_rollback.md @@ -40,13 +40,13 @@ Restart the YugaByte cluster and set the flag to enable transactions for the Pos For Mac/Linux: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +$ ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres ``` For Docker: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +$ ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres ``` diff --git a/docs/content/latest/api/ysql/commands/txn_set.md b/docs/content/latest/api/ysql/commands/txn_set.md index 60a41ccc69a6..45844556fda5 100644 --- a/docs/content/latest/api/ysql/commands/txn_set.md +++ b/docs/content/latest/api/ysql/commands/txn_set.md @@ -40,13 +40,13 @@ Restart the YugaByte cluster and set the flag to enable transactions for the Pos For Mac/Linux: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +$ ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres ``` For Docker: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +$ ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres ``` diff --git a/docs/content/latest/api/ysql/commands/txn_show.md b/docs/content/latest/api/ysql/commands/txn_show.md index 647e49a5fc67..5c02da1b21f2 100644 --- a/docs/content/latest/api/ysql/commands/txn_show.md +++ b/docs/content/latest/api/ysql/commands/txn_show.md @@ -41,13 +41,13 @@ Restart the YugaByte cluster and set the flag to enable transactions for the Pos For Mac/Linux: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres +$ ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres ``` For Docker: ```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres +$ ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres ``` diff --git a/docs/content/latest/api/ysql/components/_index.md b/docs/content/latest/api/ysql/components/_index.md deleted file mode 100644 index 2570812d5ef8..000000000000 --- a/docs/content/latest/api/ysql/components/_index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Components -description: YSQL Components (To Be Completed) -summary: Overview on SQL Components -image: /images/section_icons/api/pgsql.png -menu: - latest: - identifier: api-ysql-components - parent: api-ysql - weight: 3100 -aliases: - - /latest/api/ysql/components/ -isTocNested: true -showAsideToc: true ---- - -There are different components of YSQL, YugaByte Structured Query Language. - -## Data Definition Language (DDL) -DDL statements are provided to define a database structure, modify it, and delete it by using CREATE, ALTER, and DROP commands respectively. - -## Data Manipulation Language (DML) -DML statements are provided to modify the contents of a database by using INSERT, UPDATE, DELETE, and SELECT commands. - -## Data Control Language (DCL) -DCL statements are provided to protect and prevent it from corruptions by using GRANT and REVOKE commands. - -## Transaction Control -## Session Control -## System Control -## Perfomance Tuning diff --git a/docs/content/latest/api/ysql/components/dcl.md b/docs/content/latest/api/ysql/components/dcl.md deleted file mode 100644 index 5ed0e212cc63..000000000000 --- a/docs/content/latest/api/ysql/components/dcl.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Data Control Language -linktitle: DCL -description: Roles and Permissions -summary: Roles and Permissions -menu: - latest: - identifier: api-ysql-components-dcl - parent: api-ysql-components - weight: 3300 -aliases: - - /latest/api/ysql/components/dcl -isTocNested: true -showAsideToc: true ---- - -## Synopsis - -YugaByte supports the `CREATE USER` and `GRANT`/`REVOKE` commands to create new roles and set/remove permissions. - -## Syntax - -### Diagrams - -#### create_user -CREATEUSERname - -#### grant - -GRANTprivilegesONprivilege_targetTO,nameWITHGRANTOPTION - -#### revoke -REVOKEprivilegesONprivilege_targetFROM,nameCASCADERESTRICT - -### Grammar - -``` - -create_user ::= CREATE USER name ; - -grant ::= GRANT privileges ON privilege_target TO name [, ...] [ WITH GRANT OPTION ] ; - -revoke ::= REVOKE privileges ON privilege_target FROM name [, ...] [ CASCADE | RESTRICT ] ; -``` - -- Note: For the list of possible `privileges` or `privilege_target`s see [this](https://www.postgresql.org/docs/9.0/static/sql-grant.html) page. - - -## Examples - -- Create a sample role. - -```sql -postgres=# CREATE USER John; -``` - -- Grant John all permissions on the `postgres` database. - -```sql -postgres=# GRANT ALL ON DATABASE postgres TO John; -``` - -- Remove John's permissions from the `postgres` database. - -```sql -postgres=# REVOKE ALL ON DATABASE postgres FROM John; -``` - -## See Also - -[Other PostgreSQL Statements](..) \ No newline at end of file diff --git a/docs/content/latest/api/ysql/components/tcl.md b/docs/content/latest/api/ysql/components/tcl.md deleted file mode 100644 index f62e675e3fa9..000000000000 --- a/docs/content/latest/api/ysql/components/tcl.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: Transaction Control Language -linktitle: TCL -description: Transactions -summary: Overview of transaction-related commands. -menu: - latest: - identifier: api-ysql-components-tcl - parent: api-ysql-components - weight: 3400 -aliases: - - /latest/api/ysql/components/tcl -isTocNested: true -showAsideToc: true ---- - -## Synopsis - -YugaByte's PostgresSQL API currently supports the following transactions-related SQL commands `BEGIN`, `ABORT`, `ROLLBACK`, `END`, `COMMIT`. -Additionally the `SET` and `SHOW` commands can be used to set and, respectively, show the current transaction isolation level. - -## Grammar - -### Diagrams - -#### transaction - -ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK - -#### set - -SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTEDREADCOMMITTEDREPEATABLEREAD - -#### show - -SHOWTRANSACTIONISOLATIONLEVEL - -### Syntax - -``` -transaction ::= { 'ABORT' | 'ROLLBACK' | 'BEGIN' | 'END' | 'COMMIT' } [ 'TRANSACTION' | 'WORK' ] ; - -set ::= SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ } -show ::= SHOW TRANSACTION ISOLATION LEVEL -``` - -## Semantics - -- `BEGIN` starts a new transaction with the default (or given) isolation level. -- `END` or `COMMIT` commit the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs. -- `ABORT` or `ROLLBACK` roll back the current transactions. All changes included in this transactions will be discarded. - -- `SET` and `SHOW` commands can be used to set the current transaction isolation level. -- The `SERIALIZABLE` isolation level not yet supported. (This is currently in progress). -- Currently YugaByte will always use the snapshot isolation level internally. See more [here](../../../architecture/transactions/isolation-levels/). - -## Examples - -Restart the YugaByte cluster and set the flag to enable transactions for the PostgreSQL API. - -For Mac/Linux: - -```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-ctl destroy; ./bin/yb-ctl create --enable_postgres -``` - -For Docker: - -```sh -$ export YB_PG_TRANSACTIONS_ENABLED=1; ./bin/yb-docker-ctl destroy; ./bin/yb-docker-ctl create --enable_postgres -``` - - -Create a sample table. - -```sql -postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); -``` - - -Begin a transaction and insert some rows. - -```sql -postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -``` - -```sql -postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (1, 3.0, 4, 'b'); -``` - -Start a new shell with `psql` and begin another transaction to insert some more rows. - -```sql -postgres=# BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -``` - -```sql -postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (2, 2.0, 3, 'a'), (2, 3.0, 4, 'b'); -``` - -In each shell, check the only the rows from the current transaction are visible. - -1st shell. - -```sql -postgres=# SELECT * FROM sample; -- run in first shell -``` - -``` - k1 | k2 | v1 | v2 -----+----+----+---- - 1 | 2 | 3 | a - 1 | 3 | 4 | b -(2 rows) -``` -2nd shell - -```sql -postgres=# SELECT * FROM sample; -- run in second shell -``` - -``` - k1 | k2 | v1 | v2 -----+----+----+---- - 2 | 2 | 3 | a - 2 | 3 | 4 | b -(2 rows) -``` - -Commit the first transaction and abort the second one. - -```sql -postgres=# COMMIT TRANSACTION; -- run in first shell. -``` - -Abort the current transaction (from the first shell). - -```sql -postgres=# ABORT TRANSACTION; -- run second shell. -``` - -In each shell check that only the rows from the committed transaction are visible. - -```sql -postgres=# SELECT * FROM sample; -- run in first shell. -``` - -``` - k1 | k2 | v1 | v2 -----+----+----+---- - 1 | 2 | 3 | a - 1 | 3 | 4 | b -(2 rows) -``` - -```sql -postgres=# SELECT * FROM sample; -- run in second shell. -``` - -``` - k1 | k2 | v1 | v2 -----+----+----+---- - 1 | 2 | 3 | a - 1 | 3 | 4 | b -(2 rows) -``` - -## See Also - -[`INSERT`](../dml_insert) -[`SELECT`](../dml_select) -[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/elements/_index.md b/docs/content/latest/api/ysql/elements/_index.md deleted file mode 100644 index ed2b6aa54062..000000000000 --- a/docs/content/latest/api/ysql/elements/_index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Elements -description: YSQL Elements (To Be Completed) -summary: Overview on YSQL Elements -image: /images/section_icons/api/pgsql.png -menu: - latest: - identifier: api-ysql-elements - parent: api-ysql - weight: 3200 -aliases: - - /latest/api/ysql/elements/ -isTocNested: true -showAsideToc: true ---- - -This section discusses the elements that are used to construct YSQL, YugaByte Structured Query Language. - -## Datatypes -All PostgreSQL compatible datatypes are provided. - -## Expressions -All PostgreSQL compatible builtin functions and operators are provided. - -## Database Objects - -## Names and Qualifiers - -## Comments diff --git a/docs/content/latest/api/ysql/keywords.md b/docs/content/latest/api/ysql/keywords.md new file mode 100644 index 000000000000..0f940844525f --- /dev/null +++ b/docs/content/latest/api/ysql/keywords.md @@ -0,0 +1,16 @@ +--- +title: KEYWORDS +linkTitle: Keywords +description: List of Keywords +summary: Reference for YSQL API +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-keywords + parent: api-ysql + weight: 4500 +aliases: + - /latest/api/ysql/keywords +isTocNested: true +showAsideToc: true +--- diff --git a/docs/content/latest/api/ysql/overview.md b/docs/content/latest/api/ysql/overview.md new file mode 100644 index 000000000000..400f1a14ad3f --- /dev/null +++ b/docs/content/latest/api/ysql/overview.md @@ -0,0 +1,57 @@ +--- +title: Overview +description: Overview (To Be Completed) +summary: Overview on YSQL +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-overview + parent: api-ysql + weight: 3100 +aliases: + - /latest/api/ysql/overview +isTocNested: true +showAsideToc: true +--- + +This section provides a summary of what YSQL is offering. + +## Components +There are different components of YSQL, YugaByte Structured Query Language. +Provide link to command list here. + +### Data Definition Language (DDL) +DDL statements are provided to define a database structure, modify it, and delete it by using CREATE, ALTER, and DROP commands respectively. + +### Data Manipulation Language (DML) +DML statements are provided to modify the contents of a database by using INSERT, UPDATE, DELETE, and SELECT commands. + +### Data Control Language (DCL) +DCL statements are provided to protect and prevent it from corruptions by using GRANT and REVOKE commands. + +### Transaction Control +### Session Control +### System Control +### Perfomance Tuning + +## Language Elements +The following elements are used to construct YSQL. + +### Keywords +Provide link here. + +### Names and Qualifiers +Provide link to reserved name here (hidden columns, `pg_`, `yb_`) + +### Datatypes +All PostgreSQL compatible datatypes are provided. +Provide link here. + +### Expressions +All PostgreSQL compatible builtin functions and operators are provided. +Provide link here. + +### Database Objects +Define database, schema, table, column, index, etc. + +### Comments diff --git a/docs/content/latest/api/ysql/reserved_names.md b/docs/content/latest/api/ysql/reserved_names.md new file mode 100644 index 000000000000..d489cc4d8f6f --- /dev/null +++ b/docs/content/latest/api/ysql/reserved_names.md @@ -0,0 +1,16 @@ +--- +title: RESERVED NAMES +linkTitle: Reserved Names +description: List of RESERVED NAMES +summary: List of RESERVED NAMES +image: /images/section_icons/api/pgsql.png +menu: + latest: + identifier: api-ysql-reserved-names + parent: api-ysql + weight: 4600 +aliases: + - /latest/api/ysql/reserved_names +isTocNested: true +showAsideToc: true +--- From f1557ae61b421616e27a4ab16ead92f93aeda549 Mon Sep 17 00:00:00 2001 From: Neil Le Date: Wed, 6 Mar 2019 06:13:54 -0800 Subject: [PATCH 06/13] Fill documents with contents. --- .../latest/api/ysql/commands/_index.md | 44 +- .../latest/api/ysql/commands/cmd_copy.md | 34 +- .../api/ysql/commands/cmd_create_schema.md | 35 -- .../latest/api/ysql/commands/cmd_reset.md | 11 +- .../latest/api/ysql/commands/cmd_set.md | 17 +- .../latest/api/ysql/commands/cmd_show.md | 8 +- .../latest/api/ysql/commands/ddl_alter_db.md | 32 +- .../api/ysql/commands/ddl_alter_table.md | 25 +- .../api/ysql/commands/ddl_create_database.md | 38 +- .../api/ysql/commands/ddl_create_index.md | 24 +- .../api/ysql/commands/ddl_create_schema.md | 43 ++ .../api/ysql/commands/ddl_create_table.md | 1 + .../api/ysql/commands/ddl_create_table_as.md | 32 +- .../latest/api/ysql/commands/ddl_truncate.md | 42 +- .../latest/api/ysql/commands/dml_delete.md | 63 ++- .../latest/api/ysql/commands/dml_insert.md | 4 +- .../latest/api/ysql/commands/dml_update.md | 75 ++- .../api/ysql/commands/perf_deallocate.md | 53 +++ .../api/ysql/commands/txn_deallocate.md | 35 -- .../latest/api/ysql/commands/txn_lock.md | 19 +- ..._constraints.md => txn_set_constraints.md} | 9 +- .../latest/api/ysql/datatypes/_index.md | 60 ++- docs/content/latest/api/ysql/keywords.md | 437 +++++++++++++++++- .../content/latest/api/ysql/reserved_names.md | 19 +- 24 files changed, 1022 insertions(+), 138 deletions(-) delete mode 100644 docs/content/latest/api/ysql/commands/cmd_create_schema.md create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_schema.md create mode 100644 docs/content/latest/api/ysql/commands/perf_deallocate.md delete mode 100644 docs/content/latest/api/ysql/commands/txn_deallocate.md rename docs/content/latest/api/ysql/commands/{cmd_set_constraints.md => txn_set_constraints.md} (64%) diff --git a/docs/content/latest/api/ysql/commands/_index.md b/docs/content/latest/api/ysql/commands/_index.md index 5730ae0020ae..219b09609c11 100644 --- a/docs/content/latest/api/ysql/commands/_index.md +++ b/docs/content/latest/api/ysql/commands/_index.md @@ -18,29 +18,39 @@ The following table lists all SQL commands that are supported by YugaByte Databa | Statement | Description | |-----------|-------------| -| [`ABORT`|`ROLLBACK`](transactions) | Rollback a transaction | -| [`BEGIN`](transactions) | Start a transaction | +| [`ABORT`](txn_abort) | Rollback a transaction | +| [`ALTER DATABASE`](ddl_alter_db) | | +| [`ALTER TABLE`](ddl_alter_table) | | +| [`BEGIN TRANSACTION`](txn_begin) | Start a transaction | +| [`COMMIT`](txn_commit) | Commit a transaction | +| [`COPY`](cmd_copy) | | | [`CREATE DATABASE`](ddl_create_database) | Create a new database | | [`CREATE INDEX`](ddl_create_index) | Create a new index | +| [`CREATE SCHEMA`](ddl_create_schema) | Create a new schema (namespace) | +| [`CREATE SEQUENCE`](ddl_create_seq) | | | [`CREATE TABLE`](ddl_create_table) | Create a new table | -| [`CREATE USER`](ddl_create_user) | Create a new user/role | +| [`CREATE TABLE AS`](ddl_create_table_as) | Create a new table | +| [`CREATE USER`](dcl_create_user) | Create a new user (role) | | [`CREATE VIEW`](ddl_create_view) | Create a new view | +| [`DEALLOCATE`](txn_deallocate) | | | [`DELETE`](dml_delete) | Delete rows from a table | +| [`DROP DATABASE`](ddl_drop_database) | Delete a database and associated objects | | [`DROP TABLE`](ddl_drop_table) | Delete a table from a database | -| [`END` | `COMMIT`](transactions) | Commit a transaction | -| [`EXECUTE`](prepare_execute) | Insert rows into a table | -| [`EXPLAIN`](explain) | Insert rows into a table | +| [`END TRANSACTION`](txn_end) | Commit a transaction | +| [`EXECUTE`](perf_execute) | Insert rows into a table | +| [`EXPLAIN`](perf_explain) | Insert rows into a table | +| [`GRANT`](dcl_grant) | Grant permissions | | [`INSERT`](dml_insert) | Insert rows into a table | -| [`PREPARE`](prepare_execute) | Select rows from a table | +| [`LOCK`](txn_lock) | | +| [`PREPARE`](perf_prepare) | Select rows from a table | +| [`RESET`](cmd_reset) | | +| [`REVOKE`](dcl_revoke) | Revoke permissions | +| [`ROLLBACK`](txn_rollback) | Rollback a transaction | | [`SELECT`](dml_select) | Select rows from a table | -| [`SET`](transactions) | Select rows from a table | -| [`SHOW`](transactions) | Select rows from a table | -| [`TRUNCATE`](ddl_truncate_table) | Clear all rows from a table | +| [`SET`](cmd_set) | | +| [`SET CONSTRAINTS`](cmd_set_constraints) | | +| [`SET TRANSACTION`](txn_set) | | +| [`SHOW`](cmd_show) | | +| [`SHOW TRANSACTION`](txn_show) | | +| [`TRUNCATE`](ddl_truncate) | Clear all rows from a table | | [`UPDATE`](dml_update) | Update rows in a table | - - diff --git a/docs/content/latest/api/ysql/commands/cmd_copy.md b/docs/content/latest/api/ysql/commands/cmd_copy.md index 36286d3d5e16..3facc7639b8c 100644 --- a/docs/content/latest/api/ysql/commands/cmd_copy.md +++ b/docs/content/latest/api/ysql/commands/cmd_copy.md @@ -15,21 +15,51 @@ showAsideToc: true ## Synopsis +`COPY` command transfers data between tables and files. `COPY TO` copies from tables to files. `COPY FROM` copies from files to tables. `COPY` outputs the number of rows that were copied. + ## Syntax ### Diagram ### Grammar ``` +copy_from ::= COPY table_name [ ( column_name [, ...] ) ] + FROM { 'filename' | PROGRAM 'command' | STDIN } + [ [ WITH ] ( option [, ...] ) ] + +copy_to ::= COPY { table_name [ ( column_name [, ...] ) ] | ( query ) } + TO { 'filename' | PROGRAM 'command' | STDOUT } + [ [ WITH ] ( option [, ...] ) ] + +copy_option ::= + { FORMAT format_name | + OIDS [ boolean ] | + FREEZE [ boolean ] | + DELIMITER 'delimiter_character' | + NULL 'null_string' | + HEADER [ boolean ] | + QUOTE 'quote_character' | + ESCAPE 'escape_character' | + FORCE_QUOTE { ( column_name [, ...] ) | * } | + FORCE_NOT_NULL ( column_name [, ...] ) | + FORCE_NULL ( column_name [, ...] ) | + ENCODING 'encoding_name' } ``` Where +- `table_name` specifies the table to be copied. -## Semantics +- `column_name` speciies list of columns to be copied. -### PRIMARY KEY +- query can be either SELECT, VALUES, INSERT, UPDATE or DELETE whose results will be copied to files. RETURNING clause must be provided for INSERT, UPDATE and DELETE commands. + +- filename specifies an absolute or relative path of a file to be copied. ## Examples +- Errors are raised if table does not exist. +- `COPY TO` can only be used with regular tables. +- `COPY FROM` can be used with either tables, foreign tables, or views. + ## See Also [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_create_schema.md b/docs/content/latest/api/ysql/commands/cmd_create_schema.md deleted file mode 100644 index e607acd5ffda..000000000000 --- a/docs/content/latest/api/ysql/commands/cmd_create_schema.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: CREATE SCHEMA -linkTitle: CREATE SCHEMA -summary: Create schema -description: CREATE SCHEMA -menu: - latest: - identifier: api-ysql-commands-create-schema - parent: api-ysql-commands -aliases: - - /latest/api/ysql/commands/cmd_create_schema -isTocNested: true -showAsideToc: true ---- - -## Synopsis - -## Syntax - -### Diagram - -### Grammar -``` -``` - -Where - -## Semantics - -### PRIMARY KEY - -## Examples - -## See Also -[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_reset.md b/docs/content/latest/api/ysql/commands/cmd_reset.md index 577f9cfb6e2a..44e1d62ec641 100644 --- a/docs/content/latest/api/ysql/commands/cmd_reset.md +++ b/docs/content/latest/api/ysql/commands/cmd_reset.md @@ -15,21 +15,26 @@ showAsideToc: true ## Synopsis +`RESET` command sets the value of a parameter to the default value. + ## Syntax ### Diagram ### Grammar ``` +reset_stmt := RESET { name | ALL } ``` Where -## Semantics +- name specifies the name of a mutable run-time parameter -### PRIMARY KEY +## Semantics -## Examples +- Although the values of a parameter can be set, showed, and reset, the effect of these parameters are not yet supported in YugaByte. The factory-settings or default behaviors will be used for the moment. ## See Also +[`SHOW`](../cmd_show) +[`SET`](../cmd_set) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_set.md b/docs/content/latest/api/ysql/commands/cmd_set.md index e9df1b8cbfa9..f5f561a87d09 100644 --- a/docs/content/latest/api/ysql/commands/cmd_set.md +++ b/docs/content/latest/api/ysql/commands/cmd_set.md @@ -15,21 +15,32 @@ showAsideToc: true ## Synopsis +`SET` command update a run-time control parameter. + ## Syntax ### Diagram ### Grammar ``` +SET [ SESSION | LOCAL ] { configuration_parameter { TO | = } { value | 'value' | DEFAULT } | + TIME ZONE { timezone | LOCAL | DEFAULT } } ``` Where +- `SESSION` option specifies that the command affects only the current session. -## Semantics +- `LOCAL` option specifies that the command affect only the current transaction. After COMMIT or ROLLBACK, the session-level setting takes effect again. + +- `configuration_parameter` specifies the name of a mutable run-time parameter. -### PRIMARY KEY +- `value` specifies new value of parameter. + +## Semantics -## Examples +- Although the values of a parameter can be set, showed, and reset, the effect of these parameters are not yet supported in YugaByte. The factory-settings or default behaviors will be used for the moment. ## See Also +[`SHOW`](../cmd_show) +[`RESET`](../cmd_reset) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_show.md b/docs/content/latest/api/ysql/commands/cmd_show.md index 1a059e64b35d..35c4cc73fc11 100644 --- a/docs/content/latest/api/ysql/commands/cmd_show.md +++ b/docs/content/latest/api/ysql/commands/cmd_show.md @@ -21,15 +21,17 @@ showAsideToc: true ### Grammar ``` +show_stmt ::= SHOW { name | ALL } ``` Where +- `name` specifies the name of the parameter to be showed. ## Semantics -### PRIMARY KEY - -## Examples +- Although the values of a parameter can be set, showed, and reset, the effect of these parameters are not yet supported in YugaByte. The factory-settings or default behaviors will be used for the moment. ## See Also +[`SET`](../cmd_set) +[`RESET`](../cmd_reset) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_db.md b/docs/content/latest/api/ysql/commands/ddl_alter_db.md index 652bad4c9505..88864a18124f 100644 --- a/docs/content/latest/api/ysql/commands/ddl_alter_db.md +++ b/docs/content/latest/api/ysql/commands/ddl_alter_db.md @@ -14,24 +14,44 @@ showAsideToc: true --- ## Synopsis +ALTER DATABASE redefines the attributes of the specified database. ## Syntax ### Diagram ### Grammar -This include RenameStmt for DATABASE - ``` +alter_database ::= + ALTER DATABASE name { [ [ WITH ] alter_database_option [ ... ] ] | + RENAME TO new_name | + OWNER TO { new_owner | CURRENT_USER | SESSION_USER } | + SET TABLESPACE new_tablespace | + SET configuration_parameter { TO | = } { value | DEFAULT } | + SET configuration_parameter FROM CURRENT | + RESET configuration_parameter | + RESET ALL } + +alter_database_option ::= + { ALLOW_CONNECTIONS allowconn | CONNECTION LIMIT connlimit | IS_TEMPLATE istemplate } ``` -Where +where -## Semantics +- `name` is an identifier that specifies the database to be altered. + +- tablespace_name specifies the new tablespace that is associated with the database. + +- allowconn is either `true` or `false`. -### PRIMARY KEY +- connlimit specifies the number of concurrent connections can be made to this database. -1 means there is no limit. + +- istemplate is either `true` or `false`. + +## Semantics -## Examples +- Some options in DATABASE are under development. ## See Also +[`CREATE DATABASE`](../ddl_create_database) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_table.md b/docs/content/latest/api/ysql/commands/ddl_alter_table.md index 97c47c539d22..235bc2e80439 100644 --- a/docs/content/latest/api/ysql/commands/ddl_alter_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_alter_table.md @@ -14,6 +14,7 @@ showAsideToc: true --- ## Synopsis +`ALTER TABLE` changes or redefines one or more attributes of a table. ## Syntax @@ -21,15 +22,29 @@ showAsideToc: true ### Grammar ``` -``` +alter_table ::= ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] alter_table_action [, ... ] -Where +alter_table_action ::= + { ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type | + DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ] | + ADD table_constraint | + DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] } -## Semantics +table_constraint ::= + CONSTRAINT constraint_name { CHECK ( expression ) [ NO INHERIT ] | + PRIMARY KEY ( column_name [, ... ] ) index_parameters } +``` -### PRIMARY KEY +## Semantics -## Examples +- An error is raised if specified table does not exist unless `IF EXIST` is used. +- `ADD COLUMN` adds new column. +- `DROP COLUMN` drops existing column. +- `ADD table_constraint` adds new table_constraint. +- `DROP table_constraint` drops existing table_constraint. +- Other `ALTER TABLE` options are not yet supported. ## See Also +[`CREATE TABLE`](../ddl_create_table) +[`DROP TABLE`](../ddl_drop_table) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_database.md b/docs/content/latest/api/ysql/commands/ddl_create_database.md index e781ef5d759c..521c8cd406c5 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_database.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_database.md @@ -19,20 +19,48 @@ The `CREATE DATABASE` statement creates a `database` that functions as a groupin ### Diagram -CREATEDATABASEname - ### Grammar ``` -create_database ::= CREATE DATABASE name +create_database ::= + CREATE DATABASE name + [ [ WITH ] [ OWNER [=] user_name ] + [ TEMPLATE [=] template ] + [ ENCODING [=] encoding ] + [ LC_COLLATE [=] lc_collate ] + [ LC_CTYPE [=] lc_ctype ] + [ TABLESPACE [=] tablespace_name ] + [ ALLOW_CONNECTIONS [=] allowconn ] + [ CONNECTION LIMIT [=] connlimit ] + [ IS_TEMPLATE [=] istemplate ] ] ``` Where -- `name` is an identifier. +- `name` is an identifier that specifies the database to be created. + +- `user_name` specifies the user who will own the new database. When not specified, the database creator is the owner. + +- `template` specifies name of the template from which the new database is created. + +- `encoding` specifies the character set encoding to use in the new database. + +- lc_collate specifies the collation order (LC_COLLATE). + +- lc_ctype specifies the character classification (LC_CTYPE). + +- tablespace_name specifies the tablespace that is associated with the database to be created. + +- allowconn is either `true` or `false`. + +- connlimit specifies the number of concurrent connections can be made to this database. -1 means there is no limit. + +- istemplate is either `true` or `false`. ## Semantics - An error is raised if a database with the specified `name` already exists. +- Some options in DATABASE are under development. + ## See Also -[`DROP DATABASE`](../ddl_drop_database) +[`ALTER DATABASE`](../ddl_alter_db) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_index.md b/docs/content/latest/api/ysql/commands/ddl_create_index.md index b29b5279f550..6787e49774c4 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_index.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_index.md @@ -21,15 +21,33 @@ showAsideToc: true ### Grammar ``` +create_index ::= CREATE [ UNIQUE ] INDEX [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name + ( { column_name | ( expression ) } [ opclass ] [ ASC | DESC ] [, ...] ) + [ INCLUDE ( column_name [, ...] ) ] + [ WITH ( storage_parameter = value [, ... ] ) ] + [ WHERE predicate ] ``` Where +- `UNIQUE` enforced that duplicate values in a table in not allowed. -## Semantics +- `INCLUDE clause` specifies a list of columns which will be included in the index as non-key columns. + +- `name` specifies the index to be created. + +- `table_name` specifies the name of the table to be indexed. + +- `column_name` specifies the name of a column of the table. -### PRIMARY KEY +- expression specifies one or more columns of the table and must be surrounded by parentheses. + +- `ASC` indicates ascending sort order. + +- DESC indicates descending sort order. + +## Semantics -## Examples +- `CONCURRENTLY`, `USING method`, `COLLATE`, `NULL order`, and `tablespace` options are not yet supported. ## See Also [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_schema.md b/docs/content/latest/api/ysql/commands/ddl_create_schema.md new file mode 100644 index 000000000000..8f3ad62bd6b4 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_schema.md @@ -0,0 +1,43 @@ +--- +title: CREATE SCHEMA +linkTitle: CREATE SCHEMA +summary: Create schema +description: CREATE SCHEMA +menu: + latest: + identifier: api-ysql-commands-create-schema + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/cmd_create_schema +isTocNested: true +showAsideToc: true +--- + +## Synopsis +`CREATE SCHEMA` inserts a new schema definition to the current database. Schema name must be unique. + +## Syntax + +### Diagram + +### Grammar +``` +create_schema ::= CREATE SCHEMA [ IF NOT EXISTS ] schema_name [ schema_element [ ... ] ] +``` + +Where +- `schema_name` specifies the schema to be created. + +- `schema_element` is a SQL statement that `CREATE` a database object to be created within the schema. + +## Semantics + +- `AUTHORIZATION` clause is not yet supported. +- Only `CREATE TABLE`, `CREATE VIEW`, `CREATE INDEX`, `CREATE SEQUENCE`, `CREATE TRIGGER`, and `GRANT` can be use to create objects within `CREATE SCHEMA` statement. Other database objects must be created in separate commands after the schema is created. + +## See Also +[`CREATE TABLE`](../ddl_create_table) +[`CREATE VIEW`](../ddl_create_view) +[`CREATE INDEX`](../ddl_create_index) +[`CREATE SEQUENCE`](../ddl_create_seq) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table.md b/docs/content/latest/api/ysql/commands/ddl_create_table.md index bf42cd595d05..43094c5dff21 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_table.md @@ -99,6 +99,7 @@ postgres=# CREATE TABLE cars (id int PRIMARY KEY, brand text CHECK (brand in ('X ## See Also [`DROP TABLE`](../ddl_drop_table) +[`ALTER TABLE`](../ddl_alter_table) [`INSERT`](../dml_insert) [`SELECT`](../dml_select) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table_as.md b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md index e8bed71b3209..eb4621221a19 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_table_as.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md @@ -15,21 +15,51 @@ showAsideToc: true ## Synopsis +`CREATE TABLE AS` command create new table using the output of a subquery. + ## Syntax ### Diagram ### Grammar ``` +create_table_as ::= CREATE TABLE [ IF NOT EXISTS ] table_name [ (column_name [, ...] ) ] + AS query [ WITH [ NO ] DATA ] ``` Where +- table_name specifies the name of the table to be created. +- column_name specifies the name of a column in the new table. When not specified, column names are the selected names of the query. ## Semantics -### PRIMARY KEY +- YugaByte may extend syntax to allow specifying PRIMARY KEY for `CREATE TABLE AS` command. ## Examples +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +```sql +postgres=# INSERT INTO sample VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + +```sql +postgres=# CREATE TABLE selective_sample SELECT * FROM sample WHERE k1 > 1; +``` + +```sql +postgres=# SELECT * FROM selective_sample ORDER BY k1; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 2 | 3 | 4 | b + 3 | 4 | 5 | c +(2 rows) +``` ## See Also +[`CREATE TABLE`](../dml_create_table) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_truncate.md b/docs/content/latest/api/ysql/commands/ddl_truncate.md index 434b675f0527..e474521d36ca 100644 --- a/docs/content/latest/api/ysql/commands/ddl_truncate.md +++ b/docs/content/latest/api/ysql/commands/ddl_truncate.md @@ -15,21 +15,61 @@ showAsideToc: true ## Synopsis +`TRUNCATE` command clears all rows in a table. + ## Syntax ### Diagram ### Grammar ``` +truncate_stmt ::= TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ] ``` Where +- `name` specifies the table to be truncated. + ## Semantics -### PRIMARY KEY +- TRUNCATE acquires ACCESS EXCLUSIVE lock on the tables to be truncated. The ACCESS EXCLUSIVE locking option is not yet fully supported. +- TRUNCATE is not supported for foreign tables. ## Examples +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +```sql +postgres=# INSERT INTO sample VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 2 | 3 | 4 | b + 3 | 4 | 5 | c +(3 rows) +``` + +```sql +postgres=# TRUNCATE sample; +``` + +```sql +postgres=# SELECT * FROM sample; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- +(0 rows) +``` ## See Also [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_delete.md b/docs/content/latest/api/ysql/commands/dml_delete.md index 2a9c28c25f76..d622c3f27ef6 100644 --- a/docs/content/latest/api/ysql/commands/dml_delete.md +++ b/docs/content/latest/api/ysql/commands/dml_delete.md @@ -15,21 +15,82 @@ showAsideToc: true ## Synopsis +DELETE removes rows that meet certain conditions, and when conditions are not provided in WHERE clause, all rows are deleted. DELETE outputs the number of rows that are being deleted. + ## Syntax ### Diagram ### Grammar ``` +delete := [ WITH [ RECURSIVE ] with_query [, ...] ] + DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ] + [ USING using_list ] + [ WHERE condition | WHERE CURRENT OF cursor_name ] + [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] ``` Where +- `with_query` specifies the subqueries that are referenced by name in the DELETE statement. + +- `table_name` specifies a name of the table to be deleted. + +- `alias` is the identifier of the target table within the DELETE statement. When an alias is specified, it must be used in place of the actual table in the statement. + +- `output_expression` specifies the value to be returned. When the `output_expression` is referencing a column, the existing value of this column (deleted value) is used to evaluate. ## Semantics -### PRIMARY KEY +- USING clause is not yet supported. + +- While the where clause allows a wide range of operators, the exact conditions used in the where clause have significant performance considerations (especially for large datasets). WHERE clause that provides values for all columns in PRIMARY KEY or INDEX KEY has the best performance. ## Examples +Create a sample table, insert a few rows, then delete one of the inserted row. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +```sql +postgres=# INSERT INTO sample VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 2 | 3 | 4 | b + 3 | 4 | 5 | c +(3 rows) +``` + +```sql +postgres=# DELETE FROM sample WHERE k1 = 2 AND k2 = 3; +``` + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` + +``` +DELETE 1 +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 3 | 4 | 5 | c +(2 rows) +``` ## See Also +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[`UPDATE`](../dml_update) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_insert.md b/docs/content/latest/api/ysql/commands/dml_insert.md index 1522cbb0516f..af4ce0ddd7ca 100644 --- a/docs/content/latest/api/ysql/commands/dml_insert.md +++ b/docs/content/latest/api/ysql/commands/dml_insert.md @@ -61,7 +61,7 @@ postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, Insert some rows. ```sql -postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +postgres=# INSERT INTO sample VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); ``` @@ -78,7 +78,7 @@ postgres=# SELECT * FROM sample ORDER BY k1; 1 | 2 | 3 | a 2 | 3 | 4 | b 3 | 4 | 5 | c -(2 rows) +(3 rows) ``` ## See Also diff --git a/docs/content/latest/api/ysql/commands/dml_update.md b/docs/content/latest/api/ysql/commands/dml_update.md index e762544e3ca3..94c73a2e0091 100644 --- a/docs/content/latest/api/ysql/commands/dml_update.md +++ b/docs/content/latest/api/ysql/commands/dml_update.md @@ -15,21 +15,94 @@ showAsideToc: true ## Synopsis +UPDATE modifies the values of specified columns in all rows that meet certain conditions, and when conditions are not provided in WHERE clause, all rows are updated. UPDATE outputs the number of rows that are being updated. + ## Syntax ### Diagram ### Grammar ``` +update ::= [ WITH [ RECURSIVE ] with_query [, ...] ] + UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ] + SET { column_name = { expression | DEFAULT } | + ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) | + ( column_name [, ...] ) = ( subquery ) + } [, ...] + [ FROM from_list ] + [ WHERE condition | WHERE CURRENT OF cursor_name ] + [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] ``` Where +- `with_query` specifies the subqueries that are referenced by name in the UPDATE statement. + +- `table_name` specifies a name of the table to be updated. + +- `alias` is the identifier of the target table within the UPDATE statement. When an alias is specified, it must be used in place of the actual table in the statement. + +- `column_name` specifies a column in the table to be updated. + +- `expression` specifies the value to be assigned a column. When the expression is referencing a column, the old value of this column is used to evaluate. + +- `output_expression` specifies the value to be returned. When the `output_expression` is referencing a column, the new value of this column (updated value) is used to evaluate. + +- `subquery` is a SELECT statement. Its selected values will be assigned to the specified columns. + ## Semantics -### PRIMARY KEY +- Updating columns that are part of an index key including PRIMARY KEY is not yet supported. + +- While the where clause allows a wide range of operators, the exact conditions used in the where clause have significant performance considerations (especially for large datasets). WHERE clause that provides values for all columns in PRIMARY KEY or INDEX KEY has the best performance. ## Examples +Create a sample table, insert a few rows, then update the inserted rows. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +```sql +postgres=# INSERT INTO sample VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 2 | 3 | 4 | b + 3 | 4 | 5 | c +(3 rows) +``` + +```sql +postgres=# UPDATE sample SET v1 = v1 + 3, v2 = '7' WHERE k1 = 2 AND k2 = 3; +``` + +``` +UPDATE 1 +``` + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 2 | 3 | 7 | 7 + 3 | 4 | 5 | c +(2 rows) +``` ## See Also +[`DELETE`](../dml_delete) +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/perf_deallocate.md b/docs/content/latest/api/ysql/commands/perf_deallocate.md new file mode 100644 index 000000000000..a9e4b13ad70d --- /dev/null +++ b/docs/content/latest/api/ysql/commands/perf_deallocate.md @@ -0,0 +1,53 @@ +--- +title: DEALLOCATE +linkTitle: DEALLOCATE +summary: Deallocate a prepared statement +description: DEALLOCATE +menu: + latest: + identifier: api-ysql-commands-deallocate + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/perf_deallocate +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +`DEALLOCATE` command deallocates a previously-prepared statement. + +## Syntax + +### Diagram + +### Grammar +``` +deallocate_stmt ::= DEALLOCATE [ PREPARE ] { name | ALL } +``` + +Where +- name specifies the prepared statement to deallocate. + +## Semantics + +- `ALL` option is to deallocate all prepared statements. + +## Examples +Prepare and deallocate an insert statement. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +```sql +postgres=# PREPARE ins (bigint, double precision, int, text) AS + INSERT INTO sample(k1, k2, v1, v2) VALUES ($1, $2, $3, $4); +``` + +```sql +postgres=# DEALLOCATE ins; +``` + +## See Also +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_deallocate.md b/docs/content/latest/api/ysql/commands/txn_deallocate.md deleted file mode 100644 index 7616f1706b01..000000000000 --- a/docs/content/latest/api/ysql/commands/txn_deallocate.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: DEALLOCATE -linkTitle: DEALLOCATE -summary: Deallocate a prepared statement -description: DEALLOCATE -menu: - latest: - identifier: api-ysql-commands-deallocate - parent: api-ysql-commands -aliases: - - /latest/api/ysql/commands/txn_deallocate -isTocNested: true -showAsideToc: true ---- - -## Synopsis - -## Syntax - -### Diagram - -### Grammar -``` -``` - -Where - -## Semantics - -### PRIMARY KEY - -## Examples - -## See Also -[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/txn_lock.md b/docs/content/latest/api/ysql/commands/txn_lock.md index 3560c9e2d72d..e8fdcbc768d8 100644 --- a/docs/content/latest/api/ysql/commands/txn_lock.md +++ b/docs/content/latest/api/ysql/commands/txn_lock.md @@ -15,21 +15,34 @@ showAsideToc: true ## Synopsis +`LOCK` command locks a table. + ## Syntax ### Diagram ### Grammar ``` +lock_stmt ::= LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ] + +lockmode ::= { ACCESS SHARE | + ROW SHARE | + ROW EXCLUSIVE | + SHARE UPDATE EXCLUSIVE | + SHARE | + SHARE ROW EXCLUSIVE | + EXCLUSIVE | + ACCESS EXCLUSIVE } ``` Where +- name specifies an existing table to be locked. ## Semantics -### PRIMARY KEY - -## Examples +- Only `ACCESS SHARE` lock mode is supported at this time. +- All other modes listed in `lockmode` are under development. ## See Also +[`CREATE TABLE`](../ddl_create_table) [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/cmd_set_constraints.md b/docs/content/latest/api/ysql/commands/txn_set_constraints.md similarity index 64% rename from docs/content/latest/api/ysql/commands/cmd_set_constraints.md rename to docs/content/latest/api/ysql/commands/txn_set_constraints.md index 60c74b7ef5d4..0bb78ce6319c 100644 --- a/docs/content/latest/api/ysql/commands/cmd_set_constraints.md +++ b/docs/content/latest/api/ysql/commands/txn_set_constraints.md @@ -15,21 +15,20 @@ showAsideToc: true ## Synopsis +`SET CONSTRAINTS` command checks timing for current transaction. + ## Syntax ### Diagram ### Grammar ``` +set_constraints ::= SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE } ``` -Where - ## Semantics -### PRIMARY KEY - -## Examples +- Attributes in `SET CONSTRAINTS` does not apply to `NOT NULL` and `CHECK` constraints. ## See Also [Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/datatypes/_index.md b/docs/content/latest/api/ysql/datatypes/_index.md index 224a5d70098b..b52d02611a93 100644 --- a/docs/content/latest/api/ysql/datatypes/_index.md +++ b/docs/content/latest/api/ysql/datatypes/_index.md @@ -1,6 +1,6 @@ --- title: Datatypes -description: YSQL Datatypes +description: List of YSQL Builtin Datatypes summary: Datatype overview and specification. image: /images/section_icons/api/pgsql.png menu: @@ -14,8 +14,56 @@ isTocNested: true showAsideToc: true --- -The following table lists all supported primitive types. +The following table lists all primitive types in YSQL. +| Datatype | Alias | Description | Literals | +|----------|-------|-------------|----------| +| `bigint` | `int8` | signed eight-byte integer | 9,223,372,036,854,775,807 | +| `bigserial` | `serial8` | autoincrementing eight-byte integer | | +| `bit [(n)]` 1 | | fixed-length bit string | | +| `bit varying [(n)]` 1 | `varbit [(n)]` | variable-length bit string | | +| `boolean` | `bool` | logical Boolean (true/false) | | +| `box` 1 | | rectangular box on a plane | | +| `bytea` | | binary data (“byte array”) | | +| `character [(n)]` | `char [(n)]` | fixed-length character string | | +| `character varying [(n)]` | `varchar [(n)]` | variable-length character string | | +| `cidr` 1 | | IPv4 or IPv6 network address | | +| `circle` 1 | | circle on a plane | | +| `date` | | calendar date (year, month, day) | | +| `double precision` | `float8` | double precision floating-point number (8 bytes) | | +| `inet` | | IPv4 or IPv6 host address | | +| `integer` | `int`, `int4` | signed four-byte integer | 2,147,483,647 | +| `interval [fields] [(p)]` | | time span | | +| `json` 1 | | textual JSON data | | +| `jsonb` | | binary JSON data, decomposed | | +| `line` 1 | | infinite line on a plane | | +| `lseg` 1 | | line segment on a plane | | +| `macaddr` 1 | | MAC (Media Access Control) address | | +| `macaddr8` 1 | | MAC (Media Access Control) address (EUI-64 format) | | +| `money 1` | | currency amount | | +| `numeric [(p, s)]` | `decimal [(p, s)]` | exact numeric of selectable precision | | +| `path` 1 | | geometric path on a plane | | +| `pg_lsn` 1 | | PostgreSQL Log Sequence Number | | +| `point` 1 | | geometric point on a plane | | +| `polygon` 1 | | closed geometric path on a plane | | +| `real` | `float4` | single precision floating-point number (4 bytes) | | +| `smallint` | `int2` | signed two-byte integer | 32,767 | +| `smallserial` | `serial2` | autoincrementing two-byte integer | | +| `serial` | `serial4` | autoincrementing four-byte integer | | +| `text` | | variable-length character string | | +| `time [(p)] [without time zone]` | | time of day (no time zone) | | +| `time [(p)] with time zone` | `timetz` | time of day, including time zone | | +| `timestamp [(p)] [without time zone]` | | date and time (no time zone) | | +| `timestamp [(p)] with time zone` | `timestamptz` | date and time, including time zone | | +| `tsquery` 1 | | text search query | | +| `tsvector` 1 | | text search document | | +| `txid_snapshot` 1 | | user-level transaction ID snapshot | | +| `uuid` | | universally unique identifier | | +| `xml` 1 | | XML data | | + +1: Under development + + \ No newline at end of file diff --git a/docs/content/latest/api/ysql/keywords.md b/docs/content/latest/api/ysql/keywords.md index 0f940844525f..647520835539 100644 --- a/docs/content/latest/api/ysql/keywords.md +++ b/docs/content/latest/api/ysql/keywords.md @@ -1,7 +1,7 @@ --- title: KEYWORDS linkTitle: Keywords -description: List of Keywords +description: List of YSQL Keywords summary: Reference for YSQL API image: /images/section_icons/api/pgsql.png menu: @@ -14,3 +14,438 @@ aliases: isTocNested: true showAsideToc: true --- + +| Keywords | Usage | Exceptions | +|----------|-------|------------| +| `ABORT` | unreserved | No exception | +| `ABSOLUTE` | unreserved | No exception | +| `ACCESS` | unreserved | No exception | +| `ACTION` | unreserved | No exception | +| `ADD` | unreserved | No exception | +| `ADMIN` | unreserved | No exception | +| `AFTER` | unreserved | No exception | +| `AGGREGATE` | unreserved | No exception | +| `ALL` | reserved | No exception | +| `ALSO` | unreserved | No exception | +| `ALTER` | unreserved | No exception | +| `ALWAYS` | unreserved | No exception | +| `ANALYSE` | reserved | No exception | +| `ANALYZE` | reserved | No exception | +| `AND` | reserved | No exception | +| `ANY` | reserved | No exception | +| `ARRAY` | reserved | No exception | +| `AS` | reserved | No exception | +| `ASC` | reserved | No exception | +| `ASSERTION` | unreserved | No exception | +| `ASSIGNMENT` | unreserved | No exception | +| `ASYMMETRIC` | reserved | No exception | +| `AT` | unreserved | No exception | +| `ATTACH` | unreserved | No exception | +| `ATTRIBUTE` | unreserved | No exception | +| `AUTHORIZATION` | reserved | Can be used for function, type, or alias names | +| `BACKWARD` | unreserved | No exception | +| `BEFORE` | unreserved | No exception | +| `BEGIN` | unreserved | No exception | +| `BETWEEN` | unreserved | Not allowed for function or type names | +| `BIGINT` | unreserved | Not allowed for function or type names | +| `BINARY` | reserved | Can be used for function, type, or alias names | +| `BIT` | unreserved | Not allowed for function or type names | +| `BOOLEAN` | unreserved | Not allowed for function or type names | +| `BOTH` | reserved | No exception | +| `BY` | unreserved | No exception | +| `CACHE` | unreserved | No exception | +| `CALLED` | unreserved | No exception | +| `CASCADE` | unreserved | No exception | +| `CASCADED` | unreserved | No exception | +| `CASE` | reserved | No exception | +| `CAST` | reserved | No exception | +| `CATALOG` | unreserved | No exception | +| `CHAIN` | unreserved | No exception | +| `CHAR` | unreserved | Not allowed for function or type names | +| `CHARACTER` | unreserved | Not allowed for function or type names | +| `CHARACTERISTICS` | unreserved | No exception | +| `CHECK` | reserved | No exception | +| `CHECKPOINT` | unreserved | No exception | +| `CLASS` | unreserved | No exception | +| `CLOSE` | unreserved | No exception | +| `CLUSTER` | unreserved | No exception | +| `COALESCE` | unreserved | Not allowed for function or type names | +| `COLLATE` | reserved | No exception | +| `COLLATION` | reserved | Can be used for function, type, or alias names | +| `COLUMN` | reserved | No exception | +| `COLUMNS` | unreserved | No exception | +| `COMMENT` | unreserved | No exception | +| `COMMENTS` | unreserved | No exception | +| `COMMIT` | unreserved | No exception | +| `COMMITTED` | unreserved | No exception | +| `CONCURRENTLY` | reserved | Can be used for function, type, or alias names | +| `CONFIGURATION` | unreserved | No exception | +| `CONFLICT` | unreserved | No exception | +| `CONNECTION` | unreserved | No exception | +| `CONSTRAINT` | reserved | No exception | +| `CONSTRAINTS` | unreserved | No exception | +| `CONTENT` | unreserved | No exception | +| `CONTINUE` | unreserved | No exception | +| `CONVERSION` | unreserved | No exception | +| `COPY` | unreserved | No exception | +| `COST` | unreserved | No exception | +| `CREATE` | reserved | No exception | +| `CROSS` | reserved | Can be used for function, type, or alias names | +| `CSV` | unreserved | No exception | +| `CUBE` | unreserved | No exception | +| `CURRENT` | unreserved | No exception | +| `CURRENT_CATALOG` | reserved | No exception | +| `CURRENT_DATE` | reserved | No exception | +| `CURRENT_ROLE` | reserved | No exception | +| `CURRENT_SCHEMA` | reserved | Can be used for function, type, or alias names | +| `CURRENT_TIME` | reserved | No exception | +| `CURRENT_TIMESTAMP` | reserved | No exception | +| `CURRENT_USER` | reserved | No exception | +| `CURSOR` | unreserved | No exception | +| `CYCLE` | unreserved | No exception | +| `DATA` | unreserved | No exception | +| `DATABASE` | unreserved | No exception | +| `DAY` | unreserved | No exception | +| `DEALLOCATE` | unreserved | No exception | +| `DEC` | unreserved | Not allowed for function or type names | +| `DECIMAL` | unreserved | Not allowed for function or type names | +| `DECLARE` | unreserved | No exception | +| `DEFAULT` | reserved | No exception | +| `DEFAULTS` | unreserved | No exception | +| `DEFERRABLE` | reserved | No exception | +| `DEFERRED` | unreserved | No exception | +| `DEFINER` | unreserved | No exception | +| `DELETE` | unreserved | No exception | +| `DELIMITER` | unreserved | No exception | +| `DELIMITERS` | unreserved | No exception | +| `DEPENDS` | unreserved | No exception | +| `DESC` | reserved | No exception | +| `DETACH` | unreserved | No exception | +| `DICTIONARY` | unreserved | No exception | +| `DISABLE` | unreserved | No exception | +| `DISCARD` | unreserved | No exception | +| `DISTINCT` | reserved | No exception | +| `DO` | reserved | No exception | +| `DOCUMENT` | unreserved | No exception | +| `DOMAIN` | unreserved | No exception | +| `DOUBLE` | unreserved | No exception | +| `DROP` | unreserved | No exception | +| `EACH` | unreserved | No exception | +| `ELSE` | reserved | No exception | +| `ENABLE` | unreserved | No exception | +| `ENCODING` | unreserved | No exception | +| `ENCRYPTED` | unreserved | No exception | +| `END` | reserved | No exception | +| `ENUM` | unreserved | No exception | +| `ESCAPE` | unreserved | No exception | +| `EVENT` | unreserved | No exception | +| `EXCEPT` | reserved | No exception | +| `EXCLUDE` | unreserved | No exception | +| `EXCLUDING` | unreserved | No exception | +| `EXCLUSIVE` | unreserved | No exception | +| `EXECUTE` | unreserved | No exception | +| `EXISTS` | unreserved | Not allowed for function or type names | +| `EXPLAIN` | unreserved | No exception | +| `EXTENSION` | unreserved | No exception | +| `EXTERNAL` | unreserved | No exception | +| `EXTRACT` | unreserved | Not allowed for function or type names | +| `FALSE` | reserved | No exception | +| `FAMILY` | unreserved | No exception | +| `FETCH` | reserved | No exception | +| `FILTER` | unreserved | No exception | +| `FIRST` | unreserved | No exception | +| `FLOAT` | unreserved | Not allowed for function or type names | +| `FOLLOWING` | unreserved | No exception | +| `FOR` | reserved | No exception | +| `FORCE` | unreserved | No exception | +| `FOREIGN` | reserved | No exception | +| `FORWARD` | unreserved | No exception | +| `FREEZE` | reserved | Can be used for function, type, or alias names | +| `FROM` | reserved | No exception | +| `FULL` | reserved | Can be used for function, type, or alias names | +| `FUNCTION` | unreserved | No exception | +| `FUNCTIONS` | unreserved | No exception | +| `GENERATED` | unreserved | No exception | +| `GLOBAL` | unreserved | No exception | +| `GRANT` | reserved | No exception | +| `GRANTED` | unreserved | No exception | +| `GREATEST` | unreserved | Not allowed for function or type names | +| `GROUP` | reserved | No exception | +| `GROUPING` | unreserved | Not allowed for function or type names | +| `HANDLER` | unreserved | No exception | +| `HAVING` | reserved | No exception | +| `HEADER` | unreserved | No exception | +| `HOLD` | unreserved | No exception | +| `HOUR` | unreserved | No exception | +| `IDENTITY` | unreserved | No exception | +| `IF` | unreserved | No exception | +| `ILIKE` | reserved | Can be used for function, type, or alias names | +| `IMMEDIATE` | unreserved | No exception | +| `IMMUTABLE` | unreserved | No exception | +| `IMPLICIT` | unreserved | No exception | +| `IMPORT` | unreserved | No exception | +| `IN` | reserved | No exception | +| `INCLUDING` | unreserved | No exception | +| `INCREMENT` | unreserved | No exception | +| `INDEX` | unreserved | No exception | +| `INDEXES` | unreserved | No exception | +| `INHERIT` | unreserved | No exception | +| `INHERITS` | unreserved | No exception | +| `INITIALLY` | reserved | No exception | +| `INLINE` | unreserved | No exception | +| `INNER` | reserved | Can be used for function, type, or alias names | +| `INOUT` | unreserved | Not allowed for function or type names | +| `INPUT` | unreserved | No exception | +| `INSENSITIVE` | unreserved | No exception | +| `INSERT` | unreserved | No exception | +| `INSTEAD` | unreserved | No exception | +| `INT` | unreserved | Not allowed for function or type names | +| `INTEGER` | unreserved | Not allowed for function or type names | +| `INTERSECT` | reserved | No exception | +| `INTERVAL` | unreserved | Not allowed for function or type names | +| `INTO` | reserved | No exception | +| `INVOKER` | unreserved | No exception | +| `IS` | reserved | Can be used for function, type, or alias names | +| `ISNULL` | reserved | Can be used for function, type, or alias names | +| `ISOLATION` | unreserved | No exception | +| `JOIN` | reserved | Can be used for function, type, or alias names | +| `KEY` | unreserved | No exception | +| `LABEL` | unreserved | No exception | +| `LANGUAGE` | unreserved | No exception | +| `LARGE` | unreserved | No exception | +| `LAST` | unreserved | No exception | +| `LATERAL` | reserved | No exception | +| `LEADING` | reserved | No exception | +| `LEAKPROOF` | unreserved | No exception | +| `LEAST` | unreserved | Not allowed for function or type names | +| `LEFT` | reserved | Can be used for function, type, or alias names | +| `LEVEL` | unreserved | No exception | +| `LIKE` | reserved | Can be used for function, type, or alias names | +| `LIMIT` | reserved | No exception | +| `LISTEN` | unreserved | No exception | +| `LOAD` | unreserved | No exception | +| `LOCAL` | unreserved | No exception | +| `LOCALTIME` | reserved | No exception | +| `LOCALTIMESTAMP` | reserved | No exception | +| `LOCATION` | unreserved | No exception | +| `LOCK` | unreserved | No exception | +| `LOCKED` | unreserved | No exception | +| `LOGGED` | unreserved | No exception | +| `MAPPING` | unreserved | No exception | +| `MATCH` | unreserved | No exception | +| `MATERIALIZED` | unreserved | No exception | +| `MAXVALUE` | unreserved | No exception | +| `METHOD` | unreserved | No exception | +| `MINUTE` | unreserved | No exception | +| `MINVALUE` | unreserved | No exception | +| `MODE` | unreserved | No exception | +| `MONTH` | unreserved | No exception | +| `MOVE` | unreserved | No exception | +| `NAME` | unreserved | No exception | +| `NAMES` | unreserved | No exception | +| `NATIONAL` | unreserved | Not allowed for function or type names | +| `NATURAL` | reserved | Can be used for function, type, or alias names | +| `NCHAR` | unreserved | Not allowed for function or type names | +| `NEW` | unreserved | No exception | +| `NEXT` | unreserved | No exception | +| `NO EXCEPTION` | unreserved | No exception | +| `NONE` | unreserved | Not allowed for function or type names | +| `NOT` | reserved | No exception | +| `NOTHING` | unreserved | No exception | +| `NOTIFY` | unreserved | No exception | +| `NOTNULL` | reserved | Can be used for function, type, or alias names | +| `NOWAIT` | unreserved | No exception | +| `NULL` | reserved | No exception | +| `NULLIF` | unreserved | Not allowed for function or type names | +| `NULLS` | unreserved | No exception | +| `NUMERIC` | unreserved | Not allowed for function or type names | +| `OBJECT` | unreserved | No exception | +| `OF` | unreserved | No exception | +| `OFF` | unreserved | No exception | +| `OFFSET` | reserved | No exception | +| `OIDS` | unreserved | No exception | +| `OLD` | unreserved | No exception | +| `ON` | reserved | No exception | +| `ONLY` | reserved | No exception | +| `OPERATOR` | unreserved | No exception | +| `OPTION` | unreserved | No exception | +| `OPTIONS` | unreserved | No exception | +| `OR` | reserved | No exception | +| `ORDER` | reserved | No exception | +| `ORDINALITY` | unreserved | No exception | +| `OUT` | unreserved | Not allowed for function or type names | +| `OUTER` | reserved | Can be used for function, type, or alias names | +| `OVER` | unreserved | No exception | +| `OVERLAPS` | reserved | Can be used for function, type, or alias names | +| `OVERLAY` | unreserved | Not allowed for function or type names | +| `OVERRIDING` | unreserved | No exception | +| `OWNED` | unreserved | No exception | +| `OWNER` | unreserved | No exception | +| `PARALLEL` | unreserved | No exception | +| `PARSER` | unreserved | No exception | +| `PARTIAL` | unreserved | No exception | +| `PARTITION` | unreserved | No exception | +| `PASSING` | unreserved | No exception | +| `PASSWORD` | unreserved | No exception | +| `PLACING` | reserved | No exception | +| `PLANS` | unreserved | No exception | +| `POLICY` | unreserved | No exception | +| `POSITION` | unreserved | Not allowed for function or type names | +| `PRECEDING` | unreserved | No exception | +| `PRECISION` | unreserved | Not allowed for function or type names | +| `PREPARE` | unreserved | No exception | +| `PREPARED` | unreserved | No exception | +| `PRESERVE` | unreserved | No exception | +| `PRIMARY` | reserved | No exception | +| `PRIOR` | unreserved | No exception | +| `PRIVILEGES` | unreserved | No exception | +| `PROCEDURAL` | unreserved | No exception | +| `PROCEDURE` | unreserved | No exception | +| `PROGRAM` | unreserved | No exception | +| `PUBLICATION` | unreserved | No exception | +| `QUOTE` | unreserved | No exception | +| `RANGE` | unreserved | No exception | +| `READ` | unreserved | No exception | +| `REAL` | unreserved | Not allowed for function or type names | +| `REASSIGN` | unreserved | No exception | +| `RECHECK` | unreserved | No exception | +| `RECURSIVE` | unreserved | No exception | +| `REF` | unreserved | No exception | +| `REFERENCES` | reserved | No exception | +| `REFERENCING` | unreserved | No exception | +| `REFRESH` | unreserved | No exception | +| `REINDEX` | unreserved | No exception | +| `RELATIVE` | unreserved | No exception | +| `RELEASE` | unreserved | No exception | +| `RENAME` | unreserved | No exception | +| `REPEATABLE` | unreserved | No exception | +| `REPLACE` | unreserved | No exception | +| `REPLICA` | unreserved | No exception | +| `RESET` | unreserved | No exception | +| `RESTART` | unreserved | No exception | +| `RESTRICT` | unreserved | No exception | +| `RETURNING` | reserved | No exception | +| `RETURNS` | unreserved | No exception | +| `REVOKE` | unreserved | No exception | +| `RIGHT` | reserved | Can be used for function, type, or alias names | +| `ROLE` | unreserved | No exception | +| `ROLLBACK` | unreserved | No exception | +| `ROLLUP` | unreserved | No exception | +| `ROW` | unreserved | Not allowed for function or type names | +| `ROWS` | unreserved | No exception | +| `RULE` | unreserved | No exception | +| `SAVEPOINT` | unreserved | No exception | +| `SCHEMA` | unreserved | No exception | +| `SCHEMAS` | unreserved | No exception | +| `SCROLL` | unreserved | No exception | +| `SEARCH` | unreserved | No exception | +| `SECOND` | unreserved | No exception | +| `SECURITY` | unreserved | No exception | +| `SELECT` | reserved | No exception | +| `SEQUENCE` | unreserved | No exception | +| `SEQUENCES` | unreserved | No exception | +| `SERIALIZABLE` | unreserved | No exception | +| `SERVER` | unreserved | No exception | +| `SESSION` | unreserved | No exception | +| `SESSION_USER` | reserved | No exception | +| `SET` | unreserved | No exception | +| `SETOF` | unreserved | Not allowed for function or type names | +| `SETS` | unreserved | No exception | +| `SHARE` | unreserved | No exception | +| `SHOW` | unreserved | No exception | +| `SIMILAR` | reserved | Can be used for function, type, or alias names | +| `SIMPLE` | unreserved | No exception | +| `SKIP` | unreserved | No exception | +| `SMALLINT` | unreserved | Not allowed for function or type names | +| `SNAPSHOT` | unreserved | No exception | +| `SOME` | reserved | No exception | +| `SQL` | unreserved | No exception | +| `STABLE` | unreserved | No exception | +| `STANDALONE` | unreserved | No exception | +| `START` | unreserved | No exception | +| `STATEMENT` | unreserved | No exception | +| `STATISTICS` | unreserved | No exception | +| `STDIN` | unreserved | No exception | +| `STDOUT` | unreserved | No exception | +| `STORAGE` | unreserved | No exception | +| `STRICT` | unreserved | No exception | +| `STRIP` | unreserved | No exception | +| `SUBSCRIPTION` | unreserved | No exception | +| `SUBSTRING` | unreserved | Not allowed for function or type names | +| `SYMMETRIC` | reserved | No exception | +| `SYSID` | unreserved | No exception | +| `SYSTEM` | unreserved | No exception | +| `TABLE` | reserved | No exception | +| `TABLES` | unreserved | No exception | +| `TABLESAMPLE` | reserved | Can be used for function, type, or alias names | +| `TABLESPACE` | unreserved | No exception | +| `TEMP` | unreserved | No exception | +| `TEMPLATE` | unreserved | No exception | +| `TEMPORARY` | unreserved | No exception | +| `TEXT` | unreserved | No exception | +| `THEN` | reserved | No exception | +| `TIME` | unreserved | Not allowed for function or type names | +| `TIMESTAMP` | unreserved | Not allowed for function or type names | +| `TO` | reserved | No exception | +| `TRAILING` | reserved | No exception | +| `TRANSACTION` | unreserved | No exception | +| `TRANSFORM` | unreserved | No exception | +| `TREAT` | unreserved | Not allowed for function or type names | +| `TRIGGER` | unreserved | No exception | +| `TRIM` | unreserved | Not allowed for function or type names | +| `TRUE` | reserved | No exception | +| `TRUNCATE` | unreserved | No exception | +| `TRUSTED` | unreserved | No exception | +| `TYPE` | unreserved | No exception | +| `TYPES` | unreserved | No exception | +| `UNBOUNDED` | unreserved | No exception | +| `UNCOMMITTED` | unreserved | No exception | +| `UNENCRYPTED` | unreserved | No exception | +| `UNION` | reserved | No exception | +| `UNIQUE` | reserved | No exception | +| `UNKNOWN` | unreserved | No exception | +| `UNLISTEN` | unreserved | No exception | +| `UNLOGGED` | unreserved | No exception | +| `UNTIL` | unreserved | No exception | +| `UPDATE` | unreserved | No exception | +| `USER` | reserved | No exception | +| `USING` | reserved | No exception | +| `VACUUM` | unreserved | No exception | +| `VALID` | unreserved | No exception | +| `VALIDATE` | unreserved | No exception | +| `VALIDATOR` | unreserved | No exception | +| `VALUE` | unreserved | No exception | +| `VALUES` | unreserved | Not allowed for function or type names | +| `VARCHAR` | unreserved | Not allowed for function or type names | +| `VARIADIC` | reserved | No exception | +| `VARYING` | unreserved | No exception | +| `VERBOSE` | reserved | Can be used for function, type, or alias names | +| `VERSION` | unreserved | No exception | +| `VIEW` | unreserved | No exception | +| `VIEWS` | unreserved | No exception | +| `VOLATILE` | unreserved | No exception | +| `WHEN` | reserved | No exception | +| `WHERE` | reserved | No exception | +| `WHITESPACE` | unreserved | No exception | +| `WINDOW` | reserved | No exception | +| `WITH` | reserved | No exception | +| `WITHIN` | unreserved | No exception | +| `WITHOUT` | unreserved | No exception | +| `WORK` | unreserved | No exception | +| `WRAPPER` | unreserved | No exception | +| `WRITE` | unreserved | No exception | +| `XML` | unreserved | No exception | +| `XMLATTRIBUTES` | unreserved | Not allowed for function or type names | +| `XMLCONCAT` | unreserved | Not allowed for function or type names | +| `XMLELEMENT` | unreserved | Not allowed for function or type names | +| `XMLEXISTS` | unreserved | Not allowed for function or type names | +| `XMLFOREST` | unreserved | Not allowed for function or type names | +| `XMLNAMESPACES` | unreserved | Not allowed for function or type names | +| `XMLPARSE` | unreserved | Not allowed for function or type names | +| `XMLPI` | unreserved | Not allowed for function or type names | +| `XMLROOT` | unreserved | Not allowed for function or type names | +| `XMLSERIALIZE` | unreserved | Not allowed for function or type names | +| `XMLTABLE` | unreserved | Not allowed for function or type names | +| `YEAR` | unreserved | No exception | +| `YES` | unreserved | No exception | +| `ZONE` | unreserved | No exception | diff --git a/docs/content/latest/api/ysql/reserved_names.md b/docs/content/latest/api/ysql/reserved_names.md index d489cc4d8f6f..cd2981c7690f 100644 --- a/docs/content/latest/api/ysql/reserved_names.md +++ b/docs/content/latest/api/ysql/reserved_names.md @@ -1,8 +1,8 @@ --- title: RESERVED NAMES linkTitle: Reserved Names -description: List of RESERVED NAMES -summary: List of RESERVED NAMES +description: List of reserved names +summary: List of reserved names image: /images/section_icons/api/pgsql.png menu: latest: @@ -14,3 +14,18 @@ aliases: isTocNested: true showAsideToc: true --- + +YSQL reserved the following names for internal usage. Exception will be raised when these names are used even when they are double-quoted. + +| Names | Description | +|-------|-------------| +| `oid` | System column | +| `tableoid` | System column | +| `xmin` | System column | +| `cmin` | System column | +| `xmax` | System column | +| `cmax` | System column | +| `ctid` | System column | +| `ybctid` | Virtual column | +| Prefixed with `pg_` | System database objects | +| Prefixed with `yb_` | System database objects | From 5527e46a357f17ebdaa2f8b7367624ca46dfecb2 Mon Sep 17 00:00:00 2001 From: Hector Cuellar Date: Mon, 25 Feb 2019 15:30:12 -0800 Subject: [PATCH 07/13] Documentation for CREATE SEQUENCE --- docs/content/v1.0/api/postgresql/type.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/content/v1.0/api/postgresql/type.md b/docs/content/v1.0/api/postgresql/type.md index f345a7853ff5..4f8c72731244 100644 --- a/docs/content/v1.0/api/postgresql/type.md +++ b/docs/content/v1.0/api/postgresql/type.md @@ -6,7 +6,16 @@ menu: v1.0: identifier: api-postgresql-type parent: api-postgresql +<<<<<<< HEAD:content/v1.0/api/postgresql/type.md weight: 3300 +======= + weight: 3400 +aliases: + - /latest/api/postgresql/type + - /latest/api/ysql/type +isTocNested: true +showAsideToc: true +>>>>>>> Documentation for CREATE SEQUENCE:content/latest/api/ysql/type.md --- The following table lists all supported primitive types. From 49b0f0779c10c321471f672050a6cb1007418310 Mon Sep 17 00:00:00 2001 From: Neil Le Date: Wed, 6 Mar 2019 15:37:54 -0800 Subject: [PATCH 08/13] Fixed synstax rules --- .../ysql/commands/ddl_create_database.md~HEAD | 66 +++++++++++ .../ddl_create_database.md~Reorganize files | 38 +++++++ .../ysql/commands/ddl_create_table.md~HEAD | 105 ++++++++++++++++++ .../ddl_create_table.md~Reorganize files | 104 +++++++++++++++++ .../api/ysql/commands/ddl_create_view.md~HEAD | 77 +++++++++++++ .../ddl_create_view.md~Reorganize files | 77 +++++++++++++ .../ysql/commands/ddl_drop_database.md~HEAD | 40 +++++++ .../ddl_drop_database.md~Reorganize files | 40 +++++++ .../api/ysql/commands/ddl_drop_table.md~HEAD | 42 +++++++ .../ddl_drop_table.md~Reorganize files | 42 +++++++ .../api/ysql/commands/dml_insert.md~HEAD | 88 +++++++++++++++ .../commands/dml_insert.md~Reorganize files | 88 +++++++++++++++ .../api/ysql/commands/dml_select.md~HEAD | 99 +++++++++++++++++ .../commands/dml_select.md~Reorganize files | 99 +++++++++++++++++ .../api/ysql/datatypes/type_int.md~HEAD | 43 +++++++ .../datatypes/type_int.md~Reorganize files | 43 +++++++ .../api/ysql/datatypes/type_number.md~HEAD | 50 +++++++++ .../datatypes/type_number.md~Reorganize files | 50 +++++++++ .../api/ysql/datatypes/type_text.md~HEAD | 39 +++++++ .../datatypes/type_text.md~Reorganize files | 39 +++++++ 20 files changed, 1269 insertions(+) create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_database.md~HEAD create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_database.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_table.md~HEAD create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_table.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_view.md~HEAD create mode 100644 docs/content/latest/api/ysql/commands/ddl_create_view.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/commands/ddl_drop_database.md~HEAD create mode 100644 docs/content/latest/api/ysql/commands/ddl_drop_database.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/commands/ddl_drop_table.md~HEAD create mode 100644 docs/content/latest/api/ysql/commands/ddl_drop_table.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/commands/dml_insert.md~HEAD create mode 100644 docs/content/latest/api/ysql/commands/dml_insert.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/commands/dml_select.md~HEAD create mode 100644 docs/content/latest/api/ysql/commands/dml_select.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/datatypes/type_int.md~HEAD create mode 100644 docs/content/latest/api/ysql/datatypes/type_int.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/datatypes/type_number.md~HEAD create mode 100644 docs/content/latest/api/ysql/datatypes/type_number.md~Reorganize files create mode 100644 docs/content/latest/api/ysql/datatypes/type_text.md~HEAD create mode 100644 docs/content/latest/api/ysql/datatypes/type_text.md~Reorganize files diff --git a/docs/content/latest/api/ysql/commands/ddl_create_database.md~HEAD b/docs/content/latest/api/ysql/commands/ddl_create_database.md~HEAD new file mode 100644 index 000000000000..521c8cd406c5 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_database.md~HEAD @@ -0,0 +1,66 @@ +--- +title: CREATE DATABASE +summary: Create a new database +description: CREATE DATABASE +menu: + latest: + identifier: api-ysql-commands-create-db + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_database +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `CREATE DATABASE` statement creates a `database` that functions as a grouping mechanism for database objects such as [tables](../ddl_create_table). + +## Syntax + +### Diagram + +### Grammar +``` +create_database ::= + CREATE DATABASE name + [ [ WITH ] [ OWNER [=] user_name ] + [ TEMPLATE [=] template ] + [ ENCODING [=] encoding ] + [ LC_COLLATE [=] lc_collate ] + [ LC_CTYPE [=] lc_ctype ] + [ TABLESPACE [=] tablespace_name ] + [ ALLOW_CONNECTIONS [=] allowconn ] + [ CONNECTION LIMIT [=] connlimit ] + [ IS_TEMPLATE [=] istemplate ] ] +``` +Where + +- `name` is an identifier that specifies the database to be created. + +- `user_name` specifies the user who will own the new database. When not specified, the database creator is the owner. + +- `template` specifies name of the template from which the new database is created. + +- `encoding` specifies the character set encoding to use in the new database. + +- lc_collate specifies the collation order (LC_COLLATE). + +- lc_ctype specifies the character classification (LC_CTYPE). + +- tablespace_name specifies the tablespace that is associated with the database to be created. + +- allowconn is either `true` or `false`. + +- connlimit specifies the number of concurrent connections can be made to this database. -1 means there is no limit. + +- istemplate is either `true` or `false`. + +## Semantics + +- An error is raised if a database with the specified `name` already exists. + +- Some options in DATABASE are under development. + +## See Also +[`ALTER DATABASE`](../ddl_alter_db) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_database.md~Reorganize files b/docs/content/latest/api/ysql/commands/ddl_create_database.md~Reorganize files new file mode 100644 index 000000000000..e781ef5d759c --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_database.md~Reorganize files @@ -0,0 +1,38 @@ +--- +title: CREATE DATABASE +summary: Create a new database +description: CREATE DATABASE +menu: + latest: + identifier: api-ysql-commands-create-db + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_database +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `CREATE DATABASE` statement creates a `database` that functions as a grouping mechanism for database objects such as [tables](../ddl_create_table). + +## Syntax + +### Diagram + +CREATEDATABASEname + +### Grammar +``` +create_database ::= CREATE DATABASE name +``` +Where + +- `name` is an identifier. + +## Semantics + +- An error is raised if a database with the specified `name` already exists. + +## See Also +[`DROP DATABASE`](../ddl_drop_database) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table.md~HEAD b/docs/content/latest/api/ysql/commands/ddl_create_table.md~HEAD new file mode 100644 index 000000000000..43094c5dff21 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_table.md~HEAD @@ -0,0 +1,105 @@ +--- +title: CREATE TABLE +linkTitle: CREATE TABLE +summary: Create a new table in a database +description: CREATE TABLE +menu: + latest: + identifier: api-ysql-commands-create-table + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_table +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `CREATE TABLE` statement creates a new table in a database. It defines the table name, column names and types, primary key, and table properties. + +## Syntax + +### Diagram + +#### create_table + +CREATETABLEqualified_name(,table_element) + +#### table_element + +table_columntable_constraints + +#### table_column + +column_namecolumn_typecolumn_constraintcolumn_default_value + +#### column_constraint + +PRIMARYKEYNOTNULLCHECK(expression) + +### column_default_value + +DEFAULTexpression + +#### table_constraints + +PRIMARYKEY(column_list) + +#### column_list + +,name + +### Grammar +``` +create_table ::= CREATE TABLE qualified_name '(' table_element [ ',' table_element ...] ')'; + +table_element ::= table_column | table_constraints + +table_column ::= name column_type [ column_constraint ... | default_value ] + +column_constraint ::= PRIMARY KEY | NOT NULL | CHECK '(' expression ')' + +default_value ::= DEFAULT expression + +table_constraints ::= PRIMARY KEY '(' column_list ')' + +column_list ::= name [ ',' name ...] +``` + +Where + +- `qualified_name` and `name` are identifiers (`qualified_name` can be a qualified name). +- `expression` for DEFAULT keyword must be of the same type as the column it modifies. It must be of type boolean for CHECK constraints. + +## Semantics +- An error is raised if `qualified_name` already exists in the specified database. + +### PRIMARY KEY +- Currently defining a primary key is required. +- Primary key can be defined in either `column_constraint` or `table_constraint` but not in both of them. +- Each row in a table is uniquely identified by its primary key. + +## Examples +Example 1 + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +Example 2 + +```sql +postgres=# CREATE TABLE student_grade (student_id int, class_id int, term_id int, grade int CHECK (grade >= 0 AND grade <= 10), PRIMARY KEY (student_id, class_id, term_id)); +``` + +Example 3 + +```sql +postgres=# CREATE TABLE cars (id int PRIMARY KEY, brand text CHECK (brand in ('X', 'Y', 'Z')), model text NOT NULL, color text NOT NULL DEFAULT 'WHITE' CHECK (color in ('RED', 'WHITE', 'BLUE'))); +``` + +## See Also +[`DROP TABLE`](../ddl_drop_table) +[`ALTER TABLE`](../ddl_alter_table) +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table.md~Reorganize files b/docs/content/latest/api/ysql/commands/ddl_create_table.md~Reorganize files new file mode 100644 index 000000000000..bf42cd595d05 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_table.md~Reorganize files @@ -0,0 +1,104 @@ +--- +title: CREATE TABLE +linkTitle: CREATE TABLE +summary: Create a new table in a database +description: CREATE TABLE +menu: + latest: + identifier: api-ysql-commands-create-table + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_table +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `CREATE TABLE` statement creates a new table in a database. It defines the table name, column names and types, primary key, and table properties. + +## Syntax + +### Diagram + +#### create_table + +CREATETABLEqualified_name(,table_element) + +#### table_element + +table_columntable_constraints + +#### table_column + +column_namecolumn_typecolumn_constraintcolumn_default_value + +#### column_constraint + +PRIMARYKEYNOTNULLCHECK(expression) + +### column_default_value + +DEFAULTexpression + +#### table_constraints + +PRIMARYKEY(column_list) + +#### column_list + +,name + +### Grammar +``` +create_table ::= CREATE TABLE qualified_name '(' table_element [ ',' table_element ...] ')'; + +table_element ::= table_column | table_constraints + +table_column ::= name column_type [ column_constraint ... | default_value ] + +column_constraint ::= PRIMARY KEY | NOT NULL | CHECK '(' expression ')' + +default_value ::= DEFAULT expression + +table_constraints ::= PRIMARY KEY '(' column_list ')' + +column_list ::= name [ ',' name ...] +``` + +Where + +- `qualified_name` and `name` are identifiers (`qualified_name` can be a qualified name). +- `expression` for DEFAULT keyword must be of the same type as the column it modifies. It must be of type boolean for CHECK constraints. + +## Semantics +- An error is raised if `qualified_name` already exists in the specified database. + +### PRIMARY KEY +- Currently defining a primary key is required. +- Primary key can be defined in either `column_constraint` or `table_constraint` but not in both of them. +- Each row in a table is uniquely identified by its primary key. + +## Examples +Example 1 + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +Example 2 + +```sql +postgres=# CREATE TABLE student_grade (student_id int, class_id int, term_id int, grade int CHECK (grade >= 0 AND grade <= 10), PRIMARY KEY (student_id, class_id, term_id)); +``` + +Example 3 + +```sql +postgres=# CREATE TABLE cars (id int PRIMARY KEY, brand text CHECK (brand in ('X', 'Y', 'Z')), model text NOT NULL, color text NOT NULL DEFAULT 'WHITE' CHECK (color in ('RED', 'WHITE', 'BLUE'))); +``` + +## See Also +[`DROP TABLE`](../ddl_drop_table) +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_view.md~HEAD b/docs/content/latest/api/ysql/commands/ddl_create_view.md~HEAD new file mode 100644 index 000000000000..567b490b1803 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_view.md~HEAD @@ -0,0 +1,77 @@ +--- +title: CREATE VIEW +summary: Create a new view in a database +description: CREATE VIEW +menu: + latest: + identifier: api-ysql-commands-create-view + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_view +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `CREATE VIEW` statement creates a new view in a database. It defines the view name and the (select) statement defining it. + +## Syntax + +### Diagram + +CREATEORREPLACEVIEWqualified_name(column_list)ASselect + +### Grammar +``` +create_view ::= CREATE [ OR REPLACE ] VIEW qualified_name [ ( column_list ) ] AS select ; +``` + +Where + +- `qualified_name` is the name of the view +- `column_list` is a comma-separated list of columns + +## Semantics +- An error is raised if view with that name already exists in the specified database (unless the `OR REPLACE` option is used). + +## Examples + +Create a sample table. + + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +Insert some rows. + + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + +Create a view on the `sample` table. + + +```sql +postgres=# CREATE VIEW sample_view AS SELECT * FROM sample WHERE v2 != 'b' ORDER BY k1 DESC; +``` + +Select from the view. + + +```sql +postgres=# SELECT * FROM sample_view; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 3 | 4 | 5 | c + 1 | 2 | 3 | a +(2 rows) +``` + +## See Also +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_view.md~Reorganize files b/docs/content/latest/api/ysql/commands/ddl_create_view.md~Reorganize files new file mode 100644 index 000000000000..567b490b1803 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_create_view.md~Reorganize files @@ -0,0 +1,77 @@ +--- +title: CREATE VIEW +summary: Create a new view in a database +description: CREATE VIEW +menu: + latest: + identifier: api-ysql-commands-create-view + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_create_view +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `CREATE VIEW` statement creates a new view in a database. It defines the view name and the (select) statement defining it. + +## Syntax + +### Diagram + +CREATEORREPLACEVIEWqualified_name(column_list)ASselect + +### Grammar +``` +create_view ::= CREATE [ OR REPLACE ] VIEW qualified_name [ ( column_list ) ] AS select ; +``` + +Where + +- `qualified_name` is the name of the view +- `column_list` is a comma-separated list of columns + +## Semantics +- An error is raised if view with that name already exists in the specified database (unless the `OR REPLACE` option is used). + +## Examples + +Create a sample table. + + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + +Insert some rows. + + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + +Create a view on the `sample` table. + + +```sql +postgres=# CREATE VIEW sample_view AS SELECT * FROM sample WHERE v2 != 'b' ORDER BY k1 DESC; +``` + +Select from the view. + + +```sql +postgres=# SELECT * FROM sample_view; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 3 | 4 | 5 | c + 1 | 2 | 3 | a +(2 rows) +``` + +## See Also +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_database.md~HEAD b/docs/content/latest/api/ysql/commands/ddl_drop_database.md~HEAD new file mode 100644 index 000000000000..d3e1aa8ada9f --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_drop_database.md~HEAD @@ -0,0 +1,40 @@ +--- +title: DROP DATABASE +summary: Removes a database and all of its database objects +description: DROP DATABASE +menu: + latest: + identifier: api-ysql-commands-drop-db + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_drop_database +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `DROP DATABASE` statement removes a database and all its database objects (such as [tables](ddl_create_table) or [types](ddl_create_type)) from the system. + +## Syntax + +### Diagram + +DROPDATABASEname + +### Grammar + +``` +drop_database ::= DROP DATABASE name; +``` +Where + +- `name` is an identifier. + +## Semantics + +- An error is raised if the specified `name` does not exist. +- Currently, an error is raised if the specified database is non-empty (contains tables or types). This restriction will be removed. + +## See Also +[`CREATE DATABASE`](ddl_create_database) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_database.md~Reorganize files b/docs/content/latest/api/ysql/commands/ddl_drop_database.md~Reorganize files new file mode 100644 index 000000000000..d3e1aa8ada9f --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_drop_database.md~Reorganize files @@ -0,0 +1,40 @@ +--- +title: DROP DATABASE +summary: Removes a database and all of its database objects +description: DROP DATABASE +menu: + latest: + identifier: api-ysql-commands-drop-db + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_drop_database +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `DROP DATABASE` statement removes a database and all its database objects (such as [tables](ddl_create_table) or [types](ddl_create_type)) from the system. + +## Syntax + +### Diagram + +DROPDATABASEname + +### Grammar + +``` +drop_database ::= DROP DATABASE name; +``` +Where + +- `name` is an identifier. + +## Semantics + +- An error is raised if the specified `name` does not exist. +- Currently, an error is raised if the specified database is non-empty (contains tables or types). This restriction will be removed. + +## See Also +[`CREATE DATABASE`](ddl_create_database) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_table.md~HEAD b/docs/content/latest/api/ysql/commands/ddl_drop_table.md~HEAD new file mode 100644 index 000000000000..8aef0d091261 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_drop_table.md~HEAD @@ -0,0 +1,42 @@ +--- +title: DROP TABLE +summary: Remove a table +description: DROP TABLE +menu: + latest: + identifier: api-ysql-commands-drop-table + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_drop_table +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `DROP TABLE` statement removes a table and all of its data from the database. + +## Syntax + +### Diagram + +DROPTABLEqualified_name + +### Grammar +``` +drop_table ::= DROP TABLE qualified_name; +``` +Where + +- `qualified_name` is a (possibly qualified) identifier. + +## Semantics + + - An error is raised if the specified `table_name` does not exist. + - Associated objects to `table_name` such as prepared statements will be eventually invalidated after the drop statement is completed. + +## See Also + +[`CREATE TABLE`](../ddl_create_table) +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_table.md~Reorganize files b/docs/content/latest/api/ysql/commands/ddl_drop_table.md~Reorganize files new file mode 100644 index 000000000000..8aef0d091261 --- /dev/null +++ b/docs/content/latest/api/ysql/commands/ddl_drop_table.md~Reorganize files @@ -0,0 +1,42 @@ +--- +title: DROP TABLE +summary: Remove a table +description: DROP TABLE +menu: + latest: + identifier: api-ysql-commands-drop-table + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/ddl_drop_table +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `DROP TABLE` statement removes a table and all of its data from the database. + +## Syntax + +### Diagram + +DROPTABLEqualified_name + +### Grammar +``` +drop_table ::= DROP TABLE qualified_name; +``` +Where + +- `qualified_name` is a (possibly qualified) identifier. + +## Semantics + + - An error is raised if the specified `table_name` does not exist. + - Associated objects to `table_name` such as prepared statements will be eventually invalidated after the drop statement is completed. + +## See Also + +[`CREATE TABLE`](../ddl_create_table) +[`INSERT`](../dml_insert) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_insert.md~HEAD b/docs/content/latest/api/ysql/commands/dml_insert.md~HEAD new file mode 100644 index 000000000000..af4ce0ddd7ca --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dml_insert.md~HEAD @@ -0,0 +1,88 @@ +--- +title: INSERT +summary: Add a new row to a table +description: INSERT +menu: + latest: + identifier: api-ysql-commands-insert + parent: api-ysql-commands +aliases: + - /latest/api/ysql/dml/commands/insert +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +The `INSERT` statement adds a row to a specified table. + +## Syntax + +### Diagram + +#### insert + +INSERTINTOqualified_nameASname(column_list)VALUES,values_list + +#### values_list + +(,expression) + +### Grammar + +``` +insert = INSERT INTO qualified_name [ AS name ] '(' column_list ')' VALUES values_list [ ',' ...]; +values_list = '(' expression [ ',' ...] ')'; +``` + +Where + +- `qualified_name` and `name` are identifiers. +- `column_list` is a comma-separated list of columns names (identifiers). + +## Semantics + - An error is raised if the specified table does not exist. + - Each of primary key columns must have a non-null value. + +### `VALUES` Clause + - Each of the values list must have the same length as the columns list. + - Each value must be convertible to its corresponding (by position) column type. + - Each value literal can be an expression. + +## Examples + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Insert some rows. + +```sql +postgres=# INSERT INTO sample VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + + +Check the inserted rows. + + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 2 | 3 | 4 | b + 3 | 4 | 5 | c +(3 rows) +``` + +## See Also + +[`CREATE TABLE`](../ddl_create_table) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_insert.md~Reorganize files b/docs/content/latest/api/ysql/commands/dml_insert.md~Reorganize files new file mode 100644 index 000000000000..1522cbb0516f --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dml_insert.md~Reorganize files @@ -0,0 +1,88 @@ +--- +title: INSERT +summary: Add a new row to a table +description: INSERT +menu: + latest: + identifier: api-ysql-commands-insert + parent: api-ysql-commands +aliases: + - /latest/api/ysql/dml/commands/insert +isTocNested: true +showAsideToc: true +--- + +## Synopsis + +The `INSERT` statement adds a row to a specified table. + +## Syntax + +### Diagram + +#### insert + +INSERTINTOqualified_nameASname(column_list)VALUES,values_list + +#### values_list + +(,expression) + +### Grammar + +``` +insert = INSERT INTO qualified_name [ AS name ] '(' column_list ')' VALUES values_list [ ',' ...]; +values_list = '(' expression [ ',' ...] ')'; +``` + +Where + +- `qualified_name` and `name` are identifiers. +- `column_list` is a comma-separated list of columns names (identifiers). + +## Semantics + - An error is raised if the specified table does not exist. + - Each of primary key columns must have a non-null value. + +### `VALUES` Clause + - Each of the values list must have the same length as the columns list. + - Each value must be convertible to its corresponding (by position) column type. + - Each value literal can be an expression. + +## Examples + +Create a sample table. + +```sql +postgres=# CREATE TABLE sample(k1 int, k2 int, v1 int, v2 text, PRIMARY KEY (k1, k2)); +``` + + +Insert some rows. + +```sql +postgres=# INSERT INTO sample(k1, k2, v1, v2) VALUES (1, 2.0, 3, 'a'), (2, 3.0, 4, 'b'), (3, 4.0, 5, 'c'); +``` + + +Check the inserted rows. + + +```sql +postgres=# SELECT * FROM sample ORDER BY k1; +``` + +``` + k1 | k2 | v1 | v2 +----+----+----+---- + 1 | 2 | 3 | a + 2 | 3 | 4 | b + 3 | 4 | 5 | c +(2 rows) +``` + +## See Also + +[`CREATE TABLE`](../ddl_create_table) +[`SELECT`](../dml_select) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_select.md~HEAD b/docs/content/latest/api/ysql/commands/dml_select.md~HEAD new file mode 100644 index 000000000000..4658398cfc0f --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dml_select.md~HEAD @@ -0,0 +1,99 @@ +--- +title: SELECT +summary: Retrieves rows from a table +description: SELECT +menu: + latest: + identifier: api-ysql-commands-select + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/select +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `SELECT` statement retrieves (part of) rows of specified columns that meet a given condition from a table. It specifies the columns to be retrieved, the name of the table, and the condition each selected row must satisfy. + +## Syntax + +### Diagram + +#### select +WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*expressionASname,nameFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS + +### order_expr +expressionASCDESCUSINGoperatorNULLSFIRSTLAST + +### Grammar + +``` +select ::= [ WITH [ RECURSIVE ] with_query [ ',' ... ] ] \ + SELECT [ ALL | DISTINCT [ ON ( expression { , expression } ) ] ] \ + [ * | expression [ [ AS ] name ] [ ',' ... ] ] \ + [ FROM from_item [ ',' ... ] ] \ + [ WHERE condition ] \ + [ GROUP BY grouping_element [ , ...] ] \ + [ HAVING condition [ ',' condition ] ] \ + [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ] \ + [ ORDER BY order_expr [ ',' ...] ] \ + [ LIMIT [ integer | ALL ] ] \ + [ OFFSET integer [ ROW | ROWS ] ] ; + +order_expr = expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ]; +``` + +Where + +- `condition` is any expression that evaluates to boolean value. +- for more details on `from_item`, `grouping_element`, and`with_query` see [this](https://www.postgresql.org/docs/10/static/sql-select.html) page. + +## Semantics + - An error is raised if the specified `qualified_name` does not exist. + - `*` represents all columns. + +While the where clause allows a wide range of operators, the exact conditions used in the where clause have significant performance considerations (especially for large datasets). + +## Examples + +Create two sample tables. + +```sql +postgres=# CREATE TABLE sample1(k1 bigint, k2 float, v text, PRIMARY KEY (k1, k2)); +``` + + +```sql +postgres=# CREATE TABLE sample2(k1 bigint, k2 float, v text, PRIMARY KEY (k1, k2)); +``` + +Insert some rows. + +```sql +postgres=# INSERT INTO sample1(k1, k2, v) VALUES (1, 2.5, 'abc'), (1, 3.5, 'def'), (1, 4.5, 'xyz'); +``` + + +```sql +postgres=# INSERT INTO sample2(k1, k2, v) VALUES (1, 2.5, 'foo'), (1, 4.5, 'bar'); +``` + +Select from both tables using join. + +```sql +postgres=# SELECT a.k1, a.k2, a.v as av, b.v as bv FROM sample1 a LEFT JOIN sample2 b ON (a.k1 = b.k1 and a.k2 = b.k2) WHERE a.k1 = 1 AND a.k2 IN (2.5, 3.5) ORDER BY a.k2 DESC; +``` + +``` + k1 | k2 | av | bv +----+-----+-----+----- + 1 | 3.5 | def | + 1 | 2.5 | abc | foo +(2 rows) +``` + +## See Also + +[`CREATE TABLE`](../ddl_create_table) +[`INSERT`](../dml_insert) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/commands/dml_select.md~Reorganize files b/docs/content/latest/api/ysql/commands/dml_select.md~Reorganize files new file mode 100644 index 000000000000..4658398cfc0f --- /dev/null +++ b/docs/content/latest/api/ysql/commands/dml_select.md~Reorganize files @@ -0,0 +1,99 @@ +--- +title: SELECT +summary: Retrieves rows from a table +description: SELECT +menu: + latest: + identifier: api-ysql-commands-select + parent: api-ysql-commands +aliases: + - /latest/api/ysql/commands/select +isTocNested: true +showAsideToc: true +--- + +## Synopsis +The `SELECT` statement retrieves (part of) rows of specified columns that meet a given condition from a table. It specifies the columns to be retrieved, the name of the table, and the condition each selected row must satisfy. + +## Syntax + +### Diagram + +#### select +WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*expressionASname,nameFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS + +### order_expr +expressionASCDESCUSINGoperatorNULLSFIRSTLAST + +### Grammar + +``` +select ::= [ WITH [ RECURSIVE ] with_query [ ',' ... ] ] \ + SELECT [ ALL | DISTINCT [ ON ( expression { , expression } ) ] ] \ + [ * | expression [ [ AS ] name ] [ ',' ... ] ] \ + [ FROM from_item [ ',' ... ] ] \ + [ WHERE condition ] \ + [ GROUP BY grouping_element [ , ...] ] \ + [ HAVING condition [ ',' condition ] ] \ + [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ] \ + [ ORDER BY order_expr [ ',' ...] ] \ + [ LIMIT [ integer | ALL ] ] \ + [ OFFSET integer [ ROW | ROWS ] ] ; + +order_expr = expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ]; +``` + +Where + +- `condition` is any expression that evaluates to boolean value. +- for more details on `from_item`, `grouping_element`, and`with_query` see [this](https://www.postgresql.org/docs/10/static/sql-select.html) page. + +## Semantics + - An error is raised if the specified `qualified_name` does not exist. + - `*` represents all columns. + +While the where clause allows a wide range of operators, the exact conditions used in the where clause have significant performance considerations (especially for large datasets). + +## Examples + +Create two sample tables. + +```sql +postgres=# CREATE TABLE sample1(k1 bigint, k2 float, v text, PRIMARY KEY (k1, k2)); +``` + + +```sql +postgres=# CREATE TABLE sample2(k1 bigint, k2 float, v text, PRIMARY KEY (k1, k2)); +``` + +Insert some rows. + +```sql +postgres=# INSERT INTO sample1(k1, k2, v) VALUES (1, 2.5, 'abc'), (1, 3.5, 'def'), (1, 4.5, 'xyz'); +``` + + +```sql +postgres=# INSERT INTO sample2(k1, k2, v) VALUES (1, 2.5, 'foo'), (1, 4.5, 'bar'); +``` + +Select from both tables using join. + +```sql +postgres=# SELECT a.k1, a.k2, a.v as av, b.v as bv FROM sample1 a LEFT JOIN sample2 b ON (a.k1 = b.k1 and a.k2 = b.k2) WHERE a.k1 = 1 AND a.k2 IN (2.5, 3.5) ORDER BY a.k2 DESC; +``` + +``` + k1 | k2 | av | bv +----+-----+-----+----- + 1 | 3.5 | def | + 1 | 2.5 | abc | foo +(2 rows) +``` + +## See Also + +[`CREATE TABLE`](../ddl_create_table) +[`INSERT`](../dml_insert) +[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/datatypes/type_int.md~HEAD b/docs/content/latest/api/ysql/datatypes/type_int.md~HEAD new file mode 100644 index 000000000000..4de9ec01bf6a --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/type_int.md~HEAD @@ -0,0 +1,43 @@ +--- +title: INTEGER +summary: Signed integers of different ranges +description: Integer Types +menu: + latest: + identifier: api-ysql-datatypes-int + parent: api-ysql-datatypes +aliases: + - /latest/api/ysql/datatypes/int +isTocNested: true +showAsideToc: true +--- + +## Synopsis +There are several different datatypes for integers of different value ranges. Integers can be set, inserted, incremented, and decremented. + +DataType | Min | Max | +---------|-----|-----| +`SMALLINT` | -32,768 | 32,767 | +`INT` or `INTEGER` | -2,147,483,648 | 2,147,483,647 | +`BIGINT` | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 | + +## Syntax +The following keywords are used to specify a column of type integer for different constraints including its value ranges. + +``` +type_specification ::= SMALLINT | INT | INTEGER | BIGINT + +integer_literal ::= [ + | - ] digit [ { digit | , } ... ] +``` + +## Semantics + +- Columns of type `SMALLINT`, `INT`, `INTEGER`, or `BIGINT` can be part of the `PRIMARY KEY`. +- Values of different integer datatypes are comparable and convertible to one another. +- Values of integer datatypes are convertible but not comparable to floating point number. +- Currently, values of floating point datatypes are not convertible to integers. This restriction +will be removed in the near future. + +## See Also + +[Data Types](../type) diff --git a/docs/content/latest/api/ysql/datatypes/type_int.md~Reorganize files b/docs/content/latest/api/ysql/datatypes/type_int.md~Reorganize files new file mode 100644 index 000000000000..4de9ec01bf6a --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/type_int.md~Reorganize files @@ -0,0 +1,43 @@ +--- +title: INTEGER +summary: Signed integers of different ranges +description: Integer Types +menu: + latest: + identifier: api-ysql-datatypes-int + parent: api-ysql-datatypes +aliases: + - /latest/api/ysql/datatypes/int +isTocNested: true +showAsideToc: true +--- + +## Synopsis +There are several different datatypes for integers of different value ranges. Integers can be set, inserted, incremented, and decremented. + +DataType | Min | Max | +---------|-----|-----| +`SMALLINT` | -32,768 | 32,767 | +`INT` or `INTEGER` | -2,147,483,648 | 2,147,483,647 | +`BIGINT` | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 | + +## Syntax +The following keywords are used to specify a column of type integer for different constraints including its value ranges. + +``` +type_specification ::= SMALLINT | INT | INTEGER | BIGINT + +integer_literal ::= [ + | - ] digit [ { digit | , } ... ] +``` + +## Semantics + +- Columns of type `SMALLINT`, `INT`, `INTEGER`, or `BIGINT` can be part of the `PRIMARY KEY`. +- Values of different integer datatypes are comparable and convertible to one another. +- Values of integer datatypes are convertible but not comparable to floating point number. +- Currently, values of floating point datatypes are not convertible to integers. This restriction +will be removed in the near future. + +## See Also + +[Data Types](../type) diff --git a/docs/content/latest/api/ysql/datatypes/type_number.md~HEAD b/docs/content/latest/api/ysql/datatypes/type_number.md~HEAD new file mode 100644 index 000000000000..9457581cf6fe --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/type_number.md~HEAD @@ -0,0 +1,50 @@ +--- +title: FLOAT +summary: FLOAT, DOUBLE, and DECIMAL +description: Floating-Point Types +menu: + latest: + identifier: api-ysql-datatypes-number + parent: api-ysql-datatypes +aliases: + - /latest/api/ysql/datatypes/number +isTocNested: true +showAsideToc: true +--- + +## Synopsis +Floating-point and fixed-point numbers are used to specify non-integer numbers. Different floating point datatypes represent different precision numbers. + +DataType | Description | Decimal Precision | +---------|-----|-----| +`REAL` | Inexact 32-bit floating point number | 6 | +`DOUBLE PRECISION` | Inexact 64-bit floating point number | 15 | +`FLOAT` | Inexact 64-bit floating point number | variable | + +## Syntax + +``` +type_specification ::= { FLOAT | DOUBLE PRECISION | DECIMAL | DEC } + +non_integer_floating_point_literal ::= non_integer_fixed_point_literal | "NaN" | "Infinity" | "-Infinity" + +non_integer_fixed_point_literal ::= [ + | - ] { digit [ digit ...] '.' [ digit ...] | '.' digit [ digit ...] } + +``` + +Where + +- Columns of type `FLOAT`, `DOUBLE PRECISION`, `DEC`, or `DECIMAL` can be part of the `PRIMARY KEY`. +- `non_integer_floating_point_literal` is used for values of `FLOAT`, `DOUBLE` and `DOUBLE PRECISION` types. +- `non_integer_fixed_point_literal` is used for values of `DECIMAL` type. + +## Semantics + +- Values of different floating-point and fixed-point datatypes are comparable and convertible to one another. +- Conversion from floating-point types into `DECIMAL` will raise an error for the special values `NaN`, `Infinity`, and `-Infinity`. +- The ordering for special floating-point values is defined as (in ascending order): `-Infinity`, all negative values in order, all positive values in order, `Infinity`, and `NaN`. +- Values of non-integer numeric datatypes are neither comparable nor convertible to integer although integers are convertible to them. This restriction will be removed. + +## See Also + +[Data Types](../type) diff --git a/docs/content/latest/api/ysql/datatypes/type_number.md~Reorganize files b/docs/content/latest/api/ysql/datatypes/type_number.md~Reorganize files new file mode 100644 index 000000000000..9457581cf6fe --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/type_number.md~Reorganize files @@ -0,0 +1,50 @@ +--- +title: FLOAT +summary: FLOAT, DOUBLE, and DECIMAL +description: Floating-Point Types +menu: + latest: + identifier: api-ysql-datatypes-number + parent: api-ysql-datatypes +aliases: + - /latest/api/ysql/datatypes/number +isTocNested: true +showAsideToc: true +--- + +## Synopsis +Floating-point and fixed-point numbers are used to specify non-integer numbers. Different floating point datatypes represent different precision numbers. + +DataType | Description | Decimal Precision | +---------|-----|-----| +`REAL` | Inexact 32-bit floating point number | 6 | +`DOUBLE PRECISION` | Inexact 64-bit floating point number | 15 | +`FLOAT` | Inexact 64-bit floating point number | variable | + +## Syntax + +``` +type_specification ::= { FLOAT | DOUBLE PRECISION | DECIMAL | DEC } + +non_integer_floating_point_literal ::= non_integer_fixed_point_literal | "NaN" | "Infinity" | "-Infinity" + +non_integer_fixed_point_literal ::= [ + | - ] { digit [ digit ...] '.' [ digit ...] | '.' digit [ digit ...] } + +``` + +Where + +- Columns of type `FLOAT`, `DOUBLE PRECISION`, `DEC`, or `DECIMAL` can be part of the `PRIMARY KEY`. +- `non_integer_floating_point_literal` is used for values of `FLOAT`, `DOUBLE` and `DOUBLE PRECISION` types. +- `non_integer_fixed_point_literal` is used for values of `DECIMAL` type. + +## Semantics + +- Values of different floating-point and fixed-point datatypes are comparable and convertible to one another. +- Conversion from floating-point types into `DECIMAL` will raise an error for the special values `NaN`, `Infinity`, and `-Infinity`. +- The ordering for special floating-point values is defined as (in ascending order): `-Infinity`, all negative values in order, all positive values in order, `Infinity`, and `NaN`. +- Values of non-integer numeric datatypes are neither comparable nor convertible to integer although integers are convertible to them. This restriction will be removed. + +## See Also + +[Data Types](../type) diff --git a/docs/content/latest/api/ysql/datatypes/type_text.md~HEAD b/docs/content/latest/api/ysql/datatypes/type_text.md~HEAD new file mode 100644 index 000000000000..64f2634c910d --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/type_text.md~HEAD @@ -0,0 +1,39 @@ +--- +title: TEXT +summary: String of Unicode characters +description: Character Types +menu: + latest: + identifier: api-ysql-datatypes-text + parent: api-ysql-datatypes +aliases: + - /latest/api/ysql/datatypes/text +isTocNested: true +showAsideToc: true +--- + +## Synopsis +Character types are used to specify data of a string of Unicode characters. + +## Syntax +``` +type_specification ::= TEXT | VARCHAR + +text_literal ::= "'" [ '' | letter ...] "'" +``` + +Where + +- `TEXT` and `VARCHAR` are aliases. +- Single quote must be escaped as (''). +- `letter` is any character except for single quote (`[^']`). + +## Semantics + +- Columns of type `TEXT` or `VARCHAR` can be part of the `PRIMARY KEY`. +- The length of `TEXT` string is virtually unlimited. +- Currently, value of type character datatype are neither convertible nor comparable to non-text datatypes. This restriction will be removed. + +## See Also + +[Data Types](..#datatypes) diff --git a/docs/content/latest/api/ysql/datatypes/type_text.md~Reorganize files b/docs/content/latest/api/ysql/datatypes/type_text.md~Reorganize files new file mode 100644 index 000000000000..64f2634c910d --- /dev/null +++ b/docs/content/latest/api/ysql/datatypes/type_text.md~Reorganize files @@ -0,0 +1,39 @@ +--- +title: TEXT +summary: String of Unicode characters +description: Character Types +menu: + latest: + identifier: api-ysql-datatypes-text + parent: api-ysql-datatypes +aliases: + - /latest/api/ysql/datatypes/text +isTocNested: true +showAsideToc: true +--- + +## Synopsis +Character types are used to specify data of a string of Unicode characters. + +## Syntax +``` +type_specification ::= TEXT | VARCHAR + +text_literal ::= "'" [ '' | letter ...] "'" +``` + +Where + +- `TEXT` and `VARCHAR` are aliases. +- Single quote must be escaped as (''). +- `letter` is any character except for single quote (`[^']`). + +## Semantics + +- Columns of type `TEXT` or `VARCHAR` can be part of the `PRIMARY KEY`. +- The length of `TEXT` string is virtually unlimited. +- Currently, value of type character datatype are neither convertible nor comparable to non-text datatypes. This restriction will be removed. + +## See Also + +[Data Types](..#datatypes) From d7e5aedc31b1d08aa497aa432068aa71852584e9 Mon Sep 17 00:00:00 2001 From: Neil Le Date: Thu, 7 Mar 2019 12:57:31 -0800 Subject: [PATCH 09/13] Merged with sequence document. --- .../api/ysql/commands/ddl_create_seq.md | 35 ------------------- .../ddl_create_sequence.md} | 0 .../ddl_drop_sequence.md} | 0 .../func_currval.md} | 0 .../func_lastval.md} | 0 .../func_nextval.md} | 0 docs/content/latest/api/ysql/sequences.md | 28 --------------- 7 files changed, 63 deletions(-) delete mode 100644 docs/content/latest/api/ysql/commands/ddl_create_seq.md rename docs/content/latest/api/ysql/{create_sequence.md => commands/ddl_create_sequence.md} (100%) rename docs/content/latest/api/ysql/{drop_sequence.md => commands/ddl_drop_sequence.md} (100%) rename docs/content/latest/api/ysql/{currval_sequence.md => exprs/func_currval.md} (100%) rename docs/content/latest/api/ysql/{lastval_sequence.md => exprs/func_lastval.md} (100%) rename docs/content/latest/api/ysql/{nextval_sequence.md => exprs/func_nextval.md} (100%) delete mode 100644 docs/content/latest/api/ysql/sequences.md diff --git a/docs/content/latest/api/ysql/commands/ddl_create_seq.md b/docs/content/latest/api/ysql/commands/ddl_create_seq.md deleted file mode 100644 index df070adaa199..000000000000 --- a/docs/content/latest/api/ysql/commands/ddl_create_seq.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: CREATE SEQUENCE -linkTitle: CREATE SEQUENCE -summary: CREATE SEQUENCE -description: CREATE SEQUENCE -menu: - latest: - identifier: api-ysql-commands-create-seq - parent: api-ysql-commands -aliases: - - /latest/api/ysql/commands/ddl_create_seq -isTocNested: true -showAsideToc: true ---- - -## Synopsis - -## Syntax - -### Diagram - -### Grammar -``` -``` - -Where - -## Semantics - -### PRIMARY KEY - -## Examples - -## See Also -[Other PostgreSQL Statements](..) diff --git a/docs/content/latest/api/ysql/create_sequence.md b/docs/content/latest/api/ysql/commands/ddl_create_sequence.md similarity index 100% rename from docs/content/latest/api/ysql/create_sequence.md rename to docs/content/latest/api/ysql/commands/ddl_create_sequence.md diff --git a/docs/content/latest/api/ysql/drop_sequence.md b/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md similarity index 100% rename from docs/content/latest/api/ysql/drop_sequence.md rename to docs/content/latest/api/ysql/commands/ddl_drop_sequence.md diff --git a/docs/content/latest/api/ysql/currval_sequence.md b/docs/content/latest/api/ysql/exprs/func_currval.md similarity index 100% rename from docs/content/latest/api/ysql/currval_sequence.md rename to docs/content/latest/api/ysql/exprs/func_currval.md diff --git a/docs/content/latest/api/ysql/lastval_sequence.md b/docs/content/latest/api/ysql/exprs/func_lastval.md similarity index 100% rename from docs/content/latest/api/ysql/lastval_sequence.md rename to docs/content/latest/api/ysql/exprs/func_lastval.md diff --git a/docs/content/latest/api/ysql/nextval_sequence.md b/docs/content/latest/api/ysql/exprs/func_nextval.md similarity index 100% rename from docs/content/latest/api/ysql/nextval_sequence.md rename to docs/content/latest/api/ysql/exprs/func_nextval.md diff --git a/docs/content/latest/api/ysql/sequences.md b/docs/content/latest/api/ysql/sequences.md deleted file mode 100644 index 3d051d7088ca..000000000000 --- a/docs/content/latest/api/ysql/sequences.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Sequences Statements -description: PostgreSQL Sequences Statements -summary: Sequences overview and specification. -menu: - latest: - identifier: api-postgresql-sequences - parent: api-postgresql - weight: 3300 -aliases: - - /latest/api/postgresql/sequences - - /latest/api/ysql/sequences -isTocNested: true -showAsideToc: true ---- - -Statements and functions to create and obtain information from sequences. - -## Sequences -Statement | Description | -----------|------------| -[`CREATE SEQUENCE`](../create_sequence) | Create a new sequence | -[`DROP SEQUENCE`](drop_sequence) | Drop a sequence | -[`nextval(sequence)`](../nextval_sequence) | Get the next value in the sequence -[`currval(sequence)`](../currval_sequence) | Get the last value returned by the most recent nextval call for the specified sequence -[`lastval()`](../lastval_sequence) | Get the last value returned by the most recent nextval call for any sequence - -- `ALTER SEQUENCE` and `setval()` are not supported yet. From 02f8e69bb88f06dd47234e852eb16b56dbdf8865 Mon Sep 17 00:00:00 2001 From: Neil Le Date: Thu, 7 Mar 2019 13:00:20 -0800 Subject: [PATCH 10/13] Merged with changes from Hector and Amit. --- .../api/ysql/commands/ddl_create_sequence.md | 7 ++--- .../api/ysql/commands/ddl_drop_sequence.md | 9 +++--- .../latest/api/ysql/exprs/func_currval.md | 7 ++--- .../latest/api/ysql/exprs/func_lastval.md | 7 ++--- .../latest/api/ysql/exprs/func_nextval.md | 7 ++--- docs/content/latest/api/ysql/type.md | 29 ------------------- 6 files changed, 16 insertions(+), 50 deletions(-) delete mode 100644 docs/content/latest/api/ysql/type.md diff --git a/docs/content/latest/api/ysql/commands/ddl_create_sequence.md b/docs/content/latest/api/ysql/commands/ddl_create_sequence.md index d0aa04d3efcb..3d71d86b663e 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_sequence.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_sequence.md @@ -4,11 +4,10 @@ summary: Create a sequence in the current schema description: CREATE SEQUENCE menu: latest: - identifier: api-postgresql-create-sequence - parent: api-postgresql-sequences + identifier: api-ysql-commands-create-sequence + parent: api-ysql-commands aliases: - - /latest/api/postgresql/create_sequence - - /latest/api/ysql/create_sequence + - /latest/api/ysql/commands/ddl_create_sequence isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md b/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md index 6f4396009d35..45c924d612e3 100644 --- a/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md @@ -4,11 +4,10 @@ summary: Drop a sequence in the current schema description: DROP SEQUENCE menu: latest: - identifier: api-postgresql-drop-sequence - parent: api-postgresql-sequences + identifier: api-ysql-commands-drop-sequence + parent: api-ysql-commands aliases: - - /latest/api/postgresql/drop_sequence - - /latest/api/ysql/drop_sequence + - /latest/api/ysql/commands/drop_sequence isTocNested: true showAsideToc: true --- @@ -95,7 +94,7 @@ DROP SEQUENCE ``` ## See Also -[`CREATE SEQUENCE`](../create_sequence) +[`CREATE SEQUENCE`](../ddl_create_sequence) [`currval()`](../currval_sequence) [`lastval()`](../lastval_sequence) [`nextval()`](../nextval_sequence) diff --git a/docs/content/latest/api/ysql/exprs/func_currval.md b/docs/content/latest/api/ysql/exprs/func_currval.md index 427a180a07b9..2585c362ab09 100644 --- a/docs/content/latest/api/ysql/exprs/func_currval.md +++ b/docs/content/latest/api/ysql/exprs/func_currval.md @@ -4,11 +4,10 @@ summary: Get the last value returned by `nextval()` in the current session description: currval() menu: latest: - identifier: api-postgresql-currval - parent: api-postgresql-sequences + identifier: api-ysql-exprs-currval + parent: api-ysql-exprs aliases: - - /latest/api/postgresql/currval_sequence - - /latest/api/ysql/currval_sequence + - /latest/api/ysql/exprs/func_currval isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/exprs/func_lastval.md b/docs/content/latest/api/ysql/exprs/func_lastval.md index 7801e22d2fb5..31ed8bf84454 100644 --- a/docs/content/latest/api/ysql/exprs/func_lastval.md +++ b/docs/content/latest/api/ysql/exprs/func_lastval.md @@ -4,11 +4,10 @@ summary: Get the value returned from the last call to `nextval()` description: lastval() menu: latest: - identifier: api-postgresql-lastval - parent: api-postgresql-sequences + identifier: api-ysql-exprs-lastval + parent: api-ysql-exprs aliases: - - /latest/api/postgresql/lastval_sequence - - /latest/api/ysql/lastval_sequence + - /latest/api/ysql/exprs/func_lastval isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/exprs/func_nextval.md b/docs/content/latest/api/ysql/exprs/func_nextval.md index d959d7f64c9f..355fdc78f93b 100644 --- a/docs/content/latest/api/ysql/exprs/func_nextval.md +++ b/docs/content/latest/api/ysql/exprs/func_nextval.md @@ -4,11 +4,10 @@ summary: Get the next value from the session's sequence cache description: nextval() menu: latest: - identifier: api-postgresql-nextval - parent: api-postgresql-sequences + identifier: api-ysql-exprs-nextval + parent: api-ysql-exprs aliases: - - /latest/api/postgresql/nextval_sequence - - /latest/api/ysql/nextval_sequence + - /latest/api/ysql/exprs/func_nextval isTocNested: true showAsideToc: true --- diff --git a/docs/content/latest/api/ysql/type.md b/docs/content/latest/api/ysql/type.md deleted file mode 100644 index cf98c46fe11a..000000000000 --- a/docs/content/latest/api/ysql/type.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Datatypes -description: PostgreSQL Datatypes -summary: Datatype overview and specification. -menu: - latest: - identifier: api-postgresql-type - parent: api-postgresql - weight: 3400 -aliases: - - /latest/api/postgresql/type - - /latest/api/ysql/type -isTocNested: true -showAsideToc: true ---- - -The following table lists all supported primitive types. - -Primitive Type | Allowed in Key | Type Parameters | Description | ----------------|----------------|-----------------|-------------| -[`BIGINT`](../type_int) | Yes | - | 64-bit signed integer | -[`BOOLEAN`](../type_bool) | Yes | - | Boolean | -[`DECIMAL`](../type_number) | Yes | - | Exact, fixed-point number | -[`DOUBLE PRECISION`](../type_number) | Yes | - | 64-bit, inexact, floating-point number | -[`FLOAT`](../type_number) | Yes | - | 64-bit, inexact, floating-point number | -[`REAL`](../type_number) | Yes | - | 32-bit, inexact, floating-point number | -[`INT` | `INTEGER`](../type_int) | Yes | - | 32-bit signed integer | -[`SMALLINT`](../type_int) | Yes | - | 16-bit signed integer | -[`TEXT` | `VARCHAR`](../type_text) | Yes | - | Variable-size string of Unicode characters | From 8dd30eb15464650c832dc684a2db6ca1ba3a12ab Mon Sep 17 00:00:00 2001 From: Neil Le Date: Thu, 7 Mar 2019 13:02:48 -0800 Subject: [PATCH 11/13] Fix file merge error --- docs/content/v1.0/api/postgresql/type.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/docs/content/v1.0/api/postgresql/type.md b/docs/content/v1.0/api/postgresql/type.md index 4f8c72731244..f345a7853ff5 100644 --- a/docs/content/v1.0/api/postgresql/type.md +++ b/docs/content/v1.0/api/postgresql/type.md @@ -6,16 +6,7 @@ menu: v1.0: identifier: api-postgresql-type parent: api-postgresql -<<<<<<< HEAD:content/v1.0/api/postgresql/type.md weight: 3300 -======= - weight: 3400 -aliases: - - /latest/api/postgresql/type - - /latest/api/ysql/type -isTocNested: true -showAsideToc: true ->>>>>>> Documentation for CREATE SEQUENCE:content/latest/api/ysql/type.md --- The following table lists all supported primitive types. From b590596c54313f2adc6cef4ed93746e34359f73b Mon Sep 17 00:00:00 2001 From: Neil Le Date: Fri, 8 Mar 2019 03:02:49 -0800 Subject: [PATCH 12/13] Add diagrams --- .../latest/api/ysql/commands/cmd_copy.md | 8 + .../latest/api/ysql/commands/cmd_reset.md | 3 +- .../latest/api/ysql/commands/cmd_set.md | 1 + .../latest/api/ysql/commands/cmd_show.md | 2 + .../api/ysql/commands/dcl_create_user.md | 3 +- .../latest/api/ysql/commands/dcl_grant.md | 2 +- .../latest/api/ysql/commands/dcl_revoke.md | 2 +- .../latest/api/ysql/commands/ddl_alter_db.md | 8 +- .../api/ysql/commands/ddl_alter_table.md | 9 + .../api/ysql/commands/ddl_create_database.md | 2 + .../api/ysql/commands/ddl_create_index.md | 2 + .../api/ysql/commands/ddl_create_schema.md | 1 + .../api/ysql/commands/ddl_create_table.md | 28 +- .../api/ysql/commands/ddl_create_table_as.md | 2 + .../api/ysql/commands/ddl_create_view.md | 4 +- .../api/ysql/commands/ddl_drop_database.md | 3 +- .../api/ysql/commands/ddl_drop_table.md | 2 +- .../latest/api/ysql/commands/ddl_truncate.md | 8 + .../latest/api/ysql/commands/dml_delete.md | 9 + .../latest/api/ysql/commands/dml_insert.md | 10 +- .../latest/api/ysql/commands/dml_select.md | 9 +- .../latest/api/ysql/commands/dml_update.md | 8 + .../api/ysql/commands/perf_deallocate.md | 2 + .../latest/api/ysql/commands/perf_execute.md | 2 +- .../latest/api/ysql/commands/perf_explain.md | 18 +- .../latest/api/ysql/commands/perf_prepare.md | 2 +- .../latest/api/ysql/commands/txn_abort.md | 2 + .../latest/api/ysql/commands/txn_begin.md | 3 +- .../latest/api/ysql/commands/txn_commit.md | 2 +- .../latest/api/ysql/commands/txn_end.md | 3 +- .../latest/api/ysql/commands/txn_lock.md | 8 +- .../latest/api/ysql/commands/txn_rollback.md | 4 +- .../latest/api/ysql/commands/txn_set.md | 2 +- .../api/ysql/commands/txn_set_constraints.md | 2 + .../latest/api/ysql/commands/txn_show.md | 2 +- .../latest/api/ysql/grammar_diagrams.md | 409 ++++++++++++------ 36 files changed, 395 insertions(+), 192 deletions(-) diff --git a/docs/content/latest/api/ysql/commands/cmd_copy.md b/docs/content/latest/api/ysql/commands/cmd_copy.md index 3facc7639b8c..4b5ac5bde6e4 100644 --- a/docs/content/latest/api/ysql/commands/cmd_copy.md +++ b/docs/content/latest/api/ysql/commands/cmd_copy.md @@ -20,6 +20,14 @@ showAsideToc: true ## Syntax ### Diagram +#### copy_from +COPYtable_name(,column_name)FROMfilenamePROGRAMcommandSTDINWITH(,option) + +#### copy_to +COPYtable_name(column_names)(query)TOfilenamePROGRAMcommandSTDOUTWITH(,option) + +#### copy_option +FORMATformat_nameOIDSbooleanFREEZEbooleanDELIMITERdelimiter_characterNULLnull_stringHEADERbooleanQUOTEquote_characterESCAPEescape_characterFORCE_QUOTE(column_names)FORCE_NOT_NULL(column_names)FORCE_NULL(column_names)ENCODINGencoding_name ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/cmd_reset.md b/docs/content/latest/api/ysql/commands/cmd_reset.md index 44e1d62ec641..63718efbf73e 100644 --- a/docs/content/latest/api/ysql/commands/cmd_reset.md +++ b/docs/content/latest/api/ysql/commands/cmd_reset.md @@ -19,7 +19,8 @@ showAsideToc: true ## Syntax -### Diagram +### Diagram +RESETnameALL ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/cmd_set.md b/docs/content/latest/api/ysql/commands/cmd_set.md index f5f561a87d09..8d98ac5fe74e 100644 --- a/docs/content/latest/api/ysql/commands/cmd_set.md +++ b/docs/content/latest/api/ysql/commands/cmd_set.md @@ -20,6 +20,7 @@ showAsideToc: true ## Syntax ### Diagram +SETSESSIONLOCALconfiguration_parameterTO=valueDEFAULTTIMEZONEtimezoneLOCALDEFAULT ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/cmd_show.md b/docs/content/latest/api/ysql/commands/cmd_show.md index 35c4cc73fc11..82d5f9329fbc 100644 --- a/docs/content/latest/api/ysql/commands/cmd_show.md +++ b/docs/content/latest/api/ysql/commands/cmd_show.md @@ -19,6 +19,8 @@ showAsideToc: true ### Diagram +SHOWnameALL + ### Grammar ``` show_stmt ::= SHOW { name | ALL } diff --git a/docs/content/latest/api/ysql/commands/dcl_create_user.md b/docs/content/latest/api/ysql/commands/dcl_create_user.md index a1f27580707a..1ffe26bbffde 100644 --- a/docs/content/latest/api/ysql/commands/dcl_create_user.md +++ b/docs/content/latest/api/ysql/commands/dcl_create_user.md @@ -19,9 +19,8 @@ YugaByte supports the `CREATE USER` and limited `GRANT`/`REVOKE` commands to cre ## Syntax ### Diagrams - #### create_user -CREATEUSERname +CREATEUSERname ### Grammar diff --git a/docs/content/latest/api/ysql/commands/dcl_grant.md b/docs/content/latest/api/ysql/commands/dcl_grant.md index 7dcf36357531..0a425782e2cc 100644 --- a/docs/content/latest/api/ysql/commands/dcl_grant.md +++ b/docs/content/latest/api/ysql/commands/dcl_grant.md @@ -22,7 +22,7 @@ showAsideToc: true #### grant -GRANTprivilegesONprivilege_targetTO,nameWITHGRANTOPTION +GRANTprivilegesONprivilege_targetTO,nameWITHGRANTOPTION ### Grammar diff --git a/docs/content/latest/api/ysql/commands/dcl_revoke.md b/docs/content/latest/api/ysql/commands/dcl_revoke.md index d69827e88198..ef2bcb69f8e7 100644 --- a/docs/content/latest/api/ysql/commands/dcl_revoke.md +++ b/docs/content/latest/api/ysql/commands/dcl_revoke.md @@ -21,7 +21,7 @@ Remove access privileges. ### Diagrams #### revoke -REVOKEprivilegesONprivilege_targetFROM,nameCASCADERESTRICT +REVOKEprivilegesONprivilege_targetFROM,nameCASCADERESTRICT ### Grammar diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_db.md b/docs/content/latest/api/ysql/commands/ddl_alter_db.md index 88864a18124f..f547bc30a6c8 100644 --- a/docs/content/latest/api/ysql/commands/ddl_alter_db.md +++ b/docs/content/latest/api/ysql/commands/ddl_alter_db.md @@ -18,7 +18,13 @@ ALTER DATABASE redefines the attributes of the specified database. ## Syntax -### Diagram +### Diagram + +#### alter_database +ALTERDATABASEnameWITHalter_database_optionRENAMETOnew_nameOWNERTOnew_ownerCURRENT_USERSESSION_USERSETTABLESPACEnew_tablespaceSETconfiguration_parameterTO=valueDEFAULTSETconfiguration_parameterFROMCURRENTRESETconfiguration_parameterRESETALL + +#### alter_database_option +ALLOW_CONNECTIONSallowconnCONNECTIONLIMITconnlimitIS_TEMPLATEistemplate ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_table.md b/docs/content/latest/api/ysql/commands/ddl_alter_table.md index 235bc2e80439..12465e826a8d 100644 --- a/docs/content/latest/api/ysql/commands/ddl_alter_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_alter_table.md @@ -20,6 +20,15 @@ showAsideToc: true ### Diagram +### alter_table +ALTERTABLEIFEXISTSONLYname*,alter_table_action] + +#### alter_table_action +ADDCOLUMNIFNOTEXISTScolumn_namedata_typeDROPCOLUMNIFEXISTScolumn_nameRESTRICTCASCADEADDtable_constraintDROPCONSTRAINTIFEXISTSconstraint_nameRESTRICTCASCADE + +#### table_constraint +CONSTRAINTconstraint_nameCHECK(expression)NOINHERITPRIMARYKEY(column_names)index_parameters + ### Grammar ``` alter_table ::= ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] alter_table_action [, ... ] diff --git a/docs/content/latest/api/ysql/commands/ddl_create_database.md b/docs/content/latest/api/ysql/commands/ddl_create_database.md index 521c8cd406c5..4a2d227a1cf4 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_database.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_database.md @@ -19,6 +19,8 @@ The `CREATE DATABASE` statement creates a `database` that functions as a groupin ### Diagram +CREATEDATABASEnameWITHOWNER=user_nameTEMPLATE=templateENCODING=encodingLC_COLLATE=lc_collateLC_CTYPE=lc_ctypeTABLESPACE=tablespace_nameALLOW_CONNECTIONS=allowconnCONNECTIONLIMIT=connlimitIS_TEMPLATE=istemplate + ### Grammar ``` create_database ::= diff --git a/docs/content/latest/api/ysql/commands/ddl_create_index.md b/docs/content/latest/api/ysql/commands/ddl_create_index.md index 6787e49774c4..6c1877f49aef 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_index.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_index.md @@ -19,6 +19,8 @@ showAsideToc: true ### Diagram +CREATEUNIQUEINDEXIFNOTEXISTSnameONONLYtable_name(,index_elem)INCLUDE(column_names)WHEREpredicate + ### Grammar ``` create_index ::= CREATE [ UNIQUE ] INDEX [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name diff --git a/docs/content/latest/api/ysql/commands/ddl_create_schema.md b/docs/content/latest/api/ysql/commands/ddl_create_schema.md index 8f3ad62bd6b4..55a6aa23044f 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_schema.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_schema.md @@ -19,6 +19,7 @@ showAsideToc: true ## Syntax ### Diagram +CREATESCHEMAIFNOTEXISTSschema_nameschema_element ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table.md b/docs/content/latest/api/ysql/commands/ddl_create_table.md index 43094c5dff21..4932778e87a3 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_table.md @@ -21,32 +21,16 @@ The `CREATE TABLE` statement creates a new table in a database. It defines the t ### Diagram #### create_table +CREATETABLEIFNOTEXISTStable_name(,table_elem) -CREATETABLEqualified_name(,table_element) +#### table_elem +column_namedata_typecolumn_constrainttable_constraint -#### table_element - -table_columntable_constraints - -#### table_column - -column_namecolumn_typecolumn_constraintcolumn_default_value +#### table_constraint +CONSTRAINTconstraint_nameCHECK(expression)NOINHERITPRIMARYKEY(column_names)index_parameters #### column_constraint - -PRIMARYKEYNOTNULLCHECK(expression) - -### column_default_value - -DEFAULTexpression - -#### table_constraints - -PRIMARYKEY(column_list) - -#### column_list - -,name +CONSTRAINTconstraint_nameNOTNULLNULLCHECK(expression)NOINHERITDEFAULTdefault_exprPRIMARYKEYindex_parameters ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table_as.md b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md index eb4621221a19..52ae06d234f5 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_table_as.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md @@ -21,6 +21,8 @@ showAsideToc: true ### Diagram +CREATETABLEIFNOTEXISTStable_name(column_names)ASqueryWITHNODATA + ### Grammar ``` create_table_as ::= CREATE TABLE [ IF NOT EXISTS ] table_name [ (column_name [, ...] ) ] diff --git a/docs/content/latest/api/ysql/commands/ddl_create_view.md b/docs/content/latest/api/ysql/commands/ddl_create_view.md index 567b490b1803..88a3e5617be3 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_view.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_view.md @@ -19,7 +19,9 @@ The `CREATE VIEW` statement creates a new view in a database. It defines the vie ### Diagram -CREATEORREPLACEVIEWqualified_name(column_list)ASselect +#### create_view + +CREATEORREPLACEVIEWqualified_name(column_list)ASselect ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_database.md b/docs/content/latest/api/ysql/commands/ddl_drop_database.md index d3e1aa8ada9f..277235dd9b74 100644 --- a/docs/content/latest/api/ysql/commands/ddl_drop_database.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_database.md @@ -18,8 +18,7 @@ The `DROP DATABASE` statement removes a database and all its database objects (s ## Syntax ### Diagram - -DROPDATABASEname +DROPDATABASEIFEXISTSdatabase_name ### Grammar diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_table.md b/docs/content/latest/api/ysql/commands/ddl_drop_table.md index 8aef0d091261..1b399507efa7 100644 --- a/docs/content/latest/api/ysql/commands/ddl_drop_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_table.md @@ -19,7 +19,7 @@ The `DROP TABLE` statement removes a table and all of its data from the database ### Diagram -DROPTABLEqualified_name +DROPTABLEIFEXISTStable_name ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/ddl_truncate.md b/docs/content/latest/api/ysql/commands/ddl_truncate.md index e474521d36ca..b4dcc38e0183 100644 --- a/docs/content/latest/api/ysql/commands/ddl_truncate.md +++ b/docs/content/latest/api/ysql/commands/ddl_truncate.md @@ -21,6 +21,14 @@ showAsideToc: true ### Diagram +#### Truncate + +TRUNCATETABLE,table_expr + +#### table_expr + +ONLYname* + ### Grammar ``` truncate_stmt ::= TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ] diff --git a/docs/content/latest/api/ysql/commands/dml_delete.md b/docs/content/latest/api/ysql/commands/dml_delete.md index d622c3f27ef6..11c8986d496f 100644 --- a/docs/content/latest/api/ysql/commands/dml_delete.md +++ b/docs/content/latest/api/ysql/commands/dml_delete.md @@ -21,6 +21,15 @@ DELETE removes rows that meet certain conditions, and when conditions are not pr ### Diagram +#### delete +WITHRECURSIVE,with_queryDELETEFROMONLYtable_name*ASaliasWHEREconditionWHERECURRENTOFcursor_namereturning_clause + +#### returning +RETURNING*,returning_expression + +#### returning_expression +output_expressionASoutput_name + ### Grammar ``` delete := [ WITH [ RECURSIVE ] with_query [, ...] ] diff --git a/docs/content/latest/api/ysql/commands/dml_insert.md b/docs/content/latest/api/ysql/commands/dml_insert.md index af4ce0ddd7ca..45907b3158f6 100644 --- a/docs/content/latest/api/ysql/commands/dml_insert.md +++ b/docs/content/latest/api/ysql/commands/dml_insert.md @@ -22,11 +22,15 @@ The `INSERT` statement adds a row to a specified table. #### insert -INSERTINTOqualified_nameASname(column_list)VALUES,values_list +WITHRECURSIVE,with_queryINSERTINTOtable_nameASalias(column_names)DEFAULTVALUESVALUES,column_valuessubqueryreturning_clause -#### values_list +#### column_values -(,expression) +(,column_value) + +#### column_value + +expressionDEFAULT ### Grammar diff --git a/docs/content/latest/api/ysql/commands/dml_select.md b/docs/content/latest/api/ysql/commands/dml_select.md index 4658398cfc0f..1c9a23d2a189 100644 --- a/docs/content/latest/api/ysql/commands/dml_select.md +++ b/docs/content/latest/api/ysql/commands/dml_select.md @@ -20,10 +20,13 @@ The `SELECT` statement retrieves (part of) rows of specified columns that meet a ### Diagram #### select -WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*expressionASname,nameFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS +WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*,select_expressionFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS -### order_expr -expressionASCDESCUSINGoperatorNULLSFIRSTLAST +#### select_expression +expressionASname + +#### order_expr +expressionASCDESCUSINGoperatorNULLSFIRSTLAST ### Grammar diff --git a/docs/content/latest/api/ysql/commands/dml_update.md b/docs/content/latest/api/ysql/commands/dml_update.md index 94c73a2e0091..59f9d0635d0c 100644 --- a/docs/content/latest/api/ysql/commands/dml_update.md +++ b/docs/content/latest/api/ysql/commands/dml_update.md @@ -21,6 +21,14 @@ UPDATE modifies the values of specified columns in all rows that meet certain co ### Diagram +#### update + +WITHRECURSIVE,with_queryUPDATEONLYtable_name*ASaliasSET,update_itemFROMfrom_listWHEREconditionWHERECURRENTOFcursor_namereturning_clause + +#### update_item + +column_name=column_value(column_names)=ROW(column_values)(column_names)=(query) + ### Grammar ``` update ::= [ WITH [ RECURSIVE ] with_query [, ...] ] diff --git a/docs/content/latest/api/ysql/commands/perf_deallocate.md b/docs/content/latest/api/ysql/commands/perf_deallocate.md index a9e4b13ad70d..2658dfda1371 100644 --- a/docs/content/latest/api/ysql/commands/perf_deallocate.md +++ b/docs/content/latest/api/ysql/commands/perf_deallocate.md @@ -21,6 +21,8 @@ showAsideToc: true ### Diagram +DEALLOCATEPREPAREnameALL + ### Grammar ``` deallocate_stmt ::= DEALLOCATE [ PREPARE ] { name | ALL } diff --git a/docs/content/latest/api/ysql/commands/perf_execute.md b/docs/content/latest/api/ysql/commands/perf_execute.md index a31d37fa6ec6..f2b7764a5c81 100644 --- a/docs/content/latest/api/ysql/commands/perf_execute.md +++ b/docs/content/latest/api/ysql/commands/perf_execute.md @@ -21,7 +21,7 @@ showAsideToc: true ### Diagrams #### execute -EXECUTEname(,expression) +EXECUTEname(,expression) ### Grammar diff --git a/docs/content/latest/api/ysql/commands/perf_explain.md b/docs/content/latest/api/ysql/commands/perf_explain.md index 6a7ba4022f55..8f816876d0ae 100644 --- a/docs/content/latest/api/ysql/commands/perf_explain.md +++ b/docs/content/latest/api/ysql/commands/perf_explain.md @@ -20,23 +20,23 @@ The `EXPLAIN` command shows the execution plan for an statement. If the `ANALYZE #### explain -EXPLAINANALYZEVERBOSE(,option)statement +EXPLAINANALYZEVERBOSE(,option)]statement #### option -ANALYZEbooleanVERBOSEbooleanCOSTSbooleanBUFFERSbooleanTIMINGbooleanSUMMARYbooleanFORMATTEXTXMLJSONYAML +ANALYZEbooleanVERBOSEbooleanCOSTSbooleanBUFFERSbooleanTIMINGbooleanSUMMARYbooleanFORMATTEXTXMLJSONYAML ### Grammar ``` explain ::= EXPLAIN [ ANALYZE] [ VERBOSE ] | ( option [, ...] ) ] statement -option ::= ANALYZE [ boolean ] | - VERBOSE [ boolean ] | - COSTS [ boolean ] | - BUFFERS [ boolean ] | - TIMING [ boolean ] | - SUMMARY [ boolean ] | - FORMAT { TEXT | XML | JSON | YAML } +option ::= ANALYZE [ boolean ] + | VERBOSE [ boolean ] + | COSTS [ boolean ] + | BUFFERS [ boolean ] + | TIMING [ boolean ] + | SUMMARY [ boolean ] + | FORMAT { TEXT | XML | JSON | YAML } boolean = TRUE | FALSE; ``` diff --git a/docs/content/latest/api/ysql/commands/perf_prepare.md b/docs/content/latest/api/ysql/commands/perf_prepare.md index 28a342720a66..93a7ecad451d 100644 --- a/docs/content/latest/api/ysql/commands/perf_prepare.md +++ b/docs/content/latest/api/ysql/commands/perf_prepare.md @@ -20,7 +20,7 @@ The `PREPARE` command creates a prepared statement by parsing, analyzing and rew ### Diagrams -PREPAREname(,data_type)ASstatement +PREPAREname(,data_type)ASstatement ### Grammar diff --git a/docs/content/latest/api/ysql/commands/txn_abort.md b/docs/content/latest/api/ysql/commands/txn_abort.md index 870c7915b03e..40a17f2c2b0f 100644 --- a/docs/content/latest/api/ysql/commands/txn_abort.md +++ b/docs/content/latest/api/ysql/commands/txn_abort.md @@ -20,6 +20,8 @@ showAsideToc: true ### Diagrams +ABORTTRANSACTIONWORK + ### Syntax ``` diff --git a/docs/content/latest/api/ysql/commands/txn_begin.md b/docs/content/latest/api/ysql/commands/txn_begin.md index bf9b2f770291..e463cd2f0861 100644 --- a/docs/content/latest/api/ysql/commands/txn_begin.md +++ b/docs/content/latest/api/ysql/commands/txn_begin.md @@ -19,8 +19,7 @@ showAsideToc: true ## Grammar ### Diagrams - -ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK +BEGINTRANSACTIONWORK ### Syntax diff --git a/docs/content/latest/api/ysql/commands/txn_commit.md b/docs/content/latest/api/ysql/commands/txn_commit.md index 615295363e33..9584d4b87ef1 100644 --- a/docs/content/latest/api/ysql/commands/txn_commit.md +++ b/docs/content/latest/api/ysql/commands/txn_commit.md @@ -20,7 +20,7 @@ showAsideToc: true ### Diagrams -ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK +COMMITTRANSACTIONWORK ### Syntax diff --git a/docs/content/latest/api/ysql/commands/txn_end.md b/docs/content/latest/api/ysql/commands/txn_end.md index 429733598a76..92c460796ab0 100644 --- a/docs/content/latest/api/ysql/commands/txn_end.md +++ b/docs/content/latest/api/ysql/commands/txn_end.md @@ -19,8 +19,7 @@ showAsideToc: true ## Grammar ### Diagrams - -ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK +ENDTRANSACTIONWORK ### Syntax diff --git a/docs/content/latest/api/ysql/commands/txn_lock.md b/docs/content/latest/api/ysql/commands/txn_lock.md index e8fdcbc768d8..e3828e197e49 100644 --- a/docs/content/latest/api/ysql/commands/txn_lock.md +++ b/docs/content/latest/api/ysql/commands/txn_lock.md @@ -21,9 +21,15 @@ showAsideToc: true ### Diagram +LOCKTABLE,table_exprINlockmodeMODENOWAIT + +`lockmode` : + +ACCESSSHAREROWSHAREROWEXCLUSIVESHAREUPDATEEXCLUSIVESHARESHAREROWEXCLUSIVEEXCLUSIVEACCESSEXCLUSIVE + ### Grammar ``` -lock_stmt ::= LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ] +lock_table ::= LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ] lockmode ::= { ACCESS SHARE | ROW SHARE | diff --git a/docs/content/latest/api/ysql/commands/txn_rollback.md b/docs/content/latest/api/ysql/commands/txn_rollback.md index 958cf4f6e966..a10383f8a874 100644 --- a/docs/content/latest/api/ysql/commands/txn_rollback.md +++ b/docs/content/latest/api/ysql/commands/txn_rollback.md @@ -18,9 +18,9 @@ showAsideToc: true ## Grammar -### Diagrams +### Diagram -ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK +ROLLBACKTRANSACTIONWORK ### Syntax diff --git a/docs/content/latest/api/ysql/commands/txn_set.md b/docs/content/latest/api/ysql/commands/txn_set.md index 45844556fda5..08c018861bb5 100644 --- a/docs/content/latest/api/ysql/commands/txn_set.md +++ b/docs/content/latest/api/ysql/commands/txn_set.md @@ -20,7 +20,7 @@ showAsideToc: true ### Diagrams -SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTEDREADCOMMITTEDREPEATABLEREAD +SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTEDREADCOMMITTEDREPEATABLEREAD ### Syntax diff --git a/docs/content/latest/api/ysql/commands/txn_set_constraints.md b/docs/content/latest/api/ysql/commands/txn_set_constraints.md index 0bb78ce6319c..86adff7cd55a 100644 --- a/docs/content/latest/api/ysql/commands/txn_set_constraints.md +++ b/docs/content/latest/api/ysql/commands/txn_set_constraints.md @@ -21,6 +21,8 @@ showAsideToc: true ### Diagram +SETCONSTRAINTSALL,nameDEFERREDIMMEDIATE + ### Grammar ``` set_constraints ::= SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE } diff --git a/docs/content/latest/api/ysql/commands/txn_show.md b/docs/content/latest/api/ysql/commands/txn_show.md index 5c02da1b21f2..dd27970799b9 100644 --- a/docs/content/latest/api/ysql/commands/txn_show.md +++ b/docs/content/latest/api/ysql/commands/txn_show.md @@ -21,7 +21,7 @@ Additionally the `SET` and `SHOW` commands can be used to set and, respectively, ### Diagrams -SHOWTRANSACTIONISOLATIONLEVEL +SHOWTRANSACTIONISOLATIONLEVEL ### Syntax diff --git a/docs/content/latest/api/ysql/grammar_diagrams.md b/docs/content/latest/api/ysql/grammar_diagrams.md index e30acfd19511..8126a8a1d5fe 100644 --- a/docs/content/latest/api/ysql/grammar_diagrams.md +++ b/docs/content/latest/api/ysql/grammar_diagrams.md @@ -1,275 +1,418 @@ --- title: Grammar Diagrams -description: Grammar Diagrams summary: Diagrams of the grammar rules. --- +### abort_transaction +``` +abort_transaction = 'ABORT' [ 'TRANSACTION' | 'WORK' ]; +``` +ABORTTRANSACTIONWORK + +### alter_database +``` +alter_database = 'ALTER' 'DATABASE' name [ [ 'WITH' ] alter_database_option { alter_database_option } | 'RENAME' 'TO' new_name | 'OWNER' 'TO' ( new_owner | 'CURRENT_USER' | 'SESSION_USER' ) | 'SET' 'TABLESPACE' new_tablespace | 'SET' configuration_parameter ( 'TO' | '=' ) ( value | 'DEFAULT' ) | 'SET' configuration_parameter 'FROM' 'CURRENT' | 'RESET' configuration_parameter | 'RESET' 'ALL' ]; +``` +ALTERDATABASEnameWITHalter_database_optionRENAMETOnew_nameOWNERTOnew_ownerCURRENT_USERSESSION_USERSETTABLESPACEnew_tablespaceSETconfiguration_parameterTO=valueDEFAULTSETconfiguration_parameterFROMCURRENTRESETconfiguration_parameterRESETALL + +### alter_database_option +``` +alter_database_option = 'ALLOW_CONNECTIONS' allowconn | 'CONNECTION' 'LIMIT' connlimit | 'IS_TEMPLATE' istemplate; +``` +ALLOW_CONNECTIONSallowconnCONNECTIONLIMITconnlimitIS_TEMPLATEistemplate + +### alter_table +``` +alter_table = 'ALTER' 'TABLE' [ 'IF' 'EXISTS' ] [ 'ONLY' ] name [ '*' ] alter_table_action { ',' alter_table_action } ]; +``` +ALTERTABLEIFEXISTSONLYname*,alter_table_action] -## DDL Statements +### alter_table_action +``` +alter_table_action = 'ADD' [ 'COLUMN' ] [ 'IF' 'NOT' 'EXISTS' ] column_name data_type | 'DROP' [ 'COLUMN' ] [ 'IF' 'EXISTS' ] column_name [ 'RESTRICT' | 'CASCADE' ] | 'ADD' table_constraint | 'DROP' 'CONSTRAINT' [ 'IF' 'EXISTS' ] constraint_name [ 'RESTRICT' | 'CASCADE' ]; +``` +ADDCOLUMNIFNOTEXISTScolumn_namedata_typeDROPCOLUMNIFEXISTScolumn_nameRESTRICTCASCADEADDtable_constraintDROPCONSTRAINTIFEXISTSconstraint_nameRESTRICTCASCADE + +### table_constraint +``` +table_constraint = [ 'CONSTRAINT' constraint_name ] ( 'CHECK' '(' expression ')' [ 'NO' 'INHERIT' ] | 'PRIMARY' 'KEY' '(' column_names ')' index_parameters ); +``` +CONSTRAINTconstraint_nameCHECK(expression)NOINHERITPRIMARYKEY(column_names)index_parameters + +### begin_transaction +``` +begin_transaction = 'BEGIN' [ 'TRANSACTION' | 'WORK' ]; +``` +BEGINTRANSACTIONWORK + +### commit_transaction +``` +commit_transaction = 'COMMIT' [ 'TRANSACTION' | 'WORK' ]; +``` +COMMITTRANSACTIONWORK + +### copy_from +``` +copy_from = 'COPY' table_name [ '(' column_name { ',' column_name } ')' ] \ 'FROM' ( 'filename' | 'PROGRAM' 'command' | 'STDIN' ) [ [ 'WITH' ] '(' option { ',' option } ')' ]; +``` +COPYtable_name(,column_name)FROMfilenamePROGRAMcommandSTDINWITH(,option) + +### copy_to +``` +copy_to = 'COPY' ( table_name [ '(' column_names ')' ] | '(' query ')' ) \ 'TO' ( 'filename' | 'PROGRAM' 'command' | 'STDOUT' ) [ [ 'WITH' ] '(' option { ',' option } ')' ]; +``` +COPYtable_name(column_names)(query)TOfilenamePROGRAMcommandSTDOUTWITH(,option) + +### copy_option +``` +copy_option = 'FORMAT' format_name | 'OIDS' [ boolean ] | 'FREEZE' [ boolean ] | 'DELIMITER' 'delimiter_character' | 'NULL' 'null_string' | 'HEADER' [ boolean ] | 'QUOTE' 'quote_character' | 'ESCAPE' 'escape_character' | 'FORCE_QUOTE' ( '(' column_names ')' { ( ) } ) | 'FORCE_NOT_NULL' '(' column_names ')' | 'FORCE_NULL' '(' column_names ')' | 'ENCODING' 'encoding_name'; +``` +FORMATformat_nameOIDSbooleanFREEZEbooleanDELIMITERdelimiter_characterNULLnull_stringHEADERbooleanQUOTEquote_characterESCAPEescape_characterFORCE_QUOTE(column_names)FORCE_NOT_NULL(column_names)FORCE_NULL(column_names)ENCODINGencoding_name ### create_database ``` -create_database = 'CREATE' 'DATABASE' name; +create_database = 'CREATE' 'DATABASE' name [ [ 'WITH' ] [ 'OWNER' [ '=' ] user_name ] [ 'TEMPLATE' [ '=' ] template ] [ 'ENCODING' [ '=' ] encoding ] [ 'LC_COLLATE' [ '=' ] lc_collate ] [ 'LC_CTYPE' [ '=' ] lc_ctype ] [ 'TABLESPACE' [ '=' ] tablespace_name ] [ 'ALLOW_CONNECTIONS' [ '=' ] allowconn ] [ 'CONNECTION' 'LIMIT' [ '=' ] connlimit ] [ 'IS_TEMPLATE' [ '=' ] istemplate ] ]; ``` -CREATEDATABASEname +CREATEDATABASEnameWITHOWNER=user_nameTEMPLATE=templateENCODING=encodingLC_COLLATE=lc_collateLC_CTYPE=lc_ctypeTABLESPACE=tablespace_nameALLOW_CONNECTIONS=allowconnCONNECTIONLIMIT=connlimitIS_TEMPLATE=istemplate -### drop_database +### create_index ``` -drop_database = 'DROP' 'DATABASE' name; +create_index = 'CREATE' [ 'UNIQUE' ] 'INDEX' [ [ 'IF' 'NOT' 'EXISTS' ] name ] 'ON' [ 'ONLY' ] table_name '(' index_elem { ',' index_elem } ')' [ 'INCLUDE' '(' column_names ')' ] [ 'WHERE' predicate ]; ``` -DROPDATABASEname +CREATEUNIQUEINDEXIFNOTEXISTSnameONONLYtable_name(,index_elem)INCLUDE(column_names)WHEREpredicate -### create_table +### index_elem ``` -create_table = 'CREATE' 'TABLE' qualified_name '(' table_element { ',' table_element } ')'; +index_elem = ( column_name | '(' expression ')' ) [ opclass ] [ 'ASC' | 'DESC' ]; ``` -CREATETABLEqualified_name(,table_element) +column_name(expression)opclassASCDESC -### table_element +### create_schema ``` -table_element = table_column | table_constraints; +create_schema = 'CREATE' 'SCHEMA' [ 'IF' 'NOT' 'EXISTS' ] schema_name [ schema_element { schema_element } ]; ``` -table_columntable_constraints +CREATESCHEMAIFNOTEXISTSschema_nameschema_element -### table_column +### create_sequence ``` -table_column = column_name column_type { column_constraint | column_default_value }; +create_sequence = 'CREATE' 'SEQUENCE' [ 'IF' 'NOT' 'EXISTS' ] sequence_name sequence_options; ``` -column_namecolumn_typecolumn_constraintcolumn_default_value +CREATESEQUENCEIFNOTEXISTSsequence_namesequence_options -### column_constraint +### sequence_name ``` -column_constraint = 'PRIMARY' 'KEY' | 'NOT' 'NULL' | 'CHECK' '(' expression ')'; +sequence_name = ''; ``` -PRIMARYKEYNOTNULLCHECK(expression) +<Text Literal> -### column_default_value +### sequence_options ``` -column_default_value = 'DEFAULT' expression; +sequence_options = [ 'INCREMENT' [ 'BY' ] increment ] [ 'MINVALUE' minvalue | 'NO' 'MINVALUE' ] [ 'MAXVALUE' maxvalue | 'NO' 'MAXVALUE' ] [ 'START' [ 'WITH' ] start ] [ 'CACHE' cache ]; ``` -DEFAULTexpression +INCREMENTBYincrementMINVALUEminvalueNOMINVALUEMAXVALUEmaxvalueNOMAXVALUESTARTWITHstartCACHEcache -### table_constraints +### increment ``` -table_constraints = 'PRIMARY' 'KEY' '(' column_list ')'; +increment = ''; ``` -PRIMARYKEY(column_list) +<Integer Literal> -### column_list +### minvalue ``` -column_list = name { ',' name }; +minvalue = ''; ``` -,name +<Integer Literal> -### drop_table +### maxvalue +``` +maxvalue = ''; ``` -drop_table = 'DROP' 'TABLE' qualified_name; +<Integer Literal> + +### start +``` +start = ''; ``` -DROPTABLEqualified_name +<Integer Literal> -### create_view +### cache ``` -create_view = 'CREATE' [ 'OR' 'REPLACE' ] 'VIEW' qualified_name [ '(' column_list ')' ] 'AS' select; +cache = ''; +``` +<Integer Literal> + +### create_table +``` +create_table = 'CREATE' 'TABLE' [ 'IF' 'NOT' 'EXISTS' ] table_name '(' [ table_elem { ',' table_elem } ] ')'; +``` +CREATETABLEIFNOTEXISTStable_name(,table_elem) + +### table_elem +``` +table_elem = column_name data_type [ column_constraint { column_constraint } ] | table_constraint; +``` +column_namedata_typecolumn_constrainttable_constraint + +### column_constraint +``` +column_constraint = [ 'CONSTRAINT' constraint_name ] ( 'NOT' 'NULL' | 'NULL' | 'CHECK' '(' expression ')' [ 'NO' 'INHERIT' ] | 'DEFAULT' default_expr | 'PRIMARY' 'KEY' index_parameters ); +``` +CONSTRAINTconstraint_nameNOTNULLNULLCHECK(expression)NOINHERITDEFAULTdefault_exprPRIMARYKEYindex_parameters + +### table_constraint +``` +table_constraint = [ 'CONSTRAINT' constraint_name ] ( 'CHECK' '(' expression ')' [ 'NO' 'INHERIT' ] | 'PRIMARY' 'KEY' '(' column_names ')' index_parameters ); +``` +CONSTRAINTconstraint_nameCHECK(expression)NOINHERITPRIMARYKEY(column_names)index_parameters + +### create_table_as +``` +create_table_as = 'CREATE' 'TABLE' [ 'IF' 'NOT' 'EXISTS' ] table_name [ '(' column_names ')' ] 'AS' query [ 'WITH' [ 'NO' ] 'DATA' ]; ``` -CREATEORREPLACEVIEWqualified_name(column_list)ASselect +CREATETABLEIFNOTEXISTStable_name(column_names)ASqueryWITHNODATA ### create_user ``` create_user = 'CREATE' 'USER' name; ``` -CREATEUSERname +CREATEUSERname -### grant +### create_view ``` -grant = 'GRANT' privileges 'ON' privilege_target 'TO' name { ',' name } [ 'WITH' 'GRANT' 'OPTION' ]; +create_view = 'CREATE' [ 'OR' 'REPLACE' ] 'VIEW' qualified_name [ '(' column_list ')' ] 'AS' select; ``` -GRANTprivilegesONprivilege_targetTO,nameWITHGRANTOPTION +CREATEORREPLACEVIEWqualified_name(column_list)ASselect -### revoke +### deallocate ``` -revoke = 'REVOKE' privileges 'ON' privilege_target 'FROM' name { ',' name } [ 'CASCADE' | 'RESTRICT' ]; +deallocate = 'DEALLOCATE' [ 'PREPARE' ] ( name | 'ALL' ); ``` -REVOKEprivilegesONprivilege_targetFROM,nameCASCADERESTRICT +DEALLOCATEPREPAREnameALL -## DML Statements +### delete +``` +delete = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] 'DELETE' 'FROM' [ 'ONLY' ] table_name [ '*' ] [ [ 'AS' ] alias ] [ 'WHERE' condition | 'WHERE' 'CURRENT' 'OF' cursor_name ] [ returning_clause ]; +``` +WITHRECURSIVE,with_queryDELETEFROMONLYtable_name*ASaliasWHEREconditionWHERECURRENTOFcursor_namereturning_clause -### insert +### returning ``` -insert = 'INSERT' 'INTO' qualified_name [ 'AS' name ] '(' column_list ')' 'VALUES' values_list { ',' values_list }; +returning = 'RETURNING' ( '*' | returning_expression { ',' returning_expression } ); ``` -INSERTINTOqualified_nameASname(column_list)VALUES,values_list +RETURNING*,returning_expression -### values_list +### returning_expression ``` -values_list = '(' expression { ',' expression } ')'; +returning_expression = output_expression [ [ 'AS' ] output_name ]; ``` -(,expression) +output_expressionASoutput_name -### select +### drop_database ``` -select = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] \ 'SELECT' [ 'ALL' | 'DISTINCT' [ ON '(' expression { ',' expression } ')' ] ] \ [ '*' | expression [ [ 'AS' ] name ] { ',' name } ] \ [ 'FROM' from_item { ',' from_item } ] \ [ 'WHERE' condition ] \ [ 'GROUP' 'BY' grouping_element { ',' grouping_element } ] \ [ 'HAVING' condition { ',' condition } ] \ [ ( 'UNION' | 'INTERSECT' | 'EXCEPT' ) [ 'ALL' | 'DISTINCT' ] select ] \ [ 'ORDER' 'BY' order_expr { ',' order_expr } ] \ [ 'LIMIT' [ integer | 'ALL' ] ] \ [ 'OFFSET' integer [ 'ROW' | 'ROWS' ] ]; +drop_database = 'DROP' 'DATABASE' [ 'IF' 'EXISTS' ] database_name; ``` -WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*expressionASname,nameFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS +DROPDATABASEIFEXISTSdatabase_name -### order_expr +### drop_table ``` -order_expr = expression [ 'ASC' | 'DESC' | 'USING' operator ] [ 'NULLS' ( 'FIRST' | 'LAST' ) ]; +drop_table = 'DROP' 'TABLE' [ 'IF' 'EXISTS' ] table_name; ``` -expressionASCDESCUSINGoperatorNULLSFIRSTLAST +DROPTABLEIFEXISTStable_name -### grouping_element +### end_transaction ``` -grouping_element = 'grouping_element'; +end_transaction = 'END' [ 'TRANSACTION' | 'WORK' ]; ``` -grouping_element +ENDTRANSACTIONWORK -## Transactions +### execute_statement +``` +execute_statement = 'EXECUTE' name [ '(' expression { ',' expression } ')' ]; +``` +EXECUTEname(,expression) -### transaction +### explain ``` -transaction = ( 'ABORT' | 'ROLLBACK' | 'BEGIN' | 'END' | 'COMMIT' ) [ 'TRANSACTION' | 'WORK' ]; +explain = 'EXPLAIN' [ 'ANALYZE' ] [ 'VERBOSE' ] | '(' option { ',' option } ')' ] statement; ``` -ABORTROLLBACKBEGINENDCOMMITTRANSACTIONWORK +EXPLAINANALYZEVERBOSE(,option)]statement -### set +### option ``` -set = 'SET' 'TRANSACTION' 'ISOLATION' 'LEVEL' ( 'READ' 'UNCOMMITTED' | 'READ' 'COMMITTED' | 'REPEATABLE' 'READ' ); +option = 'ANALYZE' [ boolean ] | 'VERBOSE' [ boolean ] | 'COSTS' [ boolean ] | 'BUFFERS' [ boolean ] | 'TIMING' [ boolean ] | 'SUMMARY' [ boolean ] | 'FORMAT' ( 'TEXT' | 'XML' | 'JSON' | 'YAML' ); ``` -SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTEDREADCOMMITTEDREPEATABLEREAD +ANALYZEbooleanVERBOSEbooleanCOSTSbooleanBUFFERSbooleanTIMINGbooleanSUMMARYbooleanFORMATTEXTXMLJSONYAML -### show +### grant ``` -show = 'SHOW' 'TRANSACTION' 'ISOLATION' 'LEVEL'; +grant = 'GRANT' privileges 'ON' privilege_target 'TO' name { ',' name } [ 'WITH' 'GRANT' 'OPTION' ]; ``` -SHOWTRANSACTIONISOLATIONLEVEL +GRANTprivilegesONprivilege_targetTO,nameWITHGRANTOPTION -## Prepared Statements +### insert +``` +insert = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] 'INSERT' 'INTO' table_name [ 'AS' alias ] [ '(' column_names ')' ] ( 'DEFAULT' 'VALUES' | 'VALUES' column_values { ',' column_values } | subquery ) [ returning_clause ]; +``` +WITHRECURSIVE,with_queryINSERTINTOtable_nameASalias(column_names)DEFAULTVALUESVALUES,column_valuessubqueryreturning_clause -### prepare +### column_values ``` -prepare = 'PREPARE' name [ '(' data_type { ',' data_type } ')' ] 'AS' statement; +column_values = '(' column_value { ',' column_value } ')'; ``` -PREPAREname(,data_type)ASstatement +(,column_value) -### execute +### column_value ``` -execute = 'EXECUTE' name [ '(' expression { ',' expression } ')' ]; +column_value = expression | 'DEFAULT'; ``` -EXECUTEname(,expression) +expressionDEFAULT -## Explain Statement +### lock_table +``` +lock_table = 'LOCK' [ 'TABLE' ] ( table_expr { ',' table_expr } ) [ 'IN' lockmode 'MODE' ] [ 'NOWAIT' ]; +``` +LOCKTABLE,table_exprINlockmodeMODENOWAIT -### explain +### lockmode ``` -explain = 'EXPLAIN' ( [ 'ANALYZE' ] [ 'VERBOSE' ] | '(' option { ',' option } ')' ) statement; +lockmode = 'ACCESS' 'SHARE' | 'ROW' 'SHARE' | 'ROW' 'EXCLUSIVE' | 'SHARE' 'UPDATE' 'EXCLUSIVE' | 'SHARE' | 'SHARE' 'ROW' 'EXCLUSIVE' | 'EXCLUSIVE' | 'ACCESS' 'EXCLUSIVE'; ``` -EXPLAINANALYZEVERBOSE(,option)statement +ACCESSSHAREROWSHAREROWEXCLUSIVESHAREUPDATEEXCLUSIVESHARESHAREROWEXCLUSIVEEXCLUSIVEACCESSEXCLUSIVE -### option +### prepare_statement ``` -option = 'ANALYZE' [ boolean ] | 'VERBOSE' [ boolean ] | 'COSTS' [ boolean ] | 'BUFFERS' [ boolean ] | 'TIMING' [ boolean ] | 'SUMMARY' [ boolean ] | 'FORMAT' { 'TEXT' | 'XML' | 'JSON' | 'YAML' }; +prepare_statement = 'PREPARE' name [ '(' data_type { ',' data_type } ')' ] 'AS' statement; ``` -ANALYZEbooleanVERBOSEbooleanCOSTSbooleanBUFFERSbooleanTIMINGbooleanSUMMARYbooleanFORMATTEXTXMLJSONYAML +PREPAREname(,data_type)ASstatement -## Literals +### reset_stmt +``` +reset_stmt = 'RESET' ( name | 'ALL' ); +``` +RESETnameALL -### boolean +### revoke ``` -boolean = 'TRUE' | 'FALSE'; +revoke = 'REVOKE' privileges 'ON' privilege_target 'FROM' name { ',' name } [ 'CASCADE' | 'RESTRICT' ]; ``` -TRUEFALSE +REVOKEprivilegesONprivilege_targetFROM,nameCASCADERESTRICT -### name +### rollback_transaction ``` -name = ''; +rollback_transaction = 'ROLLBACK' [ 'TRANSACTION' | 'WORK' ]; ``` -<Text Literal> +ROLLBACKTRANSACTIONWORK -### qualified_name +### select ``` -qualified_name = '' { '.' '' }; +select = [ 'WITH' [ 'RECURSIVE' ] ( with_query { ',' with_query } ) ] 'SELECT' [ 'ALL' | 'DISTINCT' [ 'ON' ( '(' expression { ',' expression } ')' ) ] ] [ '*' | select_expression { ',' select_expression } ] [ 'FROM' ( from_item { ',' from_item } ) ] [ 'WHERE' condition ] [ 'GROUP' 'BY' ( grouping_element { ',' grouping_element } ) ] [ 'HAVING' ( condition { ',' condition } ) ] [ ( 'UNION' | 'INTERSECT' | 'EXCEPT' ) [ 'ALL' | 'DISTINCT' ] select ] [ 'ORDER' 'BY' ( order_expr { ',' order_expr } ) ] [ 'LIMIT' [ integer | 'ALL' ] ] [ 'OFFSET' integer [ 'ROW' | 'ROWS' ] ]; ``` -.<Text Literal> -### expression + +### select_expression ``` -expression = '<expression +expressionASname -### condition +### order_expr ``` -condition = ''; +order_expr = expression [ 'ASC' | 'DESC' | 'USING' operator ] [ 'NULLS' ( 'FIRST' | 'LAST' ) ]; ``` -<condition> +expressionASCDESCUSINGoperatorNULLSFIRSTLAST -### create_sequence +### set ``` -create_sequence = 'CREATE' 'SEQUENCE' [ 'IF' 'NOT' 'EXISTS' ] sequence_name create_sequence_options; +set = 'SET' [ 'SESSION' | 'LOCAL' ] ( configuration_parameter ( 'TO' | '=' ) ( value | 'DEFAULT' ) | 'TIME' 'ZONE' ( timezone | 'LOCAL' | 'DEFAULT' ) ); ``` -CREATESEQUENCEIFNOTEXISTSsequence_namecreate_sequence_options +SETSESSIONLOCALconfiguration_parameterTO=valueDEFAULTTIMEZONEtimezoneLOCALDEFAULT -### drop_sequence +### set_constraints ``` -drop_sequence = 'DROP' 'SEQUENCE' [ 'IF' 'EXISTS' ] sequence_name [ 'CASCADE' | 'RESTRICT' ]; +set_constraints = 'SET' 'CONSTRAINTS' ( 'ALL' | name { ',' name } ) ( 'DEFERRED' | 'IMMEDIATE' ); ``` -DROPSEQUENCEIFEXISTSsequence_nameCASCADERESTRICT +SETCONSTRAINTSALL,nameDEFERREDIMMEDIATE -### sequence_name +### set_transaction ``` -sequence_name = ''; +set_transaction = 'SET' 'TRANSACTION' 'ISOLATION' 'LEVEL' ( 'READ' 'UNCOMMITTED' | 'READ' 'COMMITTED' | 'REPEATABLE' 'READ' ); ``` -<Text Literal> +SETTRANSACTIONISOLATIONLEVELREADUNCOMMITTEDREADCOMMITTEDREPEATABLEREAD -### create_sequence_options +### show_stmt ``` -create_sequence_options = [ 'INCREMENT' [ 'BY' ] increment ] [ 'MINVALUE' minvalue | 'NO' 'MINVALUE' ] [ 'MAXVALUE' maxvalue | 'NO' 'MAXVALUE' ] [ 'START' [ 'WITH' ] start ] [ 'CACHE' cache ]; +show_stmt = 'SHOW' ( name | 'ALL' ); ``` -INCREMENTBYincrementMINVALUEminvalueNOMINVALUEMAXVALUEmaxvalueNOMAXVALUESTARTWITHstartCACHEcache +SHOWnameALL -### increment +### show_transaction ``` -increment = ''; +show_transaction = 'SHOW' 'TRANSACTION' 'ISOLATION' 'LEVEL'; ``` -<Integer Literal> +SHOWTRANSACTIONISOLATIONLEVEL -### minvalue +### truncate ``` -minvalue = ''; +truncate = 'TRUNCATE' [ 'TABLE' ] ( table_expr { ',' table_expr } ); ``` -<Integer Literal> +TRUNCATETABLE,table_expr -### maxvalue +### table_expr ``` -maxvalue = ''; +table_expr = [ 'ONLY' ] name [ '*' ]; ``` -<Integer Literal> +ONLYname* -### start +### update ``` -start = ''; +update = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] 'UPDATE' [ 'ONLY' ] table_name [ '*' ] [ [ 'AS' ] alias ] 'SET' update_item { ',' update_item } [ 'FROM' from_list ] [ 'WHERE' condition | 'WHERE' 'CURRENT' 'OF' cursor_name ] [ returning_clause ]; ``` -<Integer Literal> +WITHRECURSIVE,with_queryUPDATEONLYtable_name*ASaliasSET,update_itemFROMfrom_listWHEREconditionWHERECURRENTOFcursor_namereturning_clause -### cache +### update_item ``` -cache = ''; +update_item = column_name '=' column_value | '(' column_names ')' '=' [ 'ROW' ] '(' column_values ')' | '(' column_names ')' '=' '(' query ')'; ``` -<Integer Literal> +column_name=column_value(column_names)=ROW(column_values)(column_names)=(query) -### nextval +### where_expression ``` -nextval = 'SELECT' 'nextval(' sequence_name ')'; +where_expression = boolean_expression; ``` -SELECTnextval(sequence_name) +boolean_expression -### currval +### database_name ``` -currval = 'SELECT' 'currval(' sequence_name ')'; +database_name = ''; ``` -SELECTcurrval(sequence_name) +<Text Literal> -### lastval +### table_name +``` +table_name = [ database_name '.' ] ''; ``` -lastval = 'SELECT' 'lastval()'; +database_name.<Text Literal> + +### column_name ``` -SELECTlastval() +column_name = ''; +``` +<Text Literal> + +### column_names +``` +column_names = column_name { ',' column_name }; +``` +,column_name + +### expression +``` +expression = ''; +``` +<expression> + +### boolean +``` +boolean = 'TRUE' | 'FALSE'; +``` +TRUEFALSE + From ee1f37b9cc30d4dc5cb3df05e52d10ba71ca5a6c Mon Sep 17 00:00:00 2001 From: Neil Le Date: Fri, 8 Mar 2019 12:34:11 -0800 Subject: [PATCH 13/13] Fixed diagrams --- .../latest/api/ysql/commands/_index.md | 25 +++---- .../latest/api/ysql/commands/cmd_copy.md | 4 +- .../latest/api/ysql/commands/cmd_reset.md | 2 +- .../api/ysql/commands/dcl_create_user.md | 2 +- .../latest/api/ysql/commands/dcl_revoke.md | 2 - .../latest/api/ysql/commands/ddl_alter_db.md | 2 +- .../api/ysql/commands/ddl_alter_table.md | 5 +- .../api/ysql/commands/ddl_create_database.md | 14 ++-- .../api/ysql/commands/ddl_create_index.md | 15 ++-- .../api/ysql/commands/ddl_create_schema.md | 2 +- .../api/ysql/commands/ddl_create_sequence.md | 2 +- .../api/ysql/commands/ddl_create_table.md | 2 +- .../api/ysql/commands/ddl_create_table_as.md | 4 +- .../api/ysql/commands/ddl_create_view.md | 2 +- .../api/ysql/commands/ddl_drop_database.md | 2 +- .../api/ysql/commands/ddl_drop_sequence.md | 2 +- .../api/ysql/commands/ddl_drop_table.md | 2 +- .../latest/api/ysql/commands/ddl_truncate.md | 12 +--- .../latest/api/ysql/commands/dml_delete.md | 11 ++- .../latest/api/ysql/commands/dml_insert.md | 13 ++-- .../latest/api/ysql/commands/dml_select.md | 27 ++++--- .../latest/api/ysql/commands/dml_update.md | 17 ++++- .../api/ysql/commands/perf_deallocate.md | 2 +- .../latest/api/ysql/commands/perf_execute.md | 1 - .../latest/api/ysql/commands/perf_explain.md | 8 +-- .../latest/api/ysql/commands/txn_lock.md | 7 +- .../latest/api/ysql/commands/txn_rollback.md | 2 +- .../api/ysql/commands/txn_set_constraints.md | 2 +- .../latest/api/ysql/grammar_diagrams.md | 70 ++++++++++--------- 29 files changed, 139 insertions(+), 122 deletions(-) diff --git a/docs/content/latest/api/ysql/commands/_index.md b/docs/content/latest/api/ysql/commands/_index.md index 219b09609c11..bfc232237da7 100644 --- a/docs/content/latest/api/ysql/commands/_index.md +++ b/docs/content/latest/api/ysql/commands/_index.md @@ -19,38 +19,39 @@ The following table lists all SQL commands that are supported by YugaByte Databa | Statement | Description | |-----------|-------------| | [`ABORT`](txn_abort) | Rollback a transaction | -| [`ALTER DATABASE`](ddl_alter_db) | | -| [`ALTER TABLE`](ddl_alter_table) | | +| [`ALTER DATABASE`](ddl_alter_db) | Change database definition | +| [`ALTER TABLE`](ddl_alter_table) | Change table definition | | [`BEGIN TRANSACTION`](txn_begin) | Start a transaction | | [`COMMIT`](txn_commit) | Commit a transaction | -| [`COPY`](cmd_copy) | | +| [`COPY`](cmd_copy) | Copy data between tables and files | | [`CREATE DATABASE`](ddl_create_database) | Create a new database | | [`CREATE INDEX`](ddl_create_index) | Create a new index | | [`CREATE SCHEMA`](ddl_create_schema) | Create a new schema (namespace) | -| [`CREATE SEQUENCE`](ddl_create_seq) | | +| [`CREATE SEQUENCE`](ddl_create_sequence) | Create a new sequence generator | | [`CREATE TABLE`](ddl_create_table) | Create a new table | | [`CREATE TABLE AS`](ddl_create_table_as) | Create a new table | | [`CREATE USER`](dcl_create_user) | Create a new user (role) | | [`CREATE VIEW`](ddl_create_view) | Create a new view | -| [`DEALLOCATE`](txn_deallocate) | | +| [`DEALLOCATE`](txn_deallocate) | Deallocate a prepared statement | | [`DELETE`](dml_delete) | Delete rows from a table | | [`DROP DATABASE`](ddl_drop_database) | Delete a database and associated objects | +| [`DROP SEQUENCE`](ddl_drop_sequence) | Delete a sequence generator | | [`DROP TABLE`](ddl_drop_table) | Delete a table from a database | | [`END TRANSACTION`](txn_end) | Commit a transaction | | [`EXECUTE`](perf_execute) | Insert rows into a table | | [`EXPLAIN`](perf_explain) | Insert rows into a table | | [`GRANT`](dcl_grant) | Grant permissions | | [`INSERT`](dml_insert) | Insert rows into a table | -| [`LOCK`](txn_lock) | | +| [`LOCK`](txn_lock) | Lock a table | | [`PREPARE`](perf_prepare) | Select rows from a table | -| [`RESET`](cmd_reset) | | +| [`RESET`](cmd_reset) | Reset a variable to factory settings | | [`REVOKE`](dcl_revoke) | Revoke permissions | | [`ROLLBACK`](txn_rollback) | Rollback a transaction | | [`SELECT`](dml_select) | Select rows from a table | -| [`SET`](cmd_set) | | -| [`SET CONSTRAINTS`](cmd_set_constraints) | | -| [`SET TRANSACTION`](txn_set) | | -| [`SHOW`](cmd_show) | | -| [`SHOW TRANSACTION`](txn_show) | | +| [`SET`](cmd_set) | Set a system, session, or transactional parameter | +| [`SET CONSTRAINTS`](cmd_set_constraints) | Set constraints on current transaction| +| [`SET TRANSACTION`](txn_set) | Set transaction behaviors | +| [`SHOW`](cmd_show) | Show value of a system, session, or transactional parameter | +| [`SHOW TRANSACTION`](txn_show) | Show properties of a transaction | | [`TRUNCATE`](ddl_truncate) | Clear all rows from a table | | [`UPDATE`](dml_update) | Update rows in a table | diff --git a/docs/content/latest/api/ysql/commands/cmd_copy.md b/docs/content/latest/api/ysql/commands/cmd_copy.md index 4b5ac5bde6e4..46c1186f329c 100644 --- a/docs/content/latest/api/ysql/commands/cmd_copy.md +++ b/docs/content/latest/api/ysql/commands/cmd_copy.md @@ -19,7 +19,7 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams #### copy_from COPYtable_name(,column_name)FROMfilenamePROGRAMcommandSTDINWITH(,option) @@ -27,7 +27,7 @@ showAsideToc: true COPYtable_name(column_names)(query)TOfilenamePROGRAMcommandSTDOUTWITH(,option) #### copy_option -FORMATformat_nameOIDSbooleanFREEZEbooleanDELIMITERdelimiter_characterNULLnull_stringHEADERbooleanQUOTEquote_characterESCAPEescape_characterFORCE_QUOTE(column_names)FORCE_NOT_NULL(column_names)FORCE_NULL(column_names)ENCODINGencoding_name +FORMATformat_nameOIDSbooleanFREEZEbooleanDELIMITERdelimiter_characterNULLnull_stringHEADERbooleanQUOTEquote_characterESCAPEescape_characterFORCE_QUOTE(column_names)*FORCE_NOT_NULL(column_names)FORCE_NULL(column_names)ENCODINGencoding_name ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/cmd_reset.md b/docs/content/latest/api/ysql/commands/cmd_reset.md index 63718efbf73e..d7b5cdc63a7c 100644 --- a/docs/content/latest/api/ysql/commands/cmd_reset.md +++ b/docs/content/latest/api/ysql/commands/cmd_reset.md @@ -19,7 +19,7 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams RESETnameALL ### Grammar diff --git a/docs/content/latest/api/ysql/commands/dcl_create_user.md b/docs/content/latest/api/ysql/commands/dcl_create_user.md index 1ffe26bbffde..7cdd089c6c7d 100644 --- a/docs/content/latest/api/ysql/commands/dcl_create_user.md +++ b/docs/content/latest/api/ysql/commands/dcl_create_user.md @@ -19,7 +19,7 @@ YugaByte supports the `CREATE USER` and limited `GRANT`/`REVOKE` commands to cre ## Syntax ### Diagrams -#### create_user + CREATEUSERname ### Grammar diff --git a/docs/content/latest/api/ysql/commands/dcl_revoke.md b/docs/content/latest/api/ysql/commands/dcl_revoke.md index ef2bcb69f8e7..ea9324093fd1 100644 --- a/docs/content/latest/api/ysql/commands/dcl_revoke.md +++ b/docs/content/latest/api/ysql/commands/dcl_revoke.md @@ -19,8 +19,6 @@ Remove access privileges. ## Syntax ### Diagrams - -#### revoke REVOKEprivilegesONprivilege_targetFROM,nameCASCADERESTRICT ### Grammar diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_db.md b/docs/content/latest/api/ysql/commands/ddl_alter_db.md index f547bc30a6c8..08a326a0ce53 100644 --- a/docs/content/latest/api/ysql/commands/ddl_alter_db.md +++ b/docs/content/latest/api/ysql/commands/ddl_alter_db.md @@ -18,7 +18,7 @@ ALTER DATABASE redefines the attributes of the specified database. ## Syntax -### Diagram +### Diagrams #### alter_database ALTERDATABASEnameWITHalter_database_optionRENAMETOnew_nameOWNERTOnew_ownerCURRENT_USERSESSION_USERSETTABLESPACEnew_tablespaceSETconfiguration_parameterTO=valueDEFAULTSETconfiguration_parameterFROMCURRENTRESETconfiguration_parameterRESETALL diff --git a/docs/content/latest/api/ysql/commands/ddl_alter_table.md b/docs/content/latest/api/ysql/commands/ddl_alter_table.md index 12465e826a8d..0ad925d8a6e0 100644 --- a/docs/content/latest/api/ysql/commands/ddl_alter_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_alter_table.md @@ -18,7 +18,7 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams ### alter_table ALTERTABLEIFEXISTSONLYname*,alter_table_action] @@ -29,6 +29,9 @@ showAsideToc: true #### table_constraint CONSTRAINTconstraint_nameCHECK(expression)NOINHERITPRIMARYKEY(column_names)index_parameters +#### column_names +,column_name + ### Grammar ``` alter_table ::= ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] alter_table_action [, ... ] diff --git a/docs/content/latest/api/ysql/commands/ddl_create_database.md b/docs/content/latest/api/ysql/commands/ddl_create_database.md index 4a2d227a1cf4..753a43225ca5 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_database.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_database.md @@ -17,14 +17,20 @@ The `CREATE DATABASE` statement creates a `database` that functions as a groupin ## Syntax -### Diagram +### Diagrams -CREATEDATABASEnameWITHOWNER=user_nameTEMPLATE=templateENCODING=encodingLC_COLLATE=lc_collateLC_CTYPE=lc_ctypeTABLESPACE=tablespace_nameALLOW_CONNECTIONS=allowconnCONNECTIONLIMIT=connlimitIS_TEMPLATE=istemplate +#### create_database +CREATEDATABASEnamecreate_database_options + +#### create_database_options + +WITHOWNER=user_nameTEMPLATE=templateENCODING=encodingLC_COLLATE=lc_collateLC_CTYPE=lc_ctypeTABLESPACE=tablespace_nameALLOW_CONNECTIONS=allowconnCONNECTIONLIMIT=connlimitIS_TEMPLATE=istemplate ### Grammar ``` -create_database ::= - CREATE DATABASE name +create_database ::= CREATE DATABASE name [ create_database_options ] + +create_database_options ::= [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] diff --git a/docs/content/latest/api/ysql/commands/ddl_create_index.md b/docs/content/latest/api/ysql/commands/ddl_create_index.md index 6c1877f49aef..99a393b3a81d 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_index.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_index.md @@ -17,17 +17,22 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams -CREATEUNIQUEINDEXIFNOTEXISTSnameONONLYtable_name(,index_elem)INCLUDE(column_names)WHEREpredicate +#### create_index +CREATEUNIQUEINDEXIFNOTEXISTSnameONONLYtable_name(,index_elem)INCLUDE(,column_name)WHEREpredicate + +#### index_elem +column_name(expression)opclassASCDESC ### Grammar ``` -create_index ::= CREATE [ UNIQUE ] INDEX [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name - ( { column_name | ( expression ) } [ opclass ] [ ASC | DESC ] [, ...] ) +create_index ::= CREATE [ UNIQUE ] INDEX [ [ IF NOT EXISTS ] name ] + ON [ ONLY ] table_name ( index_elem [ , ...] ) [ INCLUDE ( column_name [, ...] ) ] - [ WITH ( storage_parameter = value [, ... ] ) ] [ WHERE predicate ] + +index_elem ::= { column_name | '(' expression ')' } [ opclass ] [ 'ASC' | 'DESC' ] ; ``` Where diff --git a/docs/content/latest/api/ysql/commands/ddl_create_schema.md b/docs/content/latest/api/ysql/commands/ddl_create_schema.md index 55a6aa23044f..130d1be34fc2 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_schema.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_schema.md @@ -18,7 +18,7 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams CREATESCHEMAIFNOTEXISTSschema_nameschema_element ### Grammar diff --git a/docs/content/latest/api/ysql/commands/ddl_create_sequence.md b/docs/content/latest/api/ysql/commands/ddl_create_sequence.md index 3d71d86b663e..e4aade38036e 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_sequence.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_sequence.md @@ -17,7 +17,7 @@ The `CREATE SEQUENCE` statement creates a new sequence in the current schema. ## Syntax -### Diagram +### Diagrams CREATESEQUENCEIFNOTEXISTSsequence_namesequence_options ### sequence_name diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table.md b/docs/content/latest/api/ysql/commands/ddl_create_table.md index 4932778e87a3..8c1c030ab097 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_table.md @@ -18,7 +18,7 @@ The `CREATE TABLE` statement creates a new table in a database. It defines the t ## Syntax -### Diagram +### Diagrams #### create_table CREATETABLEIFNOTEXISTStable_name(,table_elem) diff --git a/docs/content/latest/api/ysql/commands/ddl_create_table_as.md b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md index 52ae06d234f5..62b32e5765f5 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_table_as.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_table_as.md @@ -19,9 +19,9 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams -CREATETABLEIFNOTEXISTStable_name(column_names)ASqueryWITHNODATA +CREATETABLEIFNOTEXISTStable_name(,column_name)ASqueryWITHNODATA ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/ddl_create_view.md b/docs/content/latest/api/ysql/commands/ddl_create_view.md index 88a3e5617be3..cf3af128bc00 100644 --- a/docs/content/latest/api/ysql/commands/ddl_create_view.md +++ b/docs/content/latest/api/ysql/commands/ddl_create_view.md @@ -17,7 +17,7 @@ The `CREATE VIEW` statement creates a new view in a database. It defines the vie ## Syntax -### Diagram +### Diagrams #### create_view diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_database.md b/docs/content/latest/api/ysql/commands/ddl_drop_database.md index 277235dd9b74..6696b74c7c42 100644 --- a/docs/content/latest/api/ysql/commands/ddl_drop_database.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_database.md @@ -17,7 +17,7 @@ The `DROP DATABASE` statement removes a database and all its database objects (s ## Syntax -### Diagram +### Diagrams DROPDATABASEIFEXISTSdatabase_name ### Grammar diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md b/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md index 45c924d612e3..981221a7863c 100644 --- a/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_sequence.md @@ -17,7 +17,7 @@ The `DROP SEQUENCE` statement deletes a sequence in the current schema. ## Syntax -### Diagram +### Diagrams DROPSEQUENCEIFEXISTSsequence_nameCASCADERESTRICT ### sequence_name diff --git a/docs/content/latest/api/ysql/commands/ddl_drop_table.md b/docs/content/latest/api/ysql/commands/ddl_drop_table.md index 1b399507efa7..6836624b2e12 100644 --- a/docs/content/latest/api/ysql/commands/ddl_drop_table.md +++ b/docs/content/latest/api/ysql/commands/ddl_drop_table.md @@ -17,7 +17,7 @@ The `DROP TABLE` statement removes a table and all of its data from the database ## Syntax -### Diagram +### Diagrams DROPTABLEIFEXISTStable_name diff --git a/docs/content/latest/api/ysql/commands/ddl_truncate.md b/docs/content/latest/api/ysql/commands/ddl_truncate.md index b4dcc38e0183..1cb29c25e271 100644 --- a/docs/content/latest/api/ysql/commands/ddl_truncate.md +++ b/docs/content/latest/api/ysql/commands/ddl_truncate.md @@ -19,19 +19,13 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams -#### Truncate - -TRUNCATETABLE,table_expr - -#### table_expr - -ONLYname* +TRUNCATETABLE,ONLYname* ### Grammar ``` -truncate_stmt ::= TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ] +truncate_stmt ::= TRUNCATE [ TABLE ] { [ ONLY ] name [ * ] } [, ... ] ``` Where diff --git a/docs/content/latest/api/ysql/commands/dml_delete.md b/docs/content/latest/api/ysql/commands/dml_delete.md index 11c8986d496f..54ea37c09d26 100644 --- a/docs/content/latest/api/ysql/commands/dml_delete.md +++ b/docs/content/latest/api/ysql/commands/dml_delete.md @@ -19,16 +19,13 @@ DELETE removes rows that meet certain conditions, and when conditions are not pr ## Syntax -### Diagram +### Diagrams #### delete -WITHRECURSIVE,with_queryDELETEFROMONLYtable_name*ASaliasWHEREconditionWHERECURRENTOFcursor_namereturning_clause +WITHRECURSIVE,with_queryDELETEFROMONLYtable_name*ASaliasWHEREconditionWHERECURRENTOFcursor_namereturning_clause -#### returning -RETURNING*,returning_expression - -#### returning_expression -output_expressionASoutput_name +#### returning_clause +RETURNING*,output_expressionASoutput_name ### Grammar ``` diff --git a/docs/content/latest/api/ysql/commands/dml_insert.md b/docs/content/latest/api/ysql/commands/dml_insert.md index 45907b3158f6..8d1053a4fd1a 100644 --- a/docs/content/latest/api/ysql/commands/dml_insert.md +++ b/docs/content/latest/api/ysql/commands/dml_insert.md @@ -18,19 +18,18 @@ The `INSERT` statement adds a row to a specified table. ## Syntax -### Diagram +### Diagrams #### insert -WITHRECURSIVE,with_queryINSERTINTOtable_nameASalias(column_names)DEFAULTVALUESVALUES,column_valuessubqueryreturning_clause +WITHRECURSIVE,with_queryINSERTINTOtable_nameASalias(column_names)DEFAULTVALUESVALUES(column_values),(column_values)subqueryreturning_clause -#### column_values - -(,column_value) +#### returning_clause +RETURNING*,output_expressionASoutput_name -#### column_value +#### column_values -expressionDEFAULT +,expressionDEFAULT ### Grammar diff --git a/docs/content/latest/api/ysql/commands/dml_select.md b/docs/content/latest/api/ysql/commands/dml_select.md index 1c9a23d2a189..73e096e11c63 100644 --- a/docs/content/latest/api/ysql/commands/dml_select.md +++ b/docs/content/latest/api/ysql/commands/dml_select.md @@ -17,13 +17,10 @@ The `SELECT` statement retrieves (part of) rows of specified columns that meet a ## Syntax -### Diagram +### Diagrams #### select -WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*,select_expressionFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS - -#### select_expression -expressionASname +WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*,expressionASnameFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS #### order_expr expressionASCDESCUSINGoperatorNULLSFIRSTLAST @@ -31,16 +28,16 @@ The `SELECT` statement retrieves (part of) rows of specified columns that meet a ### Grammar ``` -select ::= [ WITH [ RECURSIVE ] with_query [ ',' ... ] ] \ - SELECT [ ALL | DISTINCT [ ON ( expression { , expression } ) ] ] \ - [ * | expression [ [ AS ] name ] [ ',' ... ] ] \ - [ FROM from_item [ ',' ... ] ] \ - [ WHERE condition ] \ - [ GROUP BY grouping_element [ , ...] ] \ - [ HAVING condition [ ',' condition ] ] \ - [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ] \ - [ ORDER BY order_expr [ ',' ...] ] \ - [ LIMIT [ integer | ALL ] ] \ +select ::= [ WITH [ RECURSIVE ] with_query [ ',' ... ] ] + SELECT [ ALL | DISTINCT [ ON ( expression { , expression } ) ] ] + [ * | expression [ [ AS ] name ] [ ',' ... ] ] + [ FROM from_item [ ',' ... ] ] + [ WHERE condition ] + [ GROUP BY grouping_element [ , ...] ] + [ HAVING condition [ ',' condition ] ] + [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ] + [ ORDER BY order_expr [ ',' ...] ] + [ LIMIT [ integer | ALL ] ] [ OFFSET integer [ ROW | ROWS ] ] ; order_expr = expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ]; diff --git a/docs/content/latest/api/ysql/commands/dml_update.md b/docs/content/latest/api/ysql/commands/dml_update.md index 59f9d0635d0c..1957a02a7a43 100644 --- a/docs/content/latest/api/ysql/commands/dml_update.md +++ b/docs/content/latest/api/ysql/commands/dml_update.md @@ -19,16 +19,27 @@ UPDATE modifies the values of specified columns in all rows that meet certain co ## Syntax -### Diagram +### Diagrams #### update -WITHRECURSIVE,with_queryUPDATEONLYtable_name*ASaliasSET,update_itemFROMfrom_listWHEREconditionWHERECURRENTOFcursor_namereturning_clause +WITHRECURSIVE,with_queryUPDATEONLYtable_name*ASaliasSET,update_itemFROMfrom_listWHEREconditionWHERECURRENTOFcursor_namereturning_clause -#### update_item +#### returning_clause +RETURNING*,output_expressionASoutput_name +#### update_item column_name=column_value(column_names)=ROW(column_values)(column_names)=(query) +#### column_values +,expressionDEFAULT + +#### column_value +expressionDEFAULT + +#### column_names +,column_name + ### Grammar ``` update ::= [ WITH [ RECURSIVE ] with_query [, ...] ] diff --git a/docs/content/latest/api/ysql/commands/perf_deallocate.md b/docs/content/latest/api/ysql/commands/perf_deallocate.md index 2658dfda1371..a34c3445254f 100644 --- a/docs/content/latest/api/ysql/commands/perf_deallocate.md +++ b/docs/content/latest/api/ysql/commands/perf_deallocate.md @@ -19,7 +19,7 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams DEALLOCATEPREPAREnameALL diff --git a/docs/content/latest/api/ysql/commands/perf_execute.md b/docs/content/latest/api/ysql/commands/perf_execute.md index f2b7764a5c81..547b6eb645b1 100644 --- a/docs/content/latest/api/ysql/commands/perf_execute.md +++ b/docs/content/latest/api/ysql/commands/perf_execute.md @@ -20,7 +20,6 @@ showAsideToc: true ### Diagrams -#### execute EXECUTEname(,expression) ### Grammar diff --git a/docs/content/latest/api/ysql/commands/perf_explain.md b/docs/content/latest/api/ysql/commands/perf_explain.md index 8f816876d0ae..c9c44710f46f 100644 --- a/docs/content/latest/api/ysql/commands/perf_explain.md +++ b/docs/content/latest/api/ysql/commands/perf_explain.md @@ -18,18 +18,18 @@ The `EXPLAIN` command shows the execution plan for an statement. If the `ANALYZE ## Syntax +### Diagrams #### explain - -EXPLAINANALYZEVERBOSE(,option)]statement +EXPLAINANALYZEVERBOSE(,option)statement #### option - ANALYZEbooleanVERBOSEbooleanCOSTSbooleanBUFFERSbooleanTIMINGbooleanSUMMARYbooleanFORMATTEXTXMLJSONYAML ### Grammar ``` -explain ::= EXPLAIN [ ANALYZE] [ VERBOSE ] | ( option [, ...] ) ] statement +explain ::= EXPLAIN { [ ANALYZE] [ VERBOSE ] | ( option [, ...] ) } statement + option ::= ANALYZE [ boolean ] | VERBOSE [ boolean ] | COSTS [ boolean ] diff --git a/docs/content/latest/api/ysql/commands/txn_lock.md b/docs/content/latest/api/ysql/commands/txn_lock.md index e3828e197e49..27932f0b3cba 100644 --- a/docs/content/latest/api/ysql/commands/txn_lock.md +++ b/docs/content/latest/api/ysql/commands/txn_lock.md @@ -19,11 +19,12 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams -LOCKTABLE,table_exprINlockmodeMODENOWAIT +#### lock +LOCKTABLE,ONLYname*INlockmodeMODENOWAIT -`lockmode` : +#### lockmode ACCESSSHAREROWSHAREROWEXCLUSIVESHAREUPDATEEXCLUSIVESHARESHAREROWEXCLUSIVEEXCLUSIVEACCESSEXCLUSIVE diff --git a/docs/content/latest/api/ysql/commands/txn_rollback.md b/docs/content/latest/api/ysql/commands/txn_rollback.md index a10383f8a874..3f4535670cd9 100644 --- a/docs/content/latest/api/ysql/commands/txn_rollback.md +++ b/docs/content/latest/api/ysql/commands/txn_rollback.md @@ -18,7 +18,7 @@ showAsideToc: true ## Grammar -### Diagram +### Diagrams ROLLBACKTRANSACTIONWORK diff --git a/docs/content/latest/api/ysql/commands/txn_set_constraints.md b/docs/content/latest/api/ysql/commands/txn_set_constraints.md index 86adff7cd55a..72ebe120dfc8 100644 --- a/docs/content/latest/api/ysql/commands/txn_set_constraints.md +++ b/docs/content/latest/api/ysql/commands/txn_set_constraints.md @@ -19,7 +19,7 @@ showAsideToc: true ## Syntax -### Diagram +### Diagrams SETCONSTRAINTSALL,nameDEFERREDIMMEDIATE diff --git a/docs/content/latest/api/ysql/grammar_diagrams.md b/docs/content/latest/api/ysql/grammar_diagrams.md index 8126a8a1d5fe..4bfa3c416791 100644 --- a/docs/content/latest/api/ysql/grammar_diagrams.md +++ b/docs/content/latest/api/ysql/grammar_diagrams.md @@ -64,21 +64,27 @@ copy_to = 'COPY' ( table_name [ '(' column_names ')' ] | '(' query ')' ) \ 'TO' ### copy_option ``` -copy_option = 'FORMAT' format_name | 'OIDS' [ boolean ] | 'FREEZE' [ boolean ] | 'DELIMITER' 'delimiter_character' | 'NULL' 'null_string' | 'HEADER' [ boolean ] | 'QUOTE' 'quote_character' | 'ESCAPE' 'escape_character' | 'FORCE_QUOTE' ( '(' column_names ')' { ( ) } ) | 'FORCE_NOT_NULL' '(' column_names ')' | 'FORCE_NULL' '(' column_names ')' | 'ENCODING' 'encoding_name'; +copy_option = 'FORMAT' format_name | 'OIDS' [ boolean ] | 'FREEZE' [ boolean ] | 'DELIMITER' 'delimiter_character' | 'NULL' 'null_string' | 'HEADER' [ boolean ] | 'QUOTE' 'quote_character' | 'ESCAPE' 'escape_character' | 'FORCE_QUOTE' ( '(' column_names ')' | '*' ) | 'FORCE_NOT_NULL' '(' column_names ')' | 'FORCE_NULL' '(' column_names ')' | 'ENCODING' 'encoding_name'; ``` -FORMATformat_nameOIDSbooleanFREEZEbooleanDELIMITERdelimiter_characterNULLnull_stringHEADERbooleanQUOTEquote_characterESCAPEescape_characterFORCE_QUOTE(column_names)FORCE_NOT_NULL(column_names)FORCE_NULL(column_names)ENCODINGencoding_name +FORMATformat_nameOIDSbooleanFREEZEbooleanDELIMITERdelimiter_characterNULLnull_stringHEADERbooleanQUOTEquote_characterESCAPEescape_characterFORCE_QUOTE(column_names)*FORCE_NOT_NULL(column_names)FORCE_NULL(column_names)ENCODINGencoding_name ### create_database ``` -create_database = 'CREATE' 'DATABASE' name [ [ 'WITH' ] [ 'OWNER' [ '=' ] user_name ] [ 'TEMPLATE' [ '=' ] template ] [ 'ENCODING' [ '=' ] encoding ] [ 'LC_COLLATE' [ '=' ] lc_collate ] [ 'LC_CTYPE' [ '=' ] lc_ctype ] [ 'TABLESPACE' [ '=' ] tablespace_name ] [ 'ALLOW_CONNECTIONS' [ '=' ] allowconn ] [ 'CONNECTION' 'LIMIT' [ '=' ] connlimit ] [ 'IS_TEMPLATE' [ '=' ] istemplate ] ]; +create_database = 'CREATE' 'DATABASE' name [ create_database_options ]; ``` -CREATEDATABASEnameWITHOWNER=user_nameTEMPLATE=templateENCODING=encodingLC_COLLATE=lc_collateLC_CTYPE=lc_ctypeTABLESPACE=tablespace_nameALLOW_CONNECTIONS=allowconnCONNECTIONLIMIT=connlimitIS_TEMPLATE=istemplate +CREATEDATABASEnamecreate_database_options + +### create_database_options +``` +create_database_options = [ 'WITH' ] [ 'OWNER' [ '=' ] user_name ] \ [ 'TEMPLATE' [ '=' ] template ] \ [ 'ENCODING' [ '=' ] encoding ] \ [ 'LC_COLLATE' [ '=' ] lc_collate ] \ [ 'LC_CTYPE' [ '=' ] lc_ctype ] \ [ 'TABLESPACE' [ '=' ] tablespace_name ] \ [ 'ALLOW_CONNECTIONS' [ '=' ] allowconn ] \ [ 'CONNECTION' 'LIMIT' [ '=' ] connlimit ] \ [ 'IS_TEMPLATE' [ '=' ] istemplate ]; +``` +WITHOWNER=user_nameTEMPLATE=templateENCODING=encodingLC_COLLATE=lc_collateLC_CTYPE=lc_ctypeTABLESPACE=tablespace_nameALLOW_CONNECTIONS=allowconnCONNECTIONLIMIT=connlimitIS_TEMPLATE=istemplate ### create_index ``` -create_index = 'CREATE' [ 'UNIQUE' ] 'INDEX' [ [ 'IF' 'NOT' 'EXISTS' ] name ] 'ON' [ 'ONLY' ] table_name '(' index_elem { ',' index_elem } ')' [ 'INCLUDE' '(' column_names ')' ] [ 'WHERE' predicate ]; +create_index = 'CREATE' [ 'UNIQUE' ] 'INDEX' [ [ 'IF' 'NOT' 'EXISTS' ] name ] \ 'ON' [ 'ONLY' ] table_name '(' index_elem { ',' index_elem } ')' \ [ 'INCLUDE' '(' column_name { ',' column_name } ')' ] \ [ 'WHERE' predicate ]; ``` -CREATEUNIQUEINDEXIFNOTEXISTSnameONONLYtable_name(,index_elem)INCLUDE(column_names)WHEREpredicate +CREATEUNIQUEINDEXIFNOTEXISTSnameONONLYtable_name(,index_elem)INCLUDE(,column_name)WHEREpredicate ### index_elem ``` @@ -166,9 +172,9 @@ table_constraint = [ 'CONSTRAINT' constraint_name ] ( 'CHECK' '(' expression ')' ### create_table_as ``` -create_table_as = 'CREATE' 'TABLE' [ 'IF' 'NOT' 'EXISTS' ] table_name [ '(' column_names ')' ] 'AS' query [ 'WITH' [ 'NO' ] 'DATA' ]; +create_table_as = 'CREATE' 'TABLE' [ 'IF' 'NOT' 'EXISTS' ] \ table_name [ '(' column_name { ',' column_name } ')' ] \ 'AS' query [ 'WITH' [ 'NO' ] 'DATA' ]; ``` -CREATETABLEIFNOTEXISTStable_name(column_names)ASqueryWITHNODATA +CREATETABLEIFNOTEXISTStable_name(,column_name)ASqueryWITHNODATA ### create_user ``` @@ -190,15 +196,15 @@ deallocate = 'DEALLOCATE' [ 'PREPARE' ] ( name | 'ALL' ); ### delete ``` -delete = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] 'DELETE' 'FROM' [ 'ONLY' ] table_name [ '*' ] [ [ 'AS' ] alias ] [ 'WHERE' condition | 'WHERE' 'CURRENT' 'OF' cursor_name ] [ returning_clause ]; +delete = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] \ 'DELETE' 'FROM' [ 'ONLY' ] table_name [ '*' ] [ [ 'AS' ] alias ] \ [ 'WHERE' condition | 'WHERE' 'CURRENT' 'OF' cursor_name ] \ [ returning_clause ]; ``` -WITHRECURSIVE,with_queryDELETEFROMONLYtable_name*ASaliasWHEREconditionWHERECURRENTOFcursor_namereturning_clause +WITHRECURSIVE,with_queryDELETEFROMONLYtable_name*ASaliasWHEREconditionWHERECURRENTOFcursor_namereturning_clause ### returning ``` -returning = 'RETURNING' ( '*' | returning_expression { ',' returning_expression } ); +returning = 'RETURNING' ( '*' | ( output_expression [ [ 'AS' ] output_name ] ) { ',' ( output_expression [ [ 'AS' ] output_name ] ) } ); ``` -RETURNING*,returning_expression +RETURNING*,output_expressionASoutput_name ### returning_expression ``` @@ -232,9 +238,9 @@ execute_statement = 'EXECUTE' name [ '(' expression { ',' expression } ')' ]; ### explain ``` -explain = 'EXPLAIN' [ 'ANALYZE' ] [ 'VERBOSE' ] | '(' option { ',' option } ')' ] statement; +explain = 'EXPLAIN' [ [ 'ANALYZE' ] [ 'VERBOSE' ] | '(' option { ',' option } ')' ] statement; ``` -EXPLAINANALYZEVERBOSE(,option)]statement +EXPLAINANALYZEVERBOSE(,option)statement ### option ``` @@ -250,27 +256,21 @@ grant = 'GRANT' privileges 'ON' privilege_target 'TO' name { ',' name } [ 'WITH' ### insert ``` -insert = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] 'INSERT' 'INTO' table_name [ 'AS' alias ] [ '(' column_names ')' ] ( 'DEFAULT' 'VALUES' | 'VALUES' column_values { ',' column_values } | subquery ) [ returning_clause ]; +insert = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] \ 'INSERT' 'INTO' table_name [ 'AS' alias ] [ '(' column_names ')' ] \ ( 'DEFAULT' 'VALUES' | 'VALUES' '(' column_values ')' { ',' '(' column_values ')' } | subquery ) \ [ returning_clause ]; ``` -WITHRECURSIVE,with_queryINSERTINTOtable_nameASalias(column_names)DEFAULTVALUESVALUES,column_valuessubqueryreturning_clause +WITHRECURSIVE,with_queryINSERTINTOtable_nameASalias(column_names)DEFAULTVALUESVALUES(column_values),(column_values)subqueryreturning_clause ### column_values ``` -column_values = '(' column_value { ',' column_value } ')'; -``` -(,column_value) - -### column_value -``` -column_value = expression | 'DEFAULT'; +column_values = ( expression | 'DEFAULT' ) { ',' ( expression | 'DEFAULT' ) }; ``` -expressionDEFAULT +,expressionDEFAULT ### lock_table ``` -lock_table = 'LOCK' [ 'TABLE' ] ( table_expr { ',' table_expr } ) [ 'IN' lockmode 'MODE' ] [ 'NOWAIT' ]; +lock_table = 'LOCK' [ 'TABLE' ] ( ( [ 'ONLY' ] name [ '*' ] ) { ',' ( [ 'ONLY' ] name [ '*' ] ) } ) [ 'IN' lockmode 'MODE' ] [ 'NOWAIT' ]; ``` -LOCKTABLE,table_exprINlockmodeMODENOWAIT +LOCKTABLE,ONLYname*INlockmodeMODENOWAIT ### lockmode ``` @@ -304,9 +304,9 @@ rollback_transaction = 'ROLLBACK' [ 'TRANSACTION' | 'WORK' ]; ### select ``` -select = [ 'WITH' [ 'RECURSIVE' ] ( with_query { ',' with_query } ) ] 'SELECT' [ 'ALL' | 'DISTINCT' [ 'ON' ( '(' expression { ',' expression } ')' ) ] ] [ '*' | select_expression { ',' select_expression } ] [ 'FROM' ( from_item { ',' from_item } ) ] [ 'WHERE' condition ] [ 'GROUP' 'BY' ( grouping_element { ',' grouping_element } ) ] [ 'HAVING' ( condition { ',' condition } ) ] [ ( 'UNION' | 'INTERSECT' | 'EXCEPT' ) [ 'ALL' | 'DISTINCT' ] select ] [ 'ORDER' 'BY' ( order_expr { ',' order_expr } ) ] [ 'LIMIT' [ integer | 'ALL' ] ] [ 'OFFSET' integer [ 'ROW' | 'ROWS' ] ]; +select = [ 'WITH' [ 'RECURSIVE' ] ( with_query { ',' with_query } ) ] \ 'SELECT' [ 'ALL' | 'DISTINCT' [ 'ON' ( '(' expression { ',' expression } ')' ) ] ] [ '*' | ( expression [ [ 'AS' ] name ] ) { ',' ( expression [ [ 'AS' ] name ] ) } ] \ [ 'FROM' ( from_item { ',' from_item } ) ] [ 'WHERE' condition ] \ [ 'GROUP' 'BY' ( grouping_element { ',' grouping_element } ) ] [ 'HAVING' ( condition { ',' condition } ) ] \ [ ( 'UNION' | 'INTERSECT' | 'EXCEPT' ) [ 'ALL' | 'DISTINCT' ] select ] [ 'ORDER' 'BY' ( order_expr { ',' order_expr } ) ] \ [ 'LIMIT' [ integer | 'ALL' ] ] [ 'OFFSET' integer [ 'ROW' | 'ROWS' ] ]; ``` - +WITHRECURSIVE,with_querySELECTALLDISTINCTON(,expression)*,expressionASnameFROM,from_itemWHEREconditionGROUPBY,grouping_elementHAVING,conditionUNIONINTERSECTEXCEPTALLDISTINCTselectORDERBY,order_exprLIMITintegerALLOFFSETintegerROWROWS ### select_expression ``` @@ -352,9 +352,9 @@ show_transaction = 'SHOW' 'TRANSACTION' 'ISOLATION' 'LEVEL'; ### truncate ``` -truncate = 'TRUNCATE' [ 'TABLE' ] ( table_expr { ',' table_expr } ); +truncate = 'TRUNCATE' [ 'TABLE' ] ( ( [ 'ONLY' ] name [ '*' ] ) { ',' ( [ 'ONLY' ] name [ '*' ] ) } ); ``` -TRUNCATETABLE,table_expr +TRUNCATETABLE,ONLYname* ### table_expr ``` @@ -364,9 +364,9 @@ table_expr = [ 'ONLY' ] name [ '*' ]; ### update ``` -update = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] 'UPDATE' [ 'ONLY' ] table_name [ '*' ] [ [ 'AS' ] alias ] 'SET' update_item { ',' update_item } [ 'FROM' from_list ] [ 'WHERE' condition | 'WHERE' 'CURRENT' 'OF' cursor_name ] [ returning_clause ]; +update = [ 'WITH' [ 'RECURSIVE' ] with_query { ',' with_query } ] \ 'UPDATE' [ 'ONLY' ] table_name [ '*' ] [ [ 'AS' ] alias ] \ 'SET' update_item { ',' update_item } [ 'FROM' from_list ] \ [ 'WHERE' condition | 'WHERE' 'CURRENT' 'OF' cursor_name ] [ returning_clause ]; ``` -WITHRECURSIVE,with_queryUPDATEONLYtable_name*ASaliasSET,update_itemFROMfrom_listWHEREconditionWHERECURRENTOFcursor_namereturning_clause +WITHRECURSIVE,with_queryUPDATEONLYtable_name*ASaliasSET,update_itemFROMfrom_listWHEREconditionWHERECURRENTOFcursor_namereturning_clause ### update_item ``` @@ -374,6 +374,12 @@ update_item = column_name '=' column_value | '(' column_names ')' '=' [ 'ROW' ] ``` column_name=column_value(column_names)=ROW(column_values)(column_names)=(query) +### column_value +``` +column_value = expression | 'DEFAULT'; +``` +expressionDEFAULT + ### where_expression ``` where_expression = boolean_expression;