summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
Commit message (Collapse)AuthorAgeFilesLines
* YQL-20339 autocompletevvvv2025-10-191-0/+6
| | | | commit_hash:40a9b2cb7a03d72a1d908bf5da773e6518b6123c
* Implement partitions() table functionaneporada2025-10-081-0/+1
| | | | commit_hash:19bbcd26d46a4ca8d18f0dbae605b48ac823c614
* YQL-20086 sql/v1vitya-smirnov2025-10-071-1783/+1783
| | | | commit_hash:55bc611cdaa0d8a0fc3c4c7708ed9f17cc4976cf
* YQL-20307: Support inline subqueriesvitya-smirnov2025-10-011-1/+23
| | | | | | | | | | | - 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-291-0/+1
| | | | commit_hash:dba6cae7baee068a70013da4dc3377a10f2d4d22
* YQL-20381: Infer columns from indirect named nodevitya-smirnov2025-09-081-0/+16
| | | | commit_hash:05d53dee40119ad1d756d90775e6056fbebd99d2
* YQL-20379: Fix columns at subqueryvitya-smirnov2025-09-081-0/+18
| | | | | | | 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-261-30/+135
| | | | | | | | | | | | | | 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 some autocomplete issuesvitya-smirnov2025-08-191-2/+69
| | | | | | - Collect only named node definitions - Fix qualified column after WHERE commit_hash:641977921329199e645c3ac45ae8053a5d0e8b13
* YQL-19747: Infer table path from CONCAT and RANGEvitya-smirnov2025-08-191-6/+53
| | | | | | | 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-20301: Map unsupported object to UnknownNamevitya-smirnov2025-08-131-1/+19
| | | | | | | 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-121-1/+64
| | | | | | | | | | | | | | 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-081-0/+12
| | | | | | | | 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-041-8/+70
| | | | | | | | | - 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
* YQL-20221: Change binding replace rangevitya-smirnov2025-07-221-3/+31
| | | | | | | | | | Symbol `$` was excluded from the `BindingName` candidate content as `Replxx` interprets `$` as a word break. The problem is that Monaco Editor accounts `$` as a word part and filters out bindings. This patch makes `$` a word part and adds replace range to handle this properly at `Replxx`. commit_hash:ca3959635a6c0e6688bcbe7622a9c2aab6c683eb
* YQL-19747: Complete table functionsvitya-smirnov2025-07-101-21/+66
| | | | | | | | | | | | - Added table functions completion. - Also fixed a bug when USEd cluster was not added to table context at table function argument. - Complete folder names at `prefix` of `LIKE`, `RANGE`, etc. commit_hash:26be383be728796e8431f906e2815acd77645ad4
* YQL-19747: Fix query parameters parsingvitya-smirnov2025-07-091-1/+1
| | | | | | I missed that a query parameter key starts with '$'. commit_hash:1a24953b4f837da31db2201b9a9ffd0eef0c6b34
* YQL-19747: Fix binding precence at ID_QUOTEDvitya-smirnov2025-07-091-0/+13
| | | | commit_hash:a497dfe8863a864913c1d6df4b28edbe7d8e4bba
* YQL-19747: Fix small TODOsvitya-smirnov2025-07-041-26/+26
| | | | | | | | | | | | | - YQL-19747: Remove unused header - YQL-19747: Remove NameSet alias - YQL-19747: Fix identifier typo - YQL-19747: Cosmetics - YQL-19747: Receive NameRequest as const ref - YQL-19747: Remove string_util.h - YQL-19747: Change engine.Complete - YQL-19747: Remove configuration typedef - YQL-19747: Rename context to local commit_hash:451a6ba7c08e670a492222a29463be40a627c867
* YQL-19747: Respect WITHOUT at schema synthesisvitya-smirnov2025-07-031-0/+24
| | | | | | | | | Also fixed a bug when the same table used with and without an alias produced duplicated column names. This is incorrect at translator, but anyway we need to handle it gracefully. Also refactored some utility methods like context union. commit_hash:45a12675e865bb9d929e5e5178e16239a763d1f5
* YQL-19747: Respect quotable columnsvitya-smirnov2025-07-031-1/+19
| | | | | | Table can have not `ID_PLAIN` columns and we should return them as `ID_QUOTED`. commit_hash:f5850228a3191ab84e3740fc1c36cf8882b08c40
* YQL-19747: Support JOIN ON, WHERE, GROUP/ORDER BYvitya-smirnov2025-07-021-0/+70
| | | | | | | Before this patch we completed columns only at SELECT projection. Now we complete it at these constructions. Also it respects visibility rules. commit_hash:aa1e6d4900e9b032801ddbf3bcd347750c2939b1
* YQL-19747: Support qualified asteriskvitya-smirnov2025-06-251-0/+19
| | | | | Support `SELECT x.* FROM t AS x`. commit_hash:64693f65281f385d6c0d3541fb2874b0153aa88c
* YQL-19747: Hack parsing when at an empty idvitya-smirnov2025-06-251-2/+6
| | | | | | | | | | | There was a problem with parsing a query like `SELECT # FROM t`, as it parsed `FROM` as if it is an expeceted column name, so we failed to parse a table name after `FROM` and therefore can not complete column names, while the are so useful at this position. Also this hack improved parsing other queries, according to changed tests. commit_hash:f5a657022a164d1d4bbf906db4bd2ad67bbcd956
* YQL-19747: Fix self-join completionvitya-smirnov2025-06-251-0/+18
| | | | | | | | Fixed a bug on self-join, as table path was used as a key to match columns with tables instead of an alias. commit_hash:0f9735a4c5ba0b2b88efc764bc5e7f5d41633fd8
* YQL-19747: Synthesise subquery columnsvitya-smirnov2025-06-241-0/+28
| | | | commit_hash:40a2de243a67135e44505619fb766954ba24e2e8
* YQL-19747: Complete columns from JOINvitya-smirnov2025-06-231-1/+25
| | | | | | | Collect tables with aliases during global analysis and send a multiple requests to a schema provider. commit_hash:51cbc40cee6cda09d5bfe256a0425e7c809c04f5
* YQL-19747: Set cursor shift at completion itemvitya-smirnov2025-06-231-106/+106
| | | | | | | | Set `TCandidate::Shift` for functions and generic types. So now brackets are balanced and UI should adopt it. YDB CLI is ready for the update and just cut off symbols after an expected cursor position. commit_hash:9efc1110869af7be618b841c6c132572b61046a1
* YQL-19747: Fix case sensivityvitya-smirnov2025-06-231-10/+10
| | | | | | | Bug was that titlecase columns are not completed on lowercase prefix, e.g. `SELECT a# FROM x`, where `x = {Age}`. commit_hash:e48f73176e94bcf16671af56d232450e368c9909
* Intermediate changesrobot-piglet2025-06-231-10/+8
| | | | commit_hash:70eea6b3e17f4aafae5eadb49724ba9036a55372
* Intermediate changesrobot-piglet2025-06-201-13/+33
| | | | commit_hash:67576d4a9e4a1f4bbbb204bcb0b98c255009b1da
* YQL-19747: Auto-close backtick on not foldervitya-smirnov2025-06-191-11/+11
| | | | | | | | When table `folder/table` exists. On prefix ``` SELECT * FROM `folder/ ``` users want to accept ``` table` ``` rather than just `table`. This patch is about it. commit_hash:12d36cbf037db91f49136ab8e013b160a28b5b1b
* Intermediate changesrobot-piglet2025-06-181-26/+46
| | | | commit_hash:56c7deefce71a95f10a4738b0a51e6ba384dd983
* YQL-19747: Support table aliasesvitya-smirnov2025-06-181-0/+21
| | | | commit_hash:6d67ec1fa5023083debd89aaa99950019ca37c90
* YQL-19747: Support token ignoring patternsvitya-smirnov2025-06-171-0/+18
| | | | | Added support for token filtration. It is needed because YQL grammar supports multiple systems with various capabilities. For example, some of those do not support `INTERSECT ALL` and therefore `ALL` after `INTERSECT` should be *disabled*. Another example is a support of an only `EVALUATE FOR`, so `FOR` is *forced* to be precendenced by `EVALUATE`. commit_hash:a926c8d3911f8dd025ab58eb7f81e2370fcd9376
* YQL-19747: Complete columns at simple selectvitya-smirnov2025-06-171-3/+32
| | | | | Added support for a columns completion at a simple select. For example, `` SELECT # FROM hahn.`home/yql/tutorial/users` `` и `` USE hahn; SELECT $ FROM `home/yql/tutorial/users` ``. commit_hash:2254449e91255c19792a1dc521825e44dda7d63b
* YQL-19747: Improve types completionvitya-smirnov2025-06-171-44/+49
| | | | | Instead of relying on keyword sequences provided by C3 and using hacks like pattern matching on keyword sequences (`format.cpp`), emit composite types manually. commit_hash:999d8d4b514433fbdf7885aa0122b2010e985efb
* YQL-19747: Support table completion at CONCATvityaman2025-06-111-0/+14
| | | | | | | | | | | | --- - Related to `YQL-19747` - Related to https://github.com/vityaman/ydb/issues/62 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1323 commit_hash:ebab6c3290ba984174c85bba35eeb066b53af5aa
* YQL-19747: Fix some TODOs and Clang Tidy checksvityaman2025-06-061-1/+1
| | | | | | | | | | | | | | | | | | | Clang Tidy is cool, but too slow ;(. Btw, should we respect `misc-include-cleaner` check? ```bash ya dump compile-commands > /tmp/cc/compile_commands.json find . -type f \( -name "*.cpp" -o -name "*.h" \) -exec clang-tidy {} -p /tmp/cc {} -checks="misc-*" \; ``` --- - Related to `YQL-19747` - Related to https://github.com/ydb-platform/ydb/issues/9056 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1305 commit_hash:c2ecf638062dcdd0730fed3381da4a230f5352c3
* Intermediate changesrobot-piglet2025-06-021-0/+37
| | | | commit_hash:6476b453be16b7db003e75789e3b630c1168f14f
* YQL-19747: Complete named expressionsvityaman2025-06-021-0/+41
| | | | | | | | | | | | | | | | | | | - Introduced scoped name collection at global analysis - Added `BingingsNameService` constructed after global analysis and united with the base service. - Added dollar detection at local analysis. After this point design should be reexamined and module should be refactored. --- - Related to `YQL-19747` - Related to https://github.com/ydb-platform/ydb/issues/9056 - Related to https://github.com/vityaman/ydb/issues/57 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1304 commit_hash:a7bf41703f0ee846e359407b53a5d62fc05928ea
* Intermediate changesrobot-piglet2025-05-281-19/+9
| | | | commit_hash:ab24b3db82789b77ad465efa64de93c5eab43629
* YQL-19747: Support cursor shifting on completionvityaman2025-05-281-31/+31
| | | | | | | | | | | | | | | | | Completion candidates comes unclosed from right and with zeroed `CursorShift`. In future there will be an atomic patch that will close candidates and set `CursorShift` correctly. Not it is zeroed to integrate with clients (e.g. YDB CLI). --- - Related to `YQL-19747` - Related to https://github.com/vityaman/ydb/issues/53 - Related to https://github.com/ydb-platform/ydb/issues/9056 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1299 Co-authored-by: vvvv <[email protected]> commit_hash:38bcd21f0d6959275af89a981fd9b296374aea51
* YQL-19747: Fix cluster provider interpretationvityaman2025-05-271-18/+13
| | | | | | | | | | | | | | | There was a mistake thinking that provider is a part of a cluster name. Actually `yt:saurus` and `saurus` are same clusters and provider (`yt`) serves only as a hint for translation expressions such as `yt:$cluster_name`. --- - Related to `YQL-19747` - Related to https://github.com/vityaman/ydb/issues/54 - Related to https://github.com/ydb-platform/ydb/issues/9056 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1301 commit_hash:19a45cf0bb6c7dda26747b2e3371646272f79bce
* YQL-19747: Support immediate string named expressionsvityaman2025-05-271-8/+48
| | | | | | | | | | | --- - Related to `YQL-19747` - Related to https://github.com/vityaman/ydb/issues/50 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1292 commit_hash:a6d543bc18b2f9239bf0b33afd8497a7919fe4b3
* YQL-19747: Support statement blacklistvityaman2025-05-231-0/+27
| | | | | | | | | | | | | | I leaved the YDB configuration empty as need your feedback. --- - Related to `YQL-19747` - Related to https://github.com/vityaman/ydb/issues/39 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1289 commit_hash:408c7e0f101027fc6ca3d86d251b5639fcae07bb
* YQL-19747: Recover from unclosed ID_QUOTEDvityaman2025-05-201-1/+26
| | | | | | | | | | | | | | | | The simplest solution actually is an SQL injection. --- - Related to `YQL-19747` - Related to https://github.com/ydb-platform/ydb/issues/9056 - Related to https://github.com/ydb-platform/ydb/pull/18146 - Related to https://github.com/vityaman/ydb/issues/46 --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1283 commit_hash:7043e7cdd1e0d378926783d31cf5f8e055393aaa