| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
commit_hash:2ae25879e9456a1d5852378b7fe0b16d7e6791a5
|
| |
|
|
| |
commit_hash:feaa364ef3d3f71bfa70a7d64e2cc6e3854d79a5
|
| |
|
|
| |
commit_hash:e420d2d62e3a77af79abbec946f1008c1fa359c6
|
| |
|
|
| |
commit_hash:16513c3f8da40e92c22e497694140f1c1584fb3f
|
| |
|
|
| |
commit_hash:219fd39fdf18274a37159c9ceb640dd82357f493
|
| |
|
|
| |
commit_hash:5a7847c000c3e5ec4cadf6880184d3eebb26d3b1
|
| |
|
|
| |
commit_hash:b3d7609795f9aeaaafe9cb65dbb2c6460582a4ec
|
| |
|
|
| |
commit_hash:8734b1a0721f4defbb881e2e9b0d990f64e9a2ad
|
| |
|
|
| |
commit_hash:e97cd58d9cd5b896371d7d79495554fb800a6c23
|
| |
|
|
| |
commit_hash:9ae3e629c03527ac6f4bdfbb3fe6a3394f006eda
|
| |
|
|
| |
commit_hash:26b6bc3091189590aad066d949eeb170b8a43e94
|
| |
|
|
| |
commit_hash:9589937209af8e742c0c6401bd1c232f073856bf
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:c180c2db4897962cb70063ffdc2ddcd21e5e3418
|
| |
|
|
| |
commit_hash:cf2cfa1c2c53a2b99b4406d4ed29e70a3ceab16b
|
| |
|
|
| |
commit_hash:464a95fd6de1a395f8ffe20092e837df995e623c
|
| |
|
|
| |
commit_hash:8c898c65c0bdf92423256a1e752b13cc3ffd364a
|
| |
|
|
|
| |
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-designated-initializers.html
commit_hash:d73eb463c7bec2bda4c362aab10af49979a7ddd3
|
| |
|
|
| |
commit_hash:a511b90dbd2eadcf32cc5d75130da6c9d4efaa52
|
| |
|
|
| |
commit_hash:4d77ad10fd4db303459ec4e45e139967c7fc8196
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
Then I will remove an `Antlr4Parser` usages from the YDB.
commit_hash:0183482e46de023f71698e03db9a0c51ef10fe98
|
| |
|
|
| |
commit_hash:f6dfab4a7add0379cacefb943c702ae065750654
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:2248d808136868c425ce9ceb05681c37fd108bb8
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:40a9b2cb7a03d72a1d908bf5da773e6518b6123c
|
| |
|
|
| |
commit_hash:a6b640bc576263b62884a0b4187ba79c893e13d9
|
| |
|
|
| |
commit_hash:19bbcd26d46a4ca8d18f0dbae605b48ac823c614
|
| |
|
|
| |
commit_hash:55bc611cdaa0d8a0fc3c4c7708ed9f17cc4976cf
|
| |
|
|
|
|
| |
- Ignored 2 known ambiguities.
- Tested tools.
commit_hash:9e29bb2f876dabc68293b3e5c26a470d373506ae
|
| |
|
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
commit_hash:dba6cae7baee068a70013da4dc3377a10f2d4d22
|
| |
|
|
| |
commit_hash:05d53dee40119ad1d756d90775e6056fbebd99d2
|
| |
|
|
|
|
|
| |
Thet top-level source was always selected for
column inference, even when the cursor is at a
subquery.
commit_hash:c0eb00b98b23d52079aea5eb8d646887ff2fbbdd
|
| |
|
|
| |
commit_hash:3b74a89e67fd29fdced780847365861db726b687
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Добавлен синтаксис (переиспользован код для 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Fixed an absence of candidates at `$x = (sel#)`
as of `subselect_stmt` ignorance at the
`YQLConfiguration`.
commit_hash:5a841d63fad104599a791953f2f89b8791816115
|
| |
|
|
|
|
| |
- Collect only named node definitions
- Fix qualified column after WHERE
commit_hash:641977921329199e645c3ac45ae8053a5d0e8b13
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
| |
Before this PR unsupported objects were filtered,
but we would like to show even unsupported object
types as unknown name candidates.
commit_hash:04c64b6e28717c3c19927d49eeedec7515608c22
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
commit_hash:64ad6b4138ee27f474b440e8ef3e07fac1935346
|
| |
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
| |
commit_hash:c0ba1e1b769fc35ecc458fc556b00493f26f75d1
|
| |
|
|
|
|
|
|
|
| |
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
|