fix: некорретная сборка sql query для фильтров
Сделал компоновку фильтров по уровням, внутри которых их нужно собирать в группы. Для этого у фильтров было добавлено поле TableName. В фильтрах на каждом уровне всегда будет только 1 фильтр с Child и несколько фильтров c пустым Child
Было: (группировка не по уровням, а по таблицам)
SELECT count(*) FROM (SELECT ("public"."agg_ref"."code") AS "1", ("public"."agg_ref"."id") AS "2", ("public"."agg_ref"."name") AS "3", ("public"."agg_val"."ref_code") AS "4", ("public"."agg_val"."val") AS "5", ("public"."agg_val"."id") AS "6" FROM "public"."agg_ref" FULL OUTER JOIN "public"."agg_val" on "public"."agg_val"."id" = "public"."agg_ref"."id" WHERE ("public"."agg_ref"."name" = 'gr-3' OR ("public"."agg_ref"."id"::varchar ILIKE '%fb%' OR "public"."agg_ref"."name"::varchar ILIKE '%fb%') AND "public"."agg_val"."val" >= 4.000000 AND ("public"."agg_val"."id"::varchar ILIKE '%fb%'))) as s
Стало: (группировка по уровням)
SELECT count(*) FROM (SELECT ("public"."agg_ref"."code") AS "1", ("public"."agg_ref"."id") AS "2", ("public"."agg_ref"."name") AS "3", ("public"."agg_val"."ref_code") AS "4", ("public"."agg_val"."val") AS "5", ("public"."agg_val"."id") AS "6" FROM "public"."agg_ref" FULL OUTER JOIN "public"."agg_val" on "public"."agg_val"."id" = "public"."agg_ref"."id" WHERE ((("public"."agg_ref"."name" = 'gr-3' OR "public"."agg_val"."val" >= 4.000000) AND ("public"."agg_ref"."id"::varchar ILIKE '%fb%' OR "public"."agg_ref"."name"::varchar ILIKE '%fb%' OR "public"."agg_val"."id"::varchar ILIKE '%fb%')))) as s