Beispiel #1
0
    def ruta_SelectSimple(self, entorno: Tabla_de_simbolos, arbol:Arbol):
        print("[Select] ruta_SelectSimple (Go on)")
        V_TablaSelect = Valor(TIPO.MATRIZ, "TablaSelect")
        for i in self.listatablas:
            if i.tipo == IAT.SUBQUERY:
                self.virtualizar_tabla_subquery(i, entorno, arbol)
            else:
                self.virtualizar_tabla(i, entorno, arbol)

        # ------------------
        j = 0
        for i in self.listavalores:
            if self.obtener_multi(i, entorno, arbol, j):
                break
            j = j + 1
        # ------------------

        V_TablaSelect.inicializarMatrix_boring(self.tamFilaTablaSelect, len(self.listavalores))
        index = 0
        for i in self.listavalores:
            lista:list = self.obtener_columnas(i, entorno, arbol)
            for m in range(len(lista)):
                V_TablaSelect.matriz[m][index] = lista[m]
            index = index + 1
        self.TablaSelect = V_TablaSelect
        arbol.console.append("\n" + self.consolaInterna + self.TablaSelect.inicializarPrettybabe() + "\n")
        return self.TablaSelect
Beispiel #2
0
    def ruta_SelectComplejo(self, entorno: Tabla_de_simbolos, arbol: Arbol):
        print("[Select] ruta_SelectComplejo (Go on)")
        V_TablaSelect = Valor(TIPO.MATRIZ, "TablaSelect")
        for i in self.listatablas:
            self.virtualizar_tabla(i, entorno, arbol)

        # ------------------
        j = 0
        for i in self.listavalores:
            if self.obtener_multi(i, entorno, arbol, j):
                break
            j = j + 1
        # ------------------

        V_TablaSelect.inicializarMatrix_boring(self.tamFilaTablaSelect, len(self.listavalores))
        index = 0
        for i in self.listavalores:
            lista: list = self.obtener_columnas(i, entorno, arbol)
            for m in range(len(lista)):
                V_TablaSelect.matriz[m][index] = lista[m]
            index = index + 1
        self.TablaSelect = V_TablaSelect
        # ----------------------------------------------------------------------------------
        TablaSe:Simbolo = Simbolo("TablaResult", 0, self.TablaSelect)
        entorno.insertar_variable(TablaSe)
        for i in self.listawhere:
            i.execute(entorno, arbol)