Browse Source

YQL-17725 docs for unicode literals (#1547)

* init

* fix

* tune gitignore
Vitaly Stoyan 1 year ago
parent
commit
d1edd186c2

+ 3 - 1
.gitignore

@@ -6,7 +6,9 @@
 # Unignore all dirs
 !*/
 # Unignore all files inside canondata dir
-!*/canondata/*
+!**/canondata/**
+
+/canonization_show_res.log
 
 # C libraries
 *.so

+ 3 - 2
ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/lexer.md

@@ -169,9 +169,10 @@ SELECT $text;
 
 ### Типизированные строковые литералы {#typed-string-literals}
 
-* Для строкового литерала, включая [многострочный](#multiline-string-literals), по умолчанию используется тип `String`.
+* Для строкового литерала, включая [многострочный](#multiline-string-literals), по умолчанию используется тип `String` (см. также [PRAGMA UnicodeLiterals](../pragma.md#UnicodeLiterals)).
 * С помощью следующих суффиксов можно явно управлять типом литерала:
-    * `u` — `Utf8`;
+    * `s` или `b` - `String`;
+    * `u` или `t` — `Utf8`;
     * `y` — `Yson`;
     * `j` — `Json`.
 

+ 22 - 0
ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/pragma/global.md

@@ -207,6 +207,28 @@ ClassicDivision является [scoped](#pragmascope) настройкой.
 Не влияет на операции с числами с  плавающей точкой или `Decimal`.
 CheckedOps является [scoped](#pragmascope) настройкой.
 
+### UnicodeLiterals
+
+`UnicodeLiterals`/`DisableUnicodeLiterals`
+
+| Тип значения | По умолчанию |
+| --- | --- |
+| Флаг | false |
+
+При включенном режиме строковые литералы без суффиксов вида "foo"/'bar'/@@multiline@@ будут иметь тип `Utf8`, при выключенном - `String`.
+UnicodeLiterals является [scoped](#pragmascope) настройкой.
+
+### WarnUntypedStringLiterals
+
+`WarnUntypedStringLiterals`/`DisableWarnUntypedStringLiterals`
+
+| Тип значения | По умолчанию |
+| --- | --- |
+| Флаг | false |
+
+При включенном режиме для строковых литералов без суффиксов вида "foo"/'bar'/@@multiline@@ будет генерироваться предупреждение. Его можно подавить, если явно выбрать суффикс `s` или `b` для типа `String`, либо `u` или `t` для типа `Utf8`.
+WarnUntypedStringLiterals является [scoped](#pragmascope) настройкой.
+
 ### AllowDotInAlias
 
 | Тип значения | По умолчанию |

+ 1 - 1
ydb/library/yql/sql/v1/sql_query.cpp

@@ -1628,7 +1628,7 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
         "unicodeliterals",
         "disableunicodeliterals",
         "warnuntypedstringliterals",
-        "disableuntypedstringliterals",
+        "disablewarnuntypedstringliterals",
     };
     const bool hasLexicalScope = withConfigure || lexicalScopePragmas.contains(normalizedPragma);
     const bool withFileAlias = normalizedPragma == "file" || normalizedPragma == "folder" || normalizedPragma == "library" || normalizedPragma == "udf";

+ 15 - 0
ydb/library/yql/tests/sql/dq_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Analyze_/extracted

@@ -0,0 +1,15 @@
+<tmp_path>/program.sql:<main>: Warning: Parse Sql
+
+    <tmp_path>/program.sql:<main>:9:6: Warning: Please add suffix u or t for Utf8 strings or s or b for arbitrary binary strings
+    		    "e");
+	     ^
+<tmp_path>/program.sql:<main>: Warning: Parse Sql
+
+    <tmp_path>/program.sql:<main>:9:6: Warning: Please add suffix u or t for Utf8 strings or s or b for arbitrary binary strings
+    		    "e");
+	     ^
+<tmp_path>/program.sql:<main>: Warning: Parse Sql
+
+    <tmp_path>/program.sql:<main>:9:6: Warning: Please add suffix u or t for Utf8 strings or s or b for arbitrary binary strings
+    		    "e");
+	     ^

+ 15 - 0
ydb/library/yql/tests/sql/dq_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Results_/extracted

@@ -0,0 +1,15 @@
+<tmp_path>/program.sql:<main>: Warning: Parse Sql
+
+    <tmp_path>/program.sql:<main>:9:6: Warning: Please add suffix u or t for Utf8 strings or s or b for arbitrary binary strings
+    		    "e");
+	     ^
+<tmp_path>/program.sql:<main>: Warning: Parse Sql
+
+    <tmp_path>/program.sql:<main>:9:6: Warning: Please add suffix u or t for Utf8 strings or s or b for arbitrary binary strings
+    		    "e");
+	     ^
+<tmp_path>/program.sql:<main>: Warning: Parse Sql
+
+    <tmp_path>/program.sql:<main>:9:6: Warning: Please add suffix u or t for Utf8 strings or s or b for arbitrary binary strings
+    		    "e");
+	     ^

+ 5 - 0
ydb/library/yql/tests/sql/yt_native_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Results_/extracted

@@ -0,0 +1,5 @@
+<tmp_path>/program.sql:<main>: Warning: Parse Sql
+
+    <tmp_path>/program.sql:<main>:9:6: Warning: Please add suffix u or t for Utf8 strings or s or b for arbitrary binary strings
+    		    "e");
+	     ^