Skip to content

v0.7.0

@birdnamoo birdnamoo tagged this 19 Jul 08:25
IyuStringSearchBinder가 SearchTermNode가 아닌 노드를 만나면 항상-false 식을
반환했다. 다중 단어 검색은 OData가 암묵 AND(BinaryOperatorNode)로 파싱하므로
이 분기에 걸려 HTTP 200 + 0건이 되었다. EF Core가 항상-false를 보고 DB 왕복을
생략하므로 SQL 로그조차 남지 않는다 — 소비앱은 에러를 감지할 수 없고
사용자에게는 "검색 결과 없음"으로 위장된다(400보다 나쁜 무음 실패).

- SearchClause.Expression을 재귀 순회: term / AND / OR / NOT 결합
- 공유 ParameterExpression 위에 body를 조립하고 lambda는 최상위에서 1회만
  감싼다(노드마다 lambda를 중첩하면 EF 번역 불가)
- 미지원 노드는 보수적으로 false 유지(OData 4.01 $search 문법상 도달 불가)
- XML 주석 정정: 기존 "raw composite text로 fallback"은 구현과 불일치했다
- 테스트 6종 추가 — 그 중 4종은 실제 ODataUriParser를 통과시켜 프로덕션과
  동일한 노드 형태를 검증(손으로 만든 노드만으로는 형태 불일치를 못 잡는다)

발견: yesung-oms 126차 run C544 (dev /products 검색 "세계 골프" → 0건인데
"세계의 골프코스" 실재)
Assets 2
Loading