summaryrefslogtreecommitdiffstats
path: root/yql/essentials/ast
Commit message (Collapse)AuthorAgeFilesLines
* pass streaming constraints inside switchgrigoriypisar4 days1-1/+1
| | | | | | | Added streaming constraint passing for switch: * If input has streaming constraint -- all child lambdas also get streaming constraint on input (because joined variant stream may not finish) commit_hash:0da119f104179a5c93d9a6752876d3d1e3a63637
* YQL-21390 fixvvvv2026-07-072-1/+16
| | | | | | | | | | | | #### Fix use-after-free in escaped argument names parsing ✎ - Changed type of argument name variable from `TStringBuf` to `TString` to ensure proper ownership of the string data - Added regression tests to verify correct parsing of escaped argument names with resource types - Prevents potential use-after-free issue when parsing nested escaped identifiers where the same scratch buffer is reused - Maintains backward compatibility while fixing memory safety issue in type string parsing <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:f3e444a9d8809737ab51117fc96298967b09e623
* YQL-20095: Tune bugprone-argument-commentvitya-smirnov2026-06-304-35/+35
| | | | | https://clang.llvm.org/extra/clang-tidy/checks/bugprone/argument-comment.html commit_hash:780ff6a63be44998cb2336a05f3dc33e68a676bf
* YQL-20095: Enable performance-move-const-argvitya-smirnov2026-06-243-15/+15
| | | | | | | | | | | | | https://clang.llvm.org/extra/clang-tidy/checks/performance/move-const-arg.html This check useful, as it shows, when a `std::move` is useless, so to expectations of a programmer are not aligned with reality. The most useful profit is to see `const T&` arguments, that are potentially can be replaced with `T`. Also disabled `CheckTriviallyCopyableMove`, see https://nda.ya.ru/t/Emvgx5Z67fpZY5 why. commit_hash:c80c264a9774721aabbac85b350ccdbb8b9a39a2
* YQL-21134: Set UnstableFormat AST flag unconditionallyvitya-smirnov2026-06-162-2/+5
| | | | | | | - Renamed `TAstNodeFlags::IgnoredContent` to `TAstNodeFlags::UnstableFormat` to better reflect its purpose. - Removed the `MarkQueryTextAtomWithIgnoredContent` translation setting. The `UnstableFormat` flag is now unconditionally applied to query text atoms during parsing. - Updated `CheckedFormat` and `ValidateAST` to accept an already parsed AST. Since the flag is now set unconditionally, we can reuse the initial AST for format validation. This avoids re-parsing the original query, reducing redundant AST builds and overall RAM consumption. commit_hash:bba3e6733d3a9c120cf9724a161e603de0cfc038
* YQL-21134: Introduce not strict AST equalityvitya-smirnov2026-06-101-0/+12
| | | | commit_hash:6d140dd812ad22bada6b8680e160b74b599f7032
* YQL-21292 fixed switching of cycle detector & better diagsvvvv2026-06-052-8/+11
| | | | commit_hash:1a546dc230518eb6846155c77db762e4d83281d5
* added new streaming contraintgrigoriypisar2026-05-153-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | ## Что означает Streaming Constraint Пусть `O` - колабл для которого выставлен Streaming Constraint и `I` - множество входов оператора для которых также выставлен Streaming Constraint. ### Streaming constraint для Unordered List Если `O` принимает на вход List и логически является Unordered (нету гарантий на порядок выхода относительно проядка входа), то: * При добавлении одного элемента в конец списка любого входа из `I` -- в мульти множестве результата `O` могут только появиться новые значения (либо ничего не добавится) ### Streaming constraint для Ordered List Тоже самое, что и для Unordered List, но добавляется ограничение, что: * При добавлении одного элемента в конец списка любого входа из `I` -- в упорядоченный список строк, являющийся результатом `O` могут добавиться строки только в конец списка ### Streaming constraint для Stream / Flow Тоже самое, что для Ordered / Unordered List, но добавляется ограничение: * Если в любом из входов `I` типа Stream / Flow возможны Yield, то обновлённый результат оператора должен выводиться с ограниченной задержкой при поступлении Yield commit_hash:1e9e2deac133179c46ad15daa32fb421a3998296
* YQL-20095: Enable modernize-use-emplacevitya-smirnov2026-05-131-1/+1
| | | | commit_hash:4d6e2f6fcc1639f09725c0c96de8d2f7f0f70404
* YQL-20095: Enable readability-uppercase-literal-suffixvitya-smirnov2026-05-073-13/+13
| | | | commit_hash:41791bb9a63f1993010fb68562e9a5607927307d
* YQL-20095: Enable readability-inconsistent-declaration-parameter-namevitya-smirnov2026-04-287-97/+97
| | | | commit_hash:9589937209af8e742c0c6401bd1c232f073856bf
* YQL-21034: Convert integers to Uint64 at ListSampleNmariibykova2026-04-201-0/+1
| | | | commit_hash:f508795113ebbfadfb1bc05529f4af46ae7837d2
* YQL-20861 enable checked derefvvvv2026-04-161-6/+1
| | | | commit_hash:849933ac7306b03740f88af05a749c251b009b93
* YQL-20095: Enable readability-isolate-declarationvitya-smirnov2026-04-135-14/+22
| | | | commit_hash:c180c2db4897962cb70063ffdc2ddcd21e5e3418
* Add logs in ~TExprNode()mpereskokova2026-04-112-7/+17
| | | | commit_hash:63422ba2943489acd335f599a2b50e7282e1b5e5
* YQL-20095: Enable readability-container-size-emptyvitya-smirnov2026-04-072-2/+2
| | | | commit_hash:464a95fd6de1a395f8ffe20092e837df995e623c
* YQL-20095: Enable readability-duplicate-includevitya-smirnov2026-04-061-1/+0
| | | | commit_hash:ea7cc749f3373f610d5945dc823ee74493744775
* Replace unreachable with *_ENSURE(false, ...)atarasov52026-04-011-1/+1
| | | | commit_hash:7c1445375e838a9327006528cb455c9899e9b32d
* Fix VariantType partial typecheckvvvv2026-03-061-3/+1
| | | | commit_hash:c7403abf812b3aa282df309e8b63258075d1b59f
* YQL-20095: Enable modernize-raw-string-literalvitya-smirnov2026-03-062-55/+55
| | | | | https://clang.llvm.org/extra/clang-tidy/checks/modernize/raw-string-literal.html commit_hash:80a511a46b35539fa1f834d4fb5de452ccfbe0ac
* YQL-20095: Enable modernize-use-usingvitya-smirnov2026-03-044-18/+18
| | | | commit_hash:ea1f0987ec40e3e683c35bffb64b7f5ab35e73ed
* YQL-20095: Enable modernize-use-equals-deletevitya-smirnov2026-03-031-5/+8
| | | | | https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-delete.html commit_hash:7ee40c7692cab9e1c16070f7f61d10f70f14c0bc
* YQL-20095: Enable modernize-pass-by-valuevitya-smirnov2026-03-026-9/+18
| | | | commit_hash:4939dfad654f18bb31e40711ee0c39063889f17b
* YQL-20095: Enable modernize-loop-convertvitya-smirnov2026-02-274-20/+19
| | | | | | | | - https://clang.llvm.org/extra/clang-tidy/checks/modernize/loop-convert.html Semi-automatic translation was performed. Manually rewritten some types and names. commit_hash:0ad921f0d512dd4a8ccc8af557197ce6a02582e1
* YQL-20095: Enable bugprone-exception-escapeatarasov52026-02-201-0/+2
| | | | commit_hash:a511b90dbd2eadcf32cc5d75130da6c9d4efaa52
* YQL-20095: Enable modernize-avoid-c-arraysvitya-smirnov2026-02-195-106/+104
| | | | commit_hash:da491ee93c4f4d3c885c7908a22b4d5d66c80388
* YQL-20723: Expect a failing SubstParametersvitya-smirnov2026-02-051-1/+3
| | | | commit_hash:ccc458058e877b3f908c576e2887d8474ab27043
* YQL-20095: Enable misc-use-anonymous-namespacevitya-smirnov2026-02-052-11/+20
| | | | | - https://clang.llvm.org/extra/clang-tidy/checks/misc/use-anonymous-namespace.html commit_hash:746be9b9db256111b2fb6ab4d89844746deebcda
* YQL-20861: introduce TCheckedDerefPtrlukashevich842026-02-051-2/+11
| | | | | Relates: YQL-20861 commit_hash:2b6703c343bcd728622c1e0d9c3f8f1f21596128
* YQL-20095: Enable google-explicit-constructorvitya-smirnov2026-01-235-17/+17
| | | | commit_hash:4d77ad10fd4db303459ec4e45e139967c7fc8196
* YQL-20095: Enable modernize-use-overridevitya-smirnov2026-01-131-1/+1
| | | | | | | | | | | | | | | | | | | 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-20793 minirun testsvvvv2025-12-241-1/+4
| | | | commit_hash:84a05de3de0d62cb98a00df10a2fe513a520eaed
* YQL-20793 initial implementation of partial linter's typecheckvvvv2025-12-224-1/+110
| | | | commit_hash:8fa3844041e72cdb4e4952143d529019852a62a4
* YQL-20799 non recursive TExprNode destroy & better depth limitsvvvv2025-12-182-13/+90
| | | | commit_hash:f4afa523e18d1aff50fb701cea2b0c39fd33213d
* YQL-20716: Fix stack use after freeatarasov52025-11-282-2/+2
| | | | commit_hash:b553807d976bc338c5ac845f2d4d4f7d40904a87
* YQL-20086: Enable arcadia and bugprone checksvitya-smirnov2025-11-252-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* YQL-20673 Graph cycle detectorvvvv2025-11-252-0/+51
| | | | commit_hash:a8a7fef19b3cc3445a177192748b987ff6b80786
* YQL-20086: Add yql/essentials Clang Tidy configvitya-smirnov2025-11-213-7/+7
| | | | | | | | | 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-20552 better memory limiting for ConvertToAstvvvv2025-10-232-15/+61
| | | | | init commit_hash:38b84ac2154cd0424836722a9ff8d8246ddccce7
* YQL-20086 invert flagvvvv2025-10-103-6/+0
| | | | commit_hash:a6b640bc576263b62884a0b4187ba79c893e13d9
* YQL-20086 ast fixvvvv2025-10-031-29/+31
| | | | | init commit_hash:d67bcebcfba4bf3afc216e61e970451609332a93
* YQL-20086 astvvvv2025-10-0330-5299/+5644
| | | | | init commit_hash:89d6b4ea7383b4155af171f44b946fc80550d517
* YQL-20339 fix for callable typesvvvv2025-09-291-2/+14
| | | | | init commit_hash:3d31b437605545a795c3f04791f1ae27e2f45255
* YQL-20339 linear checkervvvv2025-09-291-0/+4
| | | | | | | usage types commit_hash:6214c6a10f057439898414592a7b70a178ef14a1
* YQL-20339 better error pos for dynamic checksvvvv2025-09-261-0/+12
| | | | | init commit_hash:11d97d8b3cbe39684d0813f20fdba59085a2e265
* YQL-20339 expr low level funcsvvvv2025-09-221-0/+1
| | | | | init commit_hash:ededd246fa929931de6e89fd5f809157d9fe4d16
* SeqMode supportudovichenko-r2025-09-182-0/+28
| | | | commit_hash:3d0e8bfb46470e6ac36b0d198cfa1723c665f643
* YQL-20339 expr types & reflectionvvvv2025-09-184-2/+196
| | | | | init commit_hash:1c72053b3785a26cfde418f28a9d054b5a624627
* Forbid fuse maps with DependsOn loss in peephole - second attemptziganshinmr2025-08-261-22/+1
| | | | commit_hash:d37fa5a6e62a39900f222fff86bae847202554ce
* Fix Sorted constraint for UnionMerge when the one of inputs is emptyudovichenko-r2025-08-211-2/+4
| | | | commit_hash:1a6c8ea1c65a438f8801f4f71f6d1bcb15a95c81