Я попытаюсь объяснить, что случилось со мной, не вставляя каждый отдельный фрагмент моего кода, потому что это много.
Если я запускаю этот запрос один, он возвращает 6.0 (ожидаемое поведение)
select distancia_euclediana_para_imagenes(vector_cuadrante1,
vector_cuadrante2,
vector_cuadrante3,
vector_cuadrante4,
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)])
from imagen,pivotes
where id=id_imagen and indice_pivote=2
, и если я запускаю этот другой запрос, он возвращает 2 (снова ожидаемое поведение)
with distancia_a_pivote(distancia) as
(select distancia_euclediana_para_imagenes(vector_cuadrante1,
vector_cuadrante2,
vector_cuadrante3,
vector_cuadrante4,
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)])
from imagen,pivotes
where id=id_imagen and indice_pivote=2)
select id from imagen, indice, distancia_a_pivote d
where id=id_imagen and
fqa[2]>= 6-1 and
fqa[2]<= d.distancia+1;
Однако, с этим небольшим изменением он перестает работать и ничего не возвращает
with distancia_a_pivote(distancia) as
(select distancia_euclediana_para_imagenes(vector_cuadrante1,
vector_cuadrante2,
vector_cuadrante3,
vector_cuadrante4,
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)],
ARRAY[SQRT(8),SQRT(8)])
from imagen,pivotes
where id=id_imagen and indice_pivote=2)
select id from imagen, indice, distancia_a_pivote d
where id=id_imagen and
fqa[2]>= d.distancia-1 and
fqa[2]<= d.distancia+1;
Буду благодарен, если вы поможете мне, потому что я понятия не имею, что может вызвать эту проблему.Кроме того, я программировал в стиле TDD, поэтому у меня есть тесты, чтобы доказать правильное поведение, и я был очень доволен, что это сработает
Спасибо