我将尝试解释发生在我身上的事情,而不是粘贴我的每一段代码,因为它很多。
如果我单独运行此查询,它将返回 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 风格进行编码,所以我有测试来证明正确的行为,而且我很高兴它会起作用
谢谢