これらの設定は system.settings で利用でき、ソースコード から自動生成されています。
aggregate_function_input_format
型
AggregateFunctionInputFormat
デフォルト値
state
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 25.12 | state | INSERT 操作中の AggregateFunction 入力フォーマットを制御するための新しい設定。設定値はデフォルトで state に設定されています |
INSERT 操作時の AggregateFunction 入力フォーマット。
設定可能な値:
state— シリアライズされた state を含むバイナリ文字列 (デフォルト) 。これがデフォルトの動作で、AggregateFunction の値はバイナリデータとして受け取られます。value— このフォーマットでは、集約関数の引数の単一の値、または引数が複数ある場合はそれらの Tuple を受け取ります。これらは対応する IDataType または DataTypeTuple を使ってデシリアライズされ、その後 state を形成するために集計されます。array— このフォーマットでは、上記のvalueオプションで説明した値の Array を受け取ります。Array 内のすべての要素が集計されて state が形成されます。
例
次の構造を持つテーブルに対して:
CREATE TABLE example (
user_id UInt64,
avg_session_length AggregateFunction(avg, UInt32)
);aggregate_function_input_format = 'value' の場合:
INSERT INTO example FORMAT CSV
123,456aggregate_function_input_format = 'array' の場合:
INSERT INTO example FORMAT CSV
123,"[456,789,101]"注: value および array フォーマットは、挿入時に値を生成して集約する必要があるため、デフォルトの state フォーマットよりも低速です。
aggregate_functions_null_for_empty
型
Bool
デフォルト値
0
クエリ内のすべての集約関数を -OrNull 接尾辞付きに書き換える機能を有効または無効にします。SQL標準互換性のために有効にしてください。 これは、一貫した結果を分散クエリで得るために、クエリの書き換え (count_distinct_implementation 設定と同様) によって実装されています。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
例
次の集約関数を含むクエリを考えてみましょう:
SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;aggregate_functions_null_for_empty = 0 の場合、次のような結果が得られます。
┌─SUM(-1)─┬─MAX(0)─┐
│ 0 │ 0 │
└─────────┴────────┘aggregate_functions_null_for_empty = 1 を 1 にすると、結果は次のようになります:
┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│ NULL │ NULL │
└───────────────┴──────────────┘