Skip to content

PD-4235:При отправке локального фильтра по дате (календарь с периодом) в ответе ошибка 500

Evgeniy Shishin requested to merge PD-4235 into master

Проблема в том, что когда приходит фильтр с child, в MakeAllFiltersDeep() в слайсе allFiltersWithTableName поле Name у фильтра равно пустой строке (https://polygit.polymatica.ru/golibs/cache-connector/-/blob/master/abstract-sql-builder/filter.go#L83). Это происходит из-за того что в setTableName() создаётся слайс filtersWithTableName (https://polygit.polymatica.ru/golibs/cache-connector/-/blob/master/abstract-sql-builder/filter.go#L159), куда сначала кладётся родительский фильтр с путым Name, а потом его child с непустым Name. Но т.к. функция рекурсивная - возвращаются эти значания из её стека в обратном порядке: сначала непустой child, потом пустой parent.

Решил передачей слайса filtersWithTableName извне по указателю, без создания внутри рекурсивной функции. Не знаю насколько красиво.

Merge request reports

Loading