Fix multiple subquery bug
Запрос
SELECT t1."id" FROM "testing_space" as t1 join
(select "id" as "r_id" from "testing_space") as t2
on t1."id" = t2."r_id"
and t1."name" = (select "name" from "testing_space" where "id" = 1)
падает, т.к. после трансформаций от переписывается в (t1."id", t1."name") = (t2."r_id", (select "name" from "testing_space" where "id" = 1))
. Проблема в том, что в строке (t1."id", t1."name")
первая колонка ссылается на подзапрос (select "id" as "r_id" from "testing_space") as t2
, а вторая - на (select "name" from "testing_space" where "id" = 1)
. Это нормально, но в коде метода плана get_sub_query_from_row_node()
есть проверка, что строка может ссылаться только на один подзапрос. Нужно научить ее работать с несколькими подзапросами в строке.
query([[SELECT t1."id" FROM "testing_space" as t1 join (select "id" as "r_id" from "testing_space") as t2 on t1."id" = t2."r_id" and t1."name" = (select "name" from "testing_space" where "id" = 1)]])
Edited by Alexey Protsenko