AST is too big. Maximum: 500000 處理

weixin_34162695發表於2018-11-05

當操作CLICKHOUSE時,出現以下錯誤。

<Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 168, e.displayText() = DB::Exception: AST is too big. Maximum: 500000: (after expansion of aliases), e.what() = DB::Exception, Stack trace:

需要設定max_ast_elements及max_expanded_ast_elements

max_ast_elements:
Maximum number of elements in a query syntactic tree. If exceeded, an exception is thrown. In the same way as the previous setting, it is checked only after parsing the query. By default, 10,000.
查詢語法樹中的最大元素數。 如果超出,則丟擲異常。 與先前設定相同,僅在解析查詢後進行檢查。 預設情況下,10,000。

max_expanded_ast_elements
在遞迴擴充套件別名後,對AST大小新增了max_expanded_ast_elements限制。(新加的一個屬性)

再user.xml 新增
<max_ast_elements>10000000</max_ast_elements>
<max_expanded_ast_elements>10000000</max_expanded_ast_elements>

就可以解決這個問題。

相關文章