LLVM适用场景与限制
-
查询语句中存在以下的表达式支持LLVM优化:
- Case…when… 表达式
- In表达式
- BooleanTest表达式(IS_NOT_KNOWN/IS_UNKNOWN/IS_TRUE/IS_NOT_TRUE/IS_FALSE/IS_NOT_FALSE)
- NullTest表达式(IS_NOT_NULL/IS_NULL)
- Operator表达式
- Function表达式(lpad,substring,btrim,rtrim,length)
- Nullif表达式
仅当表达式出现在向量化执行引擎中Scan节点的filter、Hash Join节点中的complicate hash condition、hash join filter、hash join target,Nested Loop节点中的filter、join filter,Merge Join节点的merge join filter、merge join target,Group节点中的filter表达式时,才会考虑是否使用LLVM动态编译优化。
非适用场景
- 不支持小数据量表使用LLVM动态编译优化。
- 不支持生成非向量化执行路径的查询作业。