Ingin tahu apakah mungkin untuk keluar dari operator pengurangan dengan cepat. Contoh kasus penggunaan:
Saya memiliki tabel di mana satu kolom adalah array bigint, dan saya ingin mengembalikan semua kolom yang besarnya arraynya kurang dari katakanlah 1000. Jadi saya bisa menulis
select
*
from table
where reduce(array_col, 0, (s,x) -> s + power(x,2), s -> if(s < power(1000,2), TRUE, FALSE))
namun jika barisnya banyak dan arraynya besar, hal ini dapat memakan waktu cukup lama. Saya ingin operator memutus dan mengembalikan FALSE segera setelah jumlahnya melebihi 1000. Saat ini saya punya:
select
*
from table
where reduce(array_col, 0, if(s >= power(1000,2), power(1000,2), s + power(x,2), s -> if(s < power(1000,2), TRUE, FALSE))
yang setidaknya menghemat beberapa komputasi setelah jumlahnya melebihi nilai target, namun masih harus melakukan iterasi melalui setiap elemen array.