Introducción al intérprete de notas de lectura del código fuente de ClickHouse (2)

Introducción al intérprete de notas de lectura del código fuente de ClickHouse (2)

El intérprete es la capa de interfaz para diferentes consultas. Todas las ejecuciones de SQL llaman a la función de ejecución. Esta función es una función virtual pura en la clase IInterpreter. El executeQuery específico a invocar depende del objeto instanciado.

Los archivos relacionados con el intérprete se encuentran en el directorio dbms / src / Interpreters /.

La función de ejecución en la clase IInterpreter se presenta de la siguiente manera:

/ ** Para consultas que devuelven un resultado (SELECCIONAR y similar), establece en BlockIO una secuencia desde la que puede leer este resultado. 

Para solicitudes de consulta SELECT y similares que necesitan devolver resultados, el lado del servidor coloca los resultados en la secuencia de datos BlockIO, y el lado del cliente lee la secuencia de datos BlockIO.
* Para consultas que reciben datos (INSERT), establece un hilo en BlockIO donde puede escribir datos.

Para solicitudes como INSERT que necesitan escribir datos, cree un hilo en BlockIO en el lado del servidor y escriba en el lado del cliente.
* Para consultas que no requieren datos y no devuelven nada, BlockIO estará vacío.

Para las solicitudes que no necesitan escribir datos o devolver resultados, BlockIO está vacío.
* /
virtual BlockIO execute () = 0;

 

Todas las clases derivadas de la clase IInterpreter, el diagrama de clase se muestra a continuación, el tipo de solicitud procesada se puede ver claramente a través del nombre de la clase, y no se repetirá aquí.

El siguiente artículo presentará la consulta de selección en detalle, que continuará. . .

Supongo que te gusta

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