iidec / Integra.Space.Language-upstream

Lenguaje de consulta que permite el acceso a datos en tiempo real
0 stars 0 forks source link

Re-utilización del generador de código para consultas sobre DbSets #29

Closed OscarCanek closed 7 years ago

OscarCanek commented 8 years ago

Actualmente el generador de código se utiliza para crear el assembly de las consultas sobre flujos de eventos. La propuesta consiste en utilizar ese mismo generador para compilar las consultas sobre la metadata de los objetos del sistema, que esta almacenada en una base de datos y se accede a ella a través de un DbSet.

Hasta el momento se detectan los siguientes cambios al generador de código:

A esto se le tiene que sumar la parte de crear las clases que generan el plan de ejecución ya que actualmente se hacen transformaciones que no son necesarias en una consulta a un DbSet.

OscarCanek commented 8 years ago

También el acceso a propiedades cambia: ya no se utiliza la notación de acceso a propiedades de eventos, ahora cada identificador especificado representa una propiedad del DbSet especificado. Por lo tanto, por cada identificador se debe agregar un nodo FromForLambda seguido de un nodo Property con el nombre especificado para asi poder obtener los valores de las propiedades de los DbSet.

OscarCanek commented 8 years ago

Para agregar el join hay que hacer cambios en el proceso de transformación del árbol ya en algunas partes del proceso de transformación se utiliza tipo de nodo Event que en este paradigma no se utiliza porque no se esta trabajando con eventos.

OscarCanek commented 8 years ago

El lock y unlock de eventos también es otro proceso que tiene que descartarse.

OscarCanek commented 8 years ago

Actualmente ya es posible hacer consultas que contengan las siguientes secciones:

Donde las sentencias Where y Order by son opcionales.

OscarCanek commented 7 years ago

Este issue será cubierto por la implementación de la relación entre de fuentes tipadas y streams con into debido a que al tener eso se puede parametrizar la entrada de los streams al tipo del modelo creado en entity framework que en forma mas abstracta puede ser cualquier tipo especificado.

OscarCanek commented 7 years ago

Este issue se relaciona con el issues #55 y #52 debido a que los cambios realizados para enlazar las fuentes con los flujos de eventos, ademas de la creación de tipos a partir de la estructura de fuentes, hacen que este issue se resolviera ya que ahora que el tipo entrante de los streams se obtiene en tiempo de compilación y ahora el acceso a las propiedades se hace únicamente con identificadores (ya que @event se eliminó de la gramática).

Imagen de una prueba unitaria