summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete
Commit message (Collapse)AuthorAgeFilesLines
* YQL-21293: Fix UTF8 at GlobalAnalysis and WS at MatchCursorPrefixvitya-smirnov40 hours6-5/+164
| | | | commit_hash:2ae25879e9456a1d5852378b7fe0b16d7e6791a5
* Watermarks: YQL: Fix table hintsvokayndzop4 days1-1/+1
| | | | commit_hash:feaa364ef3d3f71bfa70a7d64e2cc6e3854d79a5
* YQL-20855: Support NULL as a type namevitya-smirnov13 days3-2/+44
| | | | commit_hash:e420d2d62e3a77af79abbec946f1008c1fa359c6
* YQL-20095: Apply modernize-use-nodiscard at sqlvitya-smirnov2026-05-2210-40/+40
| | | | commit_hash:16513c3f8da40e92c22e497694140f1c1584fb3f
* YQL-19747: Do not suggest lhs on rhs of assignmentvitya-smirnov2026-05-182-2/+12
| | | | commit_hash:219fd39fdf18274a37159c9ceb640dd82357f493
* YQL-16277: Implement frontend for COMBINE commandimunkin2026-05-131-0/+2
| | | | commit_hash:5a7847c000c3e5ec4cadf6880184d3eebb26d3b1
* YQL-20095: Enable readability-simplify-boolean-exprvitya-smirnov2026-05-071-6/+3
| | | | commit_hash:b3d7609795f9aeaaafe9cb65dbb2c6460582a4ec
* YQL-21203: Do not suggest column after ASvitya-smirnov2026-05-042-1/+17
| | | | commit_hash:8734b1a0721f4defbb881e2e9b0d990f64e9a2ad
* YQL-21115: Remove private UDFs from a completionvitya-smirnov2026-05-043-0/+45
| | | | commit_hash:e97cd58d9cd5b896371d7d79495554fb800a6c23
* YQL-20518: Fix UDF completionvitya-smirnov2026-04-302-0/+15
| | | | commit_hash:9ae3e629c03527ac6f4bdfbb3fe6a3394f006eda
* YQL-14176: Improve UNION/EXCEPT/INTERSECT completionvitya-smirnov2026-04-302-0/+82
| | | | commit_hash:26b6bc3091189590aad066d949eeb170b8a43e94
* YQL-20095: Enable readability-inconsistent-declaration-parameter-namevitya-smirnov2026-04-281-1/+1
| | | | commit_hash:9589937209af8e742c0c6401bd1c232f073856bf
* YQL-20380: Introduce LSP correct name resolutionvitya-smirnov2026-04-2426-235/+864
| | | | | | | | | | | | | | | | | | Previous name resolution in a completion engine was poor, because it just mapped a name for an expression and so redefinition was not working. For example, a table name inference did not work on the following query: ```yql $x = '/a' $x = $x || 'b'; $x = $x || 'c'; FROM plato.$x SELECT #; ``` But now it works. And also there was an issue with names visibility, because names were resolved like for `letrec`, not `let`. It was fixed. The new name resolution analyses the whole query and uses not only a name for an identifier lookup, but also its position in text. Each named node entry now classified as definition and a reference. There is a way to map each reference to a definition. In future it will be a basis for named nodes "go to definition", "find references", "rename" LSP methods. commit_hash:ceeecbe2a59aa4d82ceb59ef930af5659dcd5ff7
* YQL-20095: Enable readability-isolate-declarationvitya-smirnov2026-04-131-1/+2
| | | | commit_hash:c180c2db4897962cb70063ffdc2ddcd21e5e3418
* Remove redundant std::movevitya-smirnov2026-04-081-3/+3
| | | | commit_hash:cf2cfa1c2c53a2b99b4406d4ed29e70a3ceab16b
* YQL-20095: Enable readability-container-size-emptyvitya-smirnov2026-04-071-1/+1
| | | | commit_hash:464a95fd6de1a395f8ffe20092e837df995e623c
* YQL-20095: Enable readability-const-return-typevitya-smirnov2026-04-062-2/+2
| | | | commit_hash:8c898c65c0bdf92423256a1e752b13cc3ffd364a
* YQL-20095: Enable modernize-use-designated-initializersvitya-smirnov2026-03-177-669/+669
| | | | | https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-designated-initializers.html commit_hash:d73eb463c7bec2bda4c362aab10af49979a7ddd3
* YQL-20095: Enable bugprone-exception-escapeatarasov52026-02-204-0/+8
| | | | commit_hash:a511b90dbd2eadcf32cc5d75130da6c9d4efaa52
* YQL-20095: Enable google-explicit-constructorvitya-smirnov2026-01-234-4/+4
| | | | commit_hash:4d77ad10fd4db303459ec4e45e139967c7fc8196
* YQL-20095: Enable modernize-use-overridevitya-smirnov2026-01-133-4/+4
| | | | | | | | | | | | | | | | | | | The check `modernize-use-override` is useful as it: 1. Removes redundant `override` when it is used with a `final`. 2. Removes redundant `virtual` or replace it with a `override`. So it is more clean for a reader, that overriding happens. It is enabled not out of order, as it is just an alias to `cppcoreguidelines-explicit-virtual-functions`. I also decided to switch a strategy of enabling checks. Now I will enable only a single rule with a single PR and prefer rules with a non-breaking autofix. In the new year with new linter checks! 🎄 commit_hash:e6e233baa90b31e5f65e11837546690c47f71ab5
* YQL-20530: Fix a fatal table alias ending with '/'vitya-smirnov2025-12-302-2/+50
| | | | | | | | | | | I found a case, where the completion engine dies, when a table alias ends with a `/` character. The general problem is that the huge part of NameService stuff is built on a fact that `/` is used as path delimeter. So when it is used at a name, that will be unsafely contatenated somewhere with an other path, strange things can happen. commit_hash:69be32117450bfebf9609326f3a9ccef12985d61
* YQL-19017: Remove TTranslationSettings::Antlr4Parservitya-smirnov2025-12-104-8/+4
| | | | | Then I will remove an `Antlr4Parser` usages from the YDB. commit_hash:0183482e46de023f71698e03db9a0c51ef10fe98
* New statement TRUNCATE TABLEflown4qqqq2025-12-021-0/+2
| | | | commit_hash:f6dfab4a7add0379cacefb943c702ae065750654
* YQL-20086: Enable arcadia and bugprone checksvitya-smirnov2025-11-253-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables more Clang Tidy checks for the `yql/essentials` project. I chosen the policy to enable all checks by default because - It will keep us updated when new checks are become available in the DevTools whitelist. - You never know what check will be useful, even if it was not fired now. Why some checks from the https://nda.ya.ru/t/8QnKCVIO7NWhBD were disabled? - `arcadia-taxi-` checks are `userver`-specific. - `bugprone-bool-pointer-implicit-conversion` is not applicable to our codebase as we heavily used to it. - `bugprone-branch-clone` triggered on a code that is not obviously rewrittable and not so poor. - `bugprone-dynamic-static-initializers` are heavily used in our codebase especially in the translator. Static variables with dynamic initialization are so common, so refactor them is too hard and requires huge code rewritting to deliver some hardcoded configuration values via ctors, having them in a one place. - `bugprone-exception-escape` is useful check for programs where the care of exception safety is taken, but we a lot of places where exception can be thrown from the destructor or move-operator. I left a TODO in the `.clang-tidy` to fix this. Maybe will create a ticket. - `bugprone-lambda-function-name` appears when we throw an exception from the lambda. I think, that this is okay and do not see any options to fix it. - `bugprone-macro-parentheses` had false positives at `YQL_ENSURE` second argument and also broke some code, by surrounding `A` at `template <class A>`. - `bugprone-misplaced-widening-cast`, `bugprone-narrowing-conversions`, `bugprone-signed-char-misuse` are disabled because checking arithmetics correctness is hard and non-trivial. I am not sure that it worth spending a lot of time on it as everything seems to work well :o) - `bugprone-reserved-identifier` was triggered on some harmless identifier in computation, so I decided just to turn this off, rather than argue with someone. - `bugprone-suspicious-enum-usage` happend on Arcadia HTTP client usage. Do not think that it is worth to argue with Arcadia HTTP client code owners. - `bugprone-suspicious-memory-comparison` happened in some compuration test. I just decided to trust low-level code authors. - `bugprone-too-small-loop-variable` seems not really a problem and lets you safe some symbols on `static_cast`s. - `bugprone-sizeof-expression` had so many false positives at computation. - `bugprone-unchecked-optional-access` a good check, but optionals are dereferenced everywhere in our codebase. Of course, in a perfect world near each of such dereference should be an assertion with comment why it is a valid action, because when static analysis can not infer that the value is non-null, then it is not an obvious thing for a human also. But we a too far from such code quality now. - `bugprone-undefined-memory-manipulation` is interesting. It argued on some `memcpy` at computation. There was some `UnboxedValues` array and this objects have some logic of memory marking and releasing under an `NDEBUG`. I added a TODO to check this. Maybe will create a ticket. - `bugprone-unhandled-self-assignment` has false positives on non-owning objects such as iterators. commit_hash:c0c0de6b157bf095eb681bdea55ada47845de814
* Watermarks: YQL: watermarks sql 2.0vokayndzop2025-11-211-3/+3
| | | | commit_hash:2248d808136868c425ce9ceb05681c37fd108bb8
* YQL-20086: Add yql/essentials Clang Tidy configvitya-smirnov2025-11-211-2/+2
| | | | | | | | | This patch introduces an extension configuration for the Clang Tidy. It is merged with Arcadia Clang Tidy configuration. To begin with, more checks for identifiers naming are added. Documentation: https://nda.ya.ru/t/AhbDZbiF7MKe3M. commit_hash:3481da4c8df0a4d23a991d4a660ae050d2dc5d33
* YQL-20339 autocompletevvvv2025-10-192-0/+8
| | | | commit_hash:40a9b2cb7a03d72a1d908bf5da773e6518b6123c
* YQL-20086 invert flagvvvv2025-10-101-2/+0
| | | | commit_hash:a6b640bc576263b62884a0b4187ba79c893e13d9
* Implement partitions() table functionaneporada2025-10-082-0/+2
| | | | commit_hash:19bbcd26d46a4ca8d18f0dbae605b48ac823c614
* YQL-20086 sql/v1vitya-smirnov2025-10-07126-7144/+7146
| | | | commit_hash:55bc611cdaa0d8a0fc3c4c7708ed9f17cc4976cf
* YQL-20116: Introduce ANTLR4 ambiguity detectionvitya-smirnov2025-10-062-3/+3
| | | | | | - Ignored 2 known ambiguities. - Tested tools. commit_hash:9e29bb2f876dabc68293b3e5c26a470d373506ae
* YQL-20307: Support inline subqueriesvitya-smirnov2025-10-014-5/+60
| | | | | | | | | | | - Alter grammar to support inline subqueries. - Support inline subqueries in `sql/v1` (translator). - Introduce `sql/v1/proto_ast/parse_tree.h` for reusable parse tree predicates. - Support inline subqueries in `sql/v1/format`. - Support inline subqueries in `sql/v1/complete`. - Add some SQL-tests. - Pass all tests. commit_hash:075b2240778d071e1c7542f912d3cc83019ef849
* Implement partition_list table functionaneporada2025-09-292-0/+2
| | | | commit_hash:dba6cae7baee068a70013da4dc3377a10f2d4d22
* YQL-20381: Infer columns from indirect named nodevitya-smirnov2025-09-082-40/+92
| | | | commit_hash:05d53dee40119ad1d756d90775e6056fbebd99d2
* YQL-20379: Fix columns at subqueryvitya-smirnov2025-09-082-6/+32
| | | | | | | Thet top-level source was always selected for column inference, even when the cursor is at a subquery. commit_hash:c0eb00b98b23d52079aea5eb8d646887ff2fbbdd
* KIKIMR-23992: Add secret SQL operations – create, alter, dropyurikiselev2025-09-051-0/+3
| | | | commit_hash:3b74a89e67fd29fdced780847365861db726b687
* added sql syntax for CREATE / ALTER DROP STREAMING QUERYgrigoriypisar2025-08-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | Добавлен синтаксис (переиспользован код для inline action): ``` CREATE [OR REPLACE] STREAMING QUERY [IF NOT EXISTS] query_name [WITH ( key = value ... )] AS DO BEGIN ... END DO; ALTER STREAMING QUERY [IF EXISTS] query_name [SET( key = value ... )] [AS DO BEGIN ... END DO]; DROP STREAMING QUERY [IF EXISTS] query_name; ``` commit_hash:29fa6aa7e61ecf45112480fe3c1df8fab542354e
* YQL-19747: Replicate unambiguous columns and fix rankingvitya-smirnov2025-08-268-40/+263
| | | | | | | | | | | | | | This is an improvement for column suggestions. Even when user made a source aliased, he still is able to reference a column with both unqualified and qualified name, so we should provide both candidates, but with unqualified more relevant. As this patch required non trivial `NameResponse` modifications at the `CompletionEngine`, ranking should be used properly, so a way to pass it to the engine was introduced. commit_hash:1f2b90e2f6fbb7d33d9fc8479f43349a7f08c320
* YQL-19747: Fix YQL autocomplete configurationvitya-smirnov2025-08-191-8/+10
| | | | | | | Fixed an absence of candidates at `$x = (sel#)` as of `subselect_stmt` ignorance at the `YQLConfiguration`. commit_hash:5a841d63fad104599a791953f2f89b8791816115
* YQL-19747: Fix some autocomplete issuesvitya-smirnov2025-08-193-15/+85
| | | | | | - Collect only named node definitions - Fix qualified column after WHERE commit_hash:641977921329199e645c3ac45ae8053a5d0e8b13
* YQL-19747: Infer table path from CONCAT and RANGEvitya-smirnov2025-08-1911-54/+146
| | | | | | | Table function `RANGE` is commonly used, so some support for a table path inference is required. It is done by doing ``` `prefix` || '/' || `min` ```. commit_hash:4bec2a84a0ee8f6d97c92a46b4c4ebc7b41c4d7c
* YQL-20257: Parse cluster at simple_table_ref bind_parametervitya-smirnov2025-08-131-1/+1
| | | | | | | - Add `cluster_expr` to `simple_table_ref_core` alternative. - Added `Sql2Yql` unit test with a statement that is not parsed on trunk: https://nda.ya.ru/t/qHRri7r57HK3r2. commit_hash:eada89e88e3f2bc03c47cd22b73ba58b75f20681
* YQL-20301: Map unsupported object to UnknownNamevitya-smirnov2025-08-139-13/+64
| | | | | | | Before this PR unsupported objects were filtered, but we would like to show even unsupported object types as unknown name candidates. commit_hash:04c64b6e28717c3c19927d49eeedec7515608c22
* YQL-19747: Improve and fix completon enginevitya-smirnov2025-08-1214-29/+236
| | | | | | | | | | | | | | Played with the autocomplete and found some issues: https://nda.ya.ru/t/1F9ioYe37HVwo2. - Supported `min`, `max` parameters of the `RANGE` table function, respecting `prefix`. - Supported cluster detecton at table function, e.g. `SELECT * FROM plato.RANGE(Input1, Input2)`. - Made column filter not to ignore a table alias. - Supported keyword as identifier parsing. - Supported `ID_QUOTED` as table alias. commit_hash:9e9ff13373cd059e6a240ddff0ae18f599d790c0
* YQL-19747: Fix an absent column after WHEREvitya-smirnov2025-08-082-2/+13
| | | | | | | | Fixed an absence of column candidates at `SELECT * FROM t WHERE a#`. The problem was with a `IsEnclosing` procedure, because here the cursor is actually outside the `select_core` now there is a `_` symbol that enlarge this rule text range. commit_hash:0b493cb469333f9a37c923b06267ac026efeb2c9
* Watermarks: DDLvokayndzop2025-08-081-0/+3
| | | | commit_hash:64ad6b4138ee27f474b440e8ef3e07fac1935346
* YQL-19747: Partially concat and resolve symbolsvitya-smirnov2025-08-0414-164/+520
| | | | | | | | | - Migrated GetId to a Partial Evaluation function. - Centeralized named expressions collection. - Centeralized query parameters resolution. - Supported symbols resolution and concatenation. - Migrated USE and Columns Syntesis on the evaluation. commit_hash:fafedc4330bcd4a7ab607ae1d5f2691a2f5a60f2
* Intermediate changesrobot-piglet2025-07-301-2/+3
| | | | commit_hash:c0ba1e1b769fc35ecc458fc556b00493f26f75d1
* YQL-20112: Improve dramatically yql/utils/docsvitya-smirnov2025-07-301-1/+1
| | | | | | | | | Introduced `links.json` format to link names to documentation sections. Implement general links verification framework. Also fixed two small typos. Extended Description: https://nda.ya.ru/t/zR4voivb7GzD9r. commit_hash:e72db0e202b4ff612374c73fa384f70d029f0ef0