Estos ajustes están disponibles en system.settings y se generan automáticamente a partir del código fuente.
aggregate_function_input_format
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.12 | state | Nueva configuración para controlar el formato de entrada de AggregateFunction durante las operaciones INSERT. El valor de la configuración se establece en `state` de forma predeterminada |
Formato de la entrada de AggregateFunction durante las operaciones INSERT.
Valores posibles:
state— Cadena binaria con el estado serializado (valor predeterminado). Este es el comportamiento predeterminado, en el que se espera que los valores de AggregateFunction sean datos binarios.value— El formato espera un único valor del argumento de la función de agregación o, en caso de varios argumentos, una tupla con ellos. Se deserializarán mediante el IDataType correspondiente o DataTypeTuple y luego se agregarán para formar el estado.array— El formato espera un Array de valores, como se describe en la opciónvalueanterior. Todos los elementos del array se agregarán para formar el estado.
Ejemplos
Para una tabla con la estructura:
CREATE TABLE example (
user_id UInt64,
avg_session_length AggregateFunction(avg, UInt32)
);Con aggregate_function_input_format = 'value':
INSERT INTO example FORMAT CSV
123,456Con aggregate_function_input_format = 'array':
INSERT INTO example FORMAT CSV
123,"[456,789,101]"Nota: los formatos value y array son más lentos que el formato state predeterminado, ya que requieren crear y agregar valores durante la inserción.
aggregate_functions_null_for_empty
Activa o desactiva la reescritura de todas las funciones de agregación de una consulta, añadiéndoles el sufijo -OrNull. Actívelo para garantizar la compatibilidad con el estándar SQL. Se implementa mediante la reescritura de consultas (de forma similar a la configuración count_distinct_implementation) para obtener resultados coherentes en las consultas distribuidas.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
Ejemplo
Considere la siguiente consulta con funciones de agregación:
SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;Con aggregate_functions_null_for_empty = 0 se obtendría:
┌─SUM(-1)─┬─MAX(0)─┐
│ 0 │ 0 │
└─────────┴────────┘Con aggregate_functions_null_for_empty = 1, el resultado sería:
┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│ NULL │ NULL │
└───────────────┴──────────────┘