summaryrefslogtreecommitdiffstats
path: root/yql/essentials/public/udf
Commit message (Collapse)AuthorAgeFilesLines
* Support Uuid and DyNumber in minikql blocks and Arrowxyligansereja13 days5-13/+126
| | | | | | | | | | | | | | | | Изменения в рамках этого тикета <https://github.com/ydb-platform/ydb/issues/44190> #### Support Uuid and DyNumber in minikql blocks and Arrow ✎ - Added support for Uuid and DyNumber data types within MiniKQL blocks and Arrow computations, enabling their use in block-based operations and serialization - Implemented proper conversion, serialization, and deserialization logic for both data types in the Arrow format - Extended block item handling to support Uuid and DyNumber, including comparator and hasher implementations - Added comprehensive unit tests covering roundtrip operations, serialization, comparison, and conversion for both data types - Integrated Uuid and DyNumber support into built-in functions like Min/Max and their aggregate variants - Updated type system and block builder components to recognize and handle the new data types correctly - Added necessary includes and utility functions to work with Uuid and DyNumber in MiniKQL contexts <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:d1ab82c060cfa90b7cd13a1cb3efbcb9615e6291
* YQL-21315: Specify better invariantsatarasov52026-07-042-7/+10
| | | | | | | | | | | #### Specify better invariants for Arrow array operations ✎ - Replaced `UnsafeAdvance(1)` with `UnsafeAppend(0)` for value offsets to ensure proper initialization and maintain correct offset tracking during array construction - Added debug assertion to verify that initial value offset is zero, enforcing expected invariant for union slicing operations - Updated multiple append operations to explicitly set initial offset to zero, improving correctness and maintainability of variant type handling <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:561fbad6f3044c7c258cc39f999241a1b330a4ea
* YQL-20095: Tune bugprone-argument-commentvitya-smirnov2026-06-308-16/+16
| | | | | https://clang.llvm.org/extra/clang-tidy/checks/bugprone/argument-comment.html commit_hash:780ff6a63be44998cb2336a05f3dc33e68a676bf
* YQL-21253: Simplify trimmer logicatarasov52026-06-262-5/+24
| | | | | | | | | | | #### Simplify trimmer and transport logic for dense unions ✎ - Refactored dense union trimming logic to use new helper functions that calculate child usage and adjust value offsets in a more efficient and reusable way - Introduced dedicated functions for adjusting dense union value offsets, both as a separate operation and in-place, reducing code duplication and improving maintainability - Updated transport logic to leverage the new helper functions, streamlining the process of handling dense union arrays during data processing <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:637d983c584cc0e0b02a8ac21946d168fe736770
* YQL-20095: Enable performance-move-const-argvitya-smirnov2026-06-243-6/+6
| | | | | | | | | | | | | 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-21018: Remove redundant mutableatarasov52026-06-231-1/+1
| | | | | | | | | | | | #### Remove redundant mutable qualifier ✎ - Removed unnecessary `mutable` qualifier from a member variable - The variable is now treated as a regular non-mutable member - This change simplifies the code by removing an unnecessary const-correctness exception - No functional changes, only code cleanup and clarification of intent <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> commit_hash:a798844cf790ec23318f8a725fe069f7fff60851
* YQL-21253: Consider monotonicity when calculating the offset usageatarasov52026-06-193-26/+215
| | | | | В общем случае функция `CalculateDenseUnionChildrenUsage` не нуждается в проходе всего массива. Можно пройтись слева и собрать все min, потом пройти справа и собрать все max commit_hash:84da6b77027fb115855e8382330c6c2b3bd4ca4b
* YQL-20875: Enable apache arrow datum light checkatarasov52026-06-042-18/+0
| | | | commit_hash:ca028259d6fbf7b46aa0cc392187b8b153716d62
* YQL-21018: Implement builder and readers for block variantatarasov52026-06-0118-96/+1090
| | | | commit_hash:6514925c5290f805d279e2db85468c53c3db8f5d
* YQL-20095: Enable readability-static-definition-in-anonymous-namespacevitya-smirnov2026-05-151-1/+1
| | | | commit_hash:f7485dac5115e73f75a5edccb3c65c0b657dd8e5
* YQL-20095: Enable modernize-use-emplacevitya-smirnov2026-05-131-2/+2
| | | | commit_hash:4d6e2f6fcc1639f09725c0c96de8d2f7f0f70404
* YQL-20095: Enable readability-simplify-boolean-exprvitya-smirnov2026-05-071-10/+2
| | | | commit_hash:b3d7609795f9aeaaafe9cb65dbb2c6460582a4ec
* YQL-20095: Enable readability-uppercase-literal-suffixvitya-smirnov2026-05-075-57/+57
| | | | commit_hash:41791bb9a63f1993010fb68562e9a5607927307d
* YQL-19813: Udf implementationatarasov52026-05-072-2/+13
| | | | commit_hash:183e3a952a021c4701c20d6677800f245239d822
* YQL-20095: Enable readability-inconsistent-declaration-parameter-namevitya-smirnov2026-04-282-15/+15
| | | | commit_hash:9589937209af8e742c0c6401bd1c232f073856bf
* YQL-21105 error predicate, better errorsvvvv2026-04-241-17/+33
| | | | commit_hash:0af07ceeebf07bbda69e5335cbe4c08abfc55fb5
* YQL-21105 more polyargs (math, yson, url, datetime)vvvv2026-04-221-12/+53
| | | | commit_hash:bb364319f046e3ac37acc5b6c15eb0a1c3858b02
* YQL-21132 Utf8 mark for nodesvvvv2026-04-211-0/+1
| | | | commit_hash:8ac0c3856497ba7aee3afa057d376ea72f210db5
* YQL-21105 capture poly args during discovery of UDFvvvv2026-04-154-5/+61
| | | | commit_hash:17dd1b0e35654280ba5695c037baef93bcbb06a5
* YQL-20095: Enable readability-isolate-declarationvitya-smirnov2026-04-131-1/+2
| | | | commit_hash:c180c2db4897962cb70063ffdc2ddcd21e5e3418
* YQL-20095: Enable readability-container-data-pointervitya-smirnov2026-04-082-2/+2
| | | | commit_hash:6bd18cff912ed7cc4b2bedd531c80cc43bdcd584
* YQL-20095: Enable modernize-use-designated-initializersvitya-smirnov2026-03-172-6/+9
| | | | | https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-designated-initializers.html commit_hash:d73eb463c7bec2bda4c362aab10af49979a7ddd3
* YQL-20095: Apply lost Clang Tidy fixesvitya-smirnov2026-03-052-10/+10
| | | | | | | I do not known why, but these Clang Tidy fixes was lost. Maybe this is because of conditional preprocessing. Maybe Clang Tidy is ran only on changed sources. commit_hash:718e5487699b21b643ed90729ce8347c84cbd6ee
* YQL-20095: Enable modernize-use-nullptrvitya-smirnov2026-03-041-2/+2
| | | | commit_hash:a504ad9d540aa714c550320e0ce20f9eb8bd17cf
* YQL-20095: Enable modernize-use-usingvitya-smirnov2026-03-045-16/+16
| | | | commit_hash:ea1f0987ec40e3e683c35bffb64b7f5ab35e73ed
* YQL-20095: Enable modernize-use-bool-literalsvitya-smirnov2026-03-031-1/+1
| | | | commit_hash:05fdc8e01569c5d74e2840a310ed1f7a34b72374
* YQL-20095: Enable modernize-pass-by-valuevitya-smirnov2026-03-024-9/+15
| | | | commit_hash:4939dfad654f18bb31e40711ee0c39063889f17b
* YQL-20095: Enable modernize-loop-convertvitya-smirnov2026-02-272-8/+8
| | | | | | | | - 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-20976: Specify invariants on unsuccessfull extraction of some methodsatarasov52026-02-215-6/+136
| | | | commit_hash:ded61446e96c98e6f8366f994fdf704248b4359e
* Fix unaligned read of decimal in udf valueatarasov52026-02-202-8/+9
| | | | commit_hash:f02a726109cb7e686c6edf0848485c7ed8c85ce9
* YQL-20095: Enable modernize-avoid-c-arraysvitya-smirnov2026-02-197-15/+18
| | | | commit_hash:da491ee93c4f4d3c885c7908a22b4d5d66c80388
* YQL-20095: Enable modernize-concat-nested-namespacesvitya-smirnov2026-02-1755-242/+106
| | | | commit_hash:2c0e0389bf5eca0c8334d55143674a8acf94a88d
* Refactor time validation in various placesaneporada2026-02-101-0/+5
| | | | commit_hash:cb1ca76810602921536a9b184f4386955778a3dc
* Add support for tzdate/bigtzdate native typesaneporada2026-02-051-0/+69
| | | | commit_hash:8563c1803eac0b59ea849c96cb65d441429dd2db
* YQL-20095: Enable misc-use-anonymous-namespacevitya-smirnov2026-02-051-2/+6
| | | | | - https://clang.llvm.org/extra/clang-tidy/checks/misc/use-anonymous-namespace.html commit_hash:746be9b9db256111b2fb6ab4d89844746deebcda
* YQL-20095: Enable misc-redundant-expressionvitya-smirnov2026-02-021-0/+1
| | | | | - https://clang.llvm.org/extra/clang-tidy/checks/misc/redundant-expression.html commit_hash:eb365e8e841251ac378b8dbb0d0f9456c8b52361
* YQL-20095: Enable some hicpp checksvitya-smirnov2026-01-301-18/+22
| | | | | | - https://clang.llvm.org/extra/clang-tidy/checks/hicpp/exception-baseclass.html - https://clang.llvm.org/extra/clang-tidy/checks/hicpp/multiway-paths-covered.html commit_hash:d1e41cca7d2fd5612d559cf1f3c9f8253e8eaf0e
* YQL-20095: Enable google-explicit-constructorvitya-smirnov2026-01-2315-25/+53
| | | | commit_hash:4d77ad10fd4db303459ec4e45e139967c7fc8196
* Provide better static assertsatarasov52026-01-211-5/+2
| | | | commit_hash:9f3913b67b411e3abea57f47cdcb5e051500ea5c
* YQL-20339 Runtime linear checker for completnessvvvv2026-01-153-22/+43
| | | | commit_hash:a658f838fc20285c856e5a09b7185de4d1e380e6
* YQL-20095: Enable modernize-use-overridevitya-smirnov2026-01-132-2/+2
| | | | | | | | | | | | | | | | | | | 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-20086: Enable arcadia and bugprone checksvitya-smirnov2025-11-253-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-20086: Add yql/essentials Clang Tidy configvitya-smirnov2025-11-213-8/+9
| | | | | | | | | 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-19673: Realizationmrlolthe1st2025-11-021-0/+41
| | | | commit_hash:68fcce49bf7355e49569a96ff7ad2faa537c563e
* Fix wrong macro usage.atarasov52025-10-271-4/+8
| | | | commit_hash:df235df791d200b3ed85571573996abec3db2727
* YQL-20525: enable computation moduleatarasov52025-10-161-1/+3
| | | | commit_hash:dc45bfa0a35715e0efefa8b3584b2057969083fe
* YQL-20086 invert flagvvvv2025-10-108-16/+0
| | | | commit_hash:a6b640bc576263b62884a0b4187ba79c893e13d9
* YQL-20425: Fix UBSanatarasov52025-10-101-1/+1
| | | | commit_hash:542a9c3e054146d270700a469d6ba81b5022e539
* YQL-20350: Fix singular typesatarasov52025-10-097-19/+91
| | | | commit_hash:b776960a1c683287ff0b5b23d95b2d48b0edccb5
* Purge unused methodatarasov52025-10-092-15/+0
| | | | commit_hash:6da8e6f40f78cb66bd622a9111e58b8d60898e5e