diff options
author | Vitaly Stoyan <vvvv@ydb.tech> | 2024-02-02 18:24:30 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-02 18:24:30 +0300 |
commit | d1edd186c248a102c4253c79370a4cd5fd33abd3 (patch) | |
tree | 0633606b8a12994a65041f9e7b1bebaa1e90e356 | |
parent | b7657690c8d10cadbfbf2018cf19b9a1523eabd8 (diff) | |
download | ydb-d1edd186c248a102c4253c79370a4cd5fd33abd3.tar.gz |
YQL-17725 docs for unicode literals (#1547)
* init
* fix
* tune gitignore
7 files changed, 64 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore index 1ca86c20ec..a4b64d12e8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,9 @@ # Unignore all dirs !*/ # Unignore all files inside canondata dir -!*/canondata/* +!**/canondata/** + +/canonization_show_res.log # C libraries *.so diff --git a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/lexer.md b/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/lexer.md index e402623639..bcc3038047 100644 --- a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/lexer.md +++ b/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`. diff --git a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/pragma/global.md b/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/pragma/global.md index 452fb51c41..013355ae1a 100644 --- a/ydb/docs/ru/core/yql/reference/yql-core/syntax/_includes/pragma/global.md +++ b/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 | Тип значения | По умолчанию | diff --git a/ydb/library/yql/sql/v1/sql_query.cpp b/ydb/library/yql/sql/v1/sql_query.cpp index 9689e8beea..1b450cc640 100644 --- a/ydb/library/yql/sql/v1/sql_query.cpp +++ b/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"; diff --git a/ydb/library/yql/tests/sql/dq_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Analyze_/extracted b/ydb/library/yql/tests/sql/dq_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Analyze_/extracted new file mode 100644 index 0000000000..a7947fe4b5 --- /dev/null +++ b/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"); + ^
\ No newline at end of file diff --git a/ydb/library/yql/tests/sql/dq_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Results_/extracted b/ydb/library/yql/tests/sql/dq_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Results_/extracted new file mode 100644 index 0000000000..a7947fe4b5 --- /dev/null +++ b/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"); + ^
\ No newline at end of file diff --git a/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Results_/extracted b/ydb/library/yql/tests/sql/yt_native_file/part14/canondata/test.test_expr-unicode_literals-default.txt-Results_/extracted new file mode 100644 index 0000000000..e1547d9f46 --- /dev/null +++ b/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"); + ^
\ No newline at end of file |