Início rápido
Os exemplos deste guia executam
query() com o formato de saída CSV padrão. Os comentários inline mostram os valores lógicos do resultado; a saída bruta exibe NULL como \N e aplica delimitação CSV a valores de string e data (por exemplo, "Hello, world!").Métodos de registro
Decorador @func
__name__ da função se torna o nome da função SQL.
create_function
drop_function
Registrar um nome já registrado gera um erro — as UDFs não são substituídas silenciosamente. Primeiro, chame
drop_function(name) para registrar a função novamente, por exemplo, ao reexecutar uma célula de notebook.Sistema de tipos
Tipos disponíveis
chdb.sqltypes:
Especificando tipos
Inferência automática de tipos
arg_types ou return_type é omitido, o chDB infere os tipos com base nas anotações de tipo do Python:
Se
arg_types for fornecido explicitamente, ele deverá abranger todos os parâmetros — não há suporte para combinar parcialmente tipos explícitos e inferidos. Isso se aplica tanto a create_function quanto ao decorador @func: especifique os tipos de todos os parâmetros ou omita-os completamente e deixe o chDB inferi-los a partir das anotações.return_type for omitido e a função não tiver uma anotação de retorno, o registro falhará. Em contrapartida, os tipos dos argumentos são opcionais — um parâmetro sem tipo explícito nem anotação aceita dinamicamente qualquer tipo de entrada compatível.
Tratamento de NULL
on_null controla o comportamento quando qualquer argumento de entrada é NULL.
Você também pode usar o enum:
chdb.NullHandling.SKIP / chdb.NullHandling.PASS.
Exemplo: default (pular)
Exemplo: passar NULL como None
Exemplo: vários argumentos
Tratamento de exceções
on_error controla o comportamento quando a função Python lança uma exceção.
Você também pode usar o enum:
chdb.ExceptionHandling.PROPAGATE / chdb.ExceptionHandling.IGNORE.
Exemplo: default (propagar)
Exemplo: ignorar erros
Combinando o tratamento de NULL e exceções
on_null e on_error podem ser combinadas:
Suporte a DateTime e fuso horário
Tipo Date
DateTime com fusos horários
DateTime64 (alta precisão)
DATETIME64 tem escala 6 (microssegundos) por padrão:
- Os valores de entrada
DateTime/DateTime64incluem informações de fuso horário do ClickHouse - Os objetos
datetimede saída preservam as informações de fuso horário - A conversão de fuso horário é realizada automaticamente