From 5bd5d05b85da3c817004ca80af1116f53e12121c Mon Sep 17 00:00:00 2001 From: "a.sabirov" <a.sabirov@picodata.io> Date: Wed, 19 Jun 2024 19:11:30 +0300 Subject: [PATCH] chore: various edits --- docs/reference/sql/create_procedure.md | 6 ++-- docs/reference/sql/delete.md | 2 +- docs/reference/sql/explain.md | 13 ++++---- docs/reference/sql/insert.md | 1 - docs/reference/sql/join.md | 41 +++++--------------------- docs/reference/sql/select.md | 6 +--- 6 files changed, 19 insertions(+), 50 deletions(-) diff --git a/docs/reference/sql/create_procedure.md b/docs/reference/sql/create_procedure.md index 71c674a0..a62325a8 100644 --- a/docs/reference/sql/create_procedure.md +++ b/docs/reference/sql/create_procedure.md @@ -41,7 +41,7 @@ Процедура Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ñ‹Ñ… Ñтрок в таблицу `warehouse`: ```sql -CREATE PROCEDURE proc (int, text, int) +CREATE PROCEDURE proc (int, text, text) AS $$INSERT INTO warehouse VALUES($1, $2, $3)$$ OPTION (TIMEOUT = 5.0) ``` @@ -49,5 +49,5 @@ OPTION (TIMEOUT = 5.0) где: - `proc` — название процедуры -- `int, text, int` — типы аргументов процедуры -- `$1, $2, $3`— позиции значений из аргументов процедуры +- `int, text, text` — типы аргументов процедуры +- `$1, $2, $3` — позиции значений из аргументов процедуры diff --git a/docs/reference/sql/delete.md b/docs/reference/sql/delete.md index 09422259..168d969e 100644 --- a/docs/reference/sql/delete.md +++ b/docs/reference/sql/delete.md @@ -61,4 +61,4 @@ DELETE FROM warehouse where id = 1; DELETE FROM warehouse WHERE id IN (1,2,3); ``` -Ð’ вÑех ÑлучаÑÑ… в выводе в конÑоль будет указано количеÑтво удаленных кортежей. +Во вÑех ÑлучаÑÑ… в выводе в конÑоль будет указано количеÑтво удаленных кортежей. diff --git a/docs/reference/sql/explain.md b/docs/reference/sql/explain.md index 9e6c02a9..57dd8e55 100644 --- a/docs/reference/sql/explain.md +++ b/docs/reference/sql/explain.md @@ -90,10 +90,9 @@ WHERE amount > 1000; except projection ("ITEMS"."ID"::integer -> "ID", "ITEMS"."NAME"::string -> "NAME") scan "ITEMS" - projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM") - selection ROW("ORDERS"."AMOUNT"::integer) > ROW(1000::unsigned) - scan "ORDERS" - + projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM") + selection ROW("ORDERS"."AMOUNT"::integer) > ROW(1000::unsigned) + scan "ORDERS" ``` Ð’ таком плане запроÑа приÑутÑтвует два блока `projection`, перед @@ -228,14 +227,14 @@ update "WAREHOUSE" которой отличаетÑÑ ÐºÐ»ÑŽÑ‡ шардированиÑ: ```sql -EXPLAIN INSERT INTO orders SELECT * FROM items WHERE id = 5; +EXPLAIN INSERT INTO orders (id, item, amount) SELECT * FROM items WHERE id = 5; ``` Вывод в конÑоль: ``` insert "ORDERS" on conflict: fail - motion [policy: segment([ref("NAME")])] + motion [policy: local segment([ref("ID")])] projection ("ITEMS"."ID"::integer -> "ID", "ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK") selection ROW("ITEMS"."ID"::integer) = ROW(5::unsigned) scan "ITEMS" @@ -256,7 +255,7 @@ ON orders.id=new_table.nmbr; projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM") join on ROW("ORDERS"."ID"::integer) = ROW("NEW_TABLE"."NMBR"::integer) scan "ORDERS" - projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT") + projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT", "ORDERS"."SINCE"::datetime -> "SINCE") scan "ORDERS" motion [policy: segment([ref("NMBR")])] scan "NEW_TABLE" diff --git a/docs/reference/sql/insert.md b/docs/reference/sql/insert.md index 6359d885..ccf1f591 100644 --- a/docs/reference/sql/insert.md +++ b/docs/reference/sql/insert.md @@ -132,4 +132,3 @@ SQL](non_block.md). ЕÑли речь идет о запроÑе на вÑтав в `decimal 2.5`). Ð’ параметризированном виде дробнному чиÑлу будет назначен типа Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ запÑтой (например, `values(?), {2.5}` в `double 2.5`). См. [подробнее](../sql_types.md) о типах данных. - diff --git a/docs/reference/sql/join.md b/docs/reference/sql/join.md index e89c18d2..a6da07ad 100644 --- a/docs/reference/sql/join.md +++ b/docs/reference/sql/join.md @@ -88,7 +88,7 @@ Picodata поддерживает два типа ÑоединениÑ: `INNER J меÑте отÑутÑтвующих значений будет `nil`. Покажем Ñто на примере ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ равенÑтву колонок Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ† -`items` и `orders`: +`items` и `orders`. ??? example "ТеÑтовые таблицы" Примеры иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ включают в ÑÐµÐ±Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑÑ‹ к [теÑтовым @@ -150,29 +150,6 @@ ON items.name = orders.item неÑколькими ÑоединениÑми могут быть иÑпользованы разные комбинации левого и внутреннего ÑоединениÑ. -Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð° Ñ Ð´Ð²ÑƒÐ¼Ñ ÑоединениÑми задейÑтвуем третью теÑтовую таблицу. - -<details><summary>Содержимое таблицы</summary><p> - -```sql -picodata> select * from "warehouse" -+----+----------+---------+ -| ID | ITEM | TYPE | -+=========================+ -| 1 | "bricks" | "heavy" | -|----+----------+---------| -| 2 | "bars" | "light" | -|----+----------+---------| -| 3 | "blocks" | "heavy" | -|----+----------+---------| -| 4 | "piles" | "light" | -|----+----------+---------| -| 5 | "panels" | "light" | -+----+----------+---------+ -(5 rows) -``` -</details> - Сделаем Ñоединение трех таблиц Ñ Ñ‚ÐµÐ¼, чтобы получить ÑпиÑок вÑех позиций на Ñкладе Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ их типа и оÑтатков незавиÑимо от того, заказывалиÑÑŒ Ð´Ð»Ñ Ð½Ð¸Ñ… дополнительные поÑтавки или нет. @@ -248,12 +225,11 @@ projection ("ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK projection ("ITEMS"."ID"::integer -> "ID", "ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK") scan "ITEMS" scan "ORDERS" - projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT") + projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT", "ORDERS"."SINCE"::datetime -> "SINCE") scan "ORDERS" execution options: sql_vdbe_max_steps = 45000 vtable_max_rows = 5000 - ``` ### ЧаÑтичное перемещение {: #segment_motion } @@ -275,10 +251,9 @@ projection ("ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK scan "ITEMS" projection ("ITEMS"."ID"::integer -> "ID", "ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK") scan "ITEMS" - motion [policy: segment([ref("ID")])] - scan "ORDERS" - projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT") - scan "ORDERS" + scan "ORDERS" + projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT", "ORDERS"."SINCE"::datetime -> "SINCE") + scan "ORDERS" execution options: sql_vdbe_max_steps = 45000 vtable_max_rows = 5000 @@ -307,7 +282,7 @@ projection ("ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK scan "ITEMS" motion [policy: full] scan "ORDERS" - projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT") + projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT", "ORDERS"."SINCE"::datetime -> "SINCE") scan "ORDERS" execution options: sql_vdbe_max_steps = 45000 @@ -328,7 +303,7 @@ projection ("ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK scan "ITEMS" motion [policy: full] scan "ORDERS" - projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT") + projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT", "ORDERS"."SINCE"::datetime -> "SINCE") scan "ORDERS" execution options: sql_vdbe_max_steps = 45000 @@ -347,7 +322,7 @@ projection ("ITEMS"."NAME"::string -> "NAME", "ITEMS"."STOCK"::integer -> "STOCK scan "ITEMS" motion [policy: full] scan "ORDERS" - projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT") + projection ("ORDERS"."ID"::integer -> "ID", "ORDERS"."ITEM"::string -> "ITEM", "ORDERS"."AMOUNT"::integer -> "AMOUNT", "ORDERS"."SINCE"::datetime -> "SINCE") scan "ORDERS" execution options: sql_vdbe_max_steps = 45000 diff --git a/docs/reference/sql/select.md b/docs/reference/sql/select.md index d5191768..f6f8c558 100644 --- a/docs/reference/sql/select.md +++ b/docs/reference/sql/select.md @@ -94,14 +94,12 @@ ### Получение данных из таблицы Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸ÐµÐ¹ {: #select_with_filter } - ```sql -SELECT name from ITEM WHERE STOCK > 1000; +SELECT name from items WHERE stock > 1000; ``` ### Получение данных без повторов {: #select_distinct } - ```sql SELECT DISTINCT type FROM warehouse; ``` @@ -159,7 +157,6 @@ GROUP BY type; ``` <!-- - ### Группировка Ñ Ð¿Ð¾Ñледующей фильтрацией по Ñгруппированным данным {: #group_and_filter } ```sql @@ -168,7 +165,6 @@ GROUP BY type HAVING c > 3; sbroad: column with name "C" not found - ``` --> -- GitLab