WiP. исправил FP в RefOveruse при использовании в запросе таблиц, которые являются ТЧ#1859
WiP. исправил FP в RefOveruse при использовании в запросе таблиц, которые являются ТЧ#1859ovcharenko-di wants to merge 1 commit into1c-syntax:developfrom
Conversation
добавил проверку на то, что источник данных является табличной частью
|
нужно проверить на сложных запросах, где псевдонимы таблиц могут повторяться (соединение с подзапросом, ВТ) |
|
|
||
| return this.dataSourceCollection.stream() | ||
| .filter(dataSource -> dataSource.getChild(0).getChildCount() > 2) | ||
| .anyMatch(dataSource -> dataSource.getChild(1).getChild(1).getText().matches(penultimateChildTableName)); |
There was a problem hiding this comment.
@ovcharenko-di возможно, стоит рассмотреть возможность предварительной подготовки доп.коллекции из dataSourceCollection
чтобы для каждого имя реквизита не выполнять повторный и ненужный поиск
dataSourceCollection.stream()
.filter(dataSource -> dataSource.getChild(0).getChildCount() > 2)
.anyMatch((dataSource -> dataSource.getChild(1).getChild(1))
например, отдельный список нужных детей
| var penultimateChildTable = ctx.getChild(0); | ||
| var penultimateChildTableName = penultimateChildTable.getText(); | ||
|
|
||
| return this.dataSourceCollection.stream() |
|
@ovcharenko-di а вообще без обращения к метаданным сложно отличить табличную часть от виртуальной таблицы например. можно заложить на скобки вирт.таблицы |
|
Хотя новый парсер умеет определять имена вирт.таблиц |
|
В девелоп залит новый парсер запросов. Прошу ребэйзнуть и проверить работоспособность |
|
/rebase |
Описание
добавил проверку на то, что источник данных является табличной частью
Связанные задачи
Closes #1800
Чеклист
Общие
gradlew precommit)Для диагностик
Дополнительно
реализация сделана "в лоб", поэтому надо бы придумать еще тест-кейсов