Introdução ao intérprete das notas de leitura do código fonte do ClickHouse (2)

Introdução ao intérprete das notas de leitura do código fonte do ClickHouse (2)

Interpreter é a camada de interface para consultas diferentes.Todas as execuções SQL chamam a função execute.Esta função é uma função virtual pura na classe IInterpreter.O executeQuery específico a ser chamado depende do objeto instanciado.

Os arquivos relacionados ao intérprete estão no diretório dbms / src / Interpreters /.

A função execute na classe IInterpreter é apresentada da seguinte maneira:

/ ** Para consultas que retornam um resultado (SELECT e similar), define no BlockIO um fluxo a partir do qual você pode ler este resultado. 

Para SELECT e solicitações de consulta semelhantes que precisam retornar resultados, o lado do servidor coloca os resultados no fluxo de dados do BlockIO e o lado do cliente lê no fluxo de dados do BlockIO.
* Para consultas que recebem dados (INSERT), define um segmento no BlockIO onde você pode gravar dados.

Para solicitações como INSERT que precisam gravar dados, crie um encadeamento no BlockIO no lado do servidor e escreva no lado do cliente.
* Para consultas que não exigem dados e não retornam nada, o BlockIO estará vazio.

Para solicitações que não precisam gravar dados ou retornar resultados, o BlockIO está vazio.
* /
virtual BlockIO execute () = 0;

 

Todas as classes derivadas da classe IInterpreter, o diagrama de classes é mostrado abaixo, o tipo de solicitação processada pode ser claramente visto através do nome da classe e não será repetido aqui.

O próximo artigo apresentará a consulta de seleção em detalhes, que será continuada. . .

Acho que você gosta

Origin www.cnblogs.com/snake-fly/p/12710119.html
Recomendado
Clasificación