SNR#3926 쿼리 엔진에 isnan, isinf 표현식 함수 추가

버전: 4.0.2609.0

쿼리에서 부동소수점 특수값을 판별하는 isnan, isinf 표현식 함수가 추가되었습니다.

log, sqrt, acos처럼 정의역이 있는 수학 함수는 정의역을 벗어난 값이 입력되면 NaN(Not-a-Number)이나 무한대(Infinity)를 반환합니다. 예를 들어 log(-1)은 NaN을, log(0)은 음의 무한대를 반환합니다. 이런 값은 별다른 표시 없이 쿼리 결과에 섞여 이후 집계나 다운로드 단계에서 예기치 않은 결과를 만들 수 있었습니다. (나눗셈은 분모가 0이면 결과를 null로 처리하므로 NaN이나 무한대를 만들지 않습니다.)

  • isnan(값): 값이 NaN이면 true, 아니면 false를 반환합니다.
  • isinf(값): 값이 양의 무한대 또는 음의 무한대이면 true, 아니면 false를 반환합니다.

두 함수 모두 인자를 1개 받으며, 정수·문자열·null 등 실수가 아닌 값과 유한한 실수에는 항상 false를 반환합니다. 기존 isnull, isnum 함수와 마찬가지로 결과가 항상 참/거짓으로 결정되며 null을 반환하지 않습니다. 인자를 지정하지 않으면 쿼리 파싱 오류가 발생합니다.

table sonar_events
| eval bad = isnan(log(value))
| search isinf(score)