ast_fuzzer_* 세션 설정
ast_fuzzer_* 세션 설정
이 설정들은 ClickHouse 서버 측 AST 퍼저(fuzzer)의 동작을 제어해요. 주로 질의 분석기·최적화기를 테스트하는 데 사용해요. ClickHouse 소스 코드에서 자동으로 생성된 세션 설정 문서예요.
출처: 문서
본문
이 설정들은 system.settings에서 사용할 수 있으며 소스 코드에서 자동으로 생성돼요.
ast_fuzzer_any_query
false(기본값)이면 서버 측 AST 퍼저(ast_fuzzer_runs로 제어)는 읽기 전용 쿼리(SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS)만 퍼징해요. true이면 DDL과 INSERT를 포함한 모든 쿼리 유형이 퍼징돼요.
ast_fuzzer_oracle
ast_fuzzer_runs와 함께 활성화하면, 성공적으로 실행된 퍼징된 SELECT 쿼리에 일련의 정확성 오라클(correctness oracle) 검사를 적용해요: TLP WHERE/DISTINCT/GROUP BY/HAVING/Aggregate, NoREC, DQP(개별 최적화기 설정 토글), Identity WHERE, Subquery wrap. 불일치가 있으면 AST_FUZZER_ORACLE_MISMATCH 예외가 발생해요.
ast_fuzzer_runs
각 일반 쿼리 후 랜덤화된 쿼리를 실행하고 결과를 버리는 서버 측 AST 퍼저를 활성화해요.
- 0: 비활성화(기본값).
- 0과 1 사이(배타적)의 값: 단일 퍼징 쿼리를 실행할 확률.
- 1 이상의 값: 일반 쿼리당 실행할 퍼징 쿼리 수.
퍼저는 모든 세션의 모든 쿼리에서 AST 조각을 누적해 시간이 지남에 따라 점점 더 흥미로운 변형을 만들어내요. 실패한 퍼징 쿼리는 조용히 버려지며, 결과는 절대 클라이언트에 반환되지 않아요.