Esempio n. 1
0
    def process(self, instruction):
        typeChecker = TypeChecker()
        nombreTabla = self._table_name.alias
        noCols = self.numberOfColumns(self._column_list)

        resTab = typeChecker.createTable(nombreTabla, noCols, 0,
                                         0)  # TODO add line and column

        # Si devuelve None es porque ya existe la tabla
        if resTab == None:
            return

        # Agrega las propiedades que agrupan a varias columnas
        self.generetaExtraProp()
        # Genera las tablas ya con todas sus propiedades
        self.generateColumns(nombreTabla, typeChecker)

        # Si tiene inherits la manoseamos
        if self._inherits_from != None:
            self.addInherits(nombreTabla, self._inherits_from)

        # Si ocurrio algun error en todo el proceso mato la tabla
        if self._can_create_flag == False:
            typeChecker.deleteTable(nombreTabla, 0, 0)
            return

        # Verifico si tiene llave primaria la tabla o si le meto una escondida
        # if self.existsPK(nombreTabla) == 0:
        #     self.generateHiddenPK(nombreTabla)

        # Agrego llaves primarias a la base de datos si no hubo clavo con la tabla
        self.addPKToDB(nombreTabla)
Esempio n. 2
0
    def process(self, instrucction):
        typeChecker = TypeChecker()
        database = None  # TODO Obtener desde la tabla de simbolos

        if not database:
            desc = f": Database not selected"
            ErrorController().addExecutionError(4, 'Execution', desc,
                                                self._noLine, self._noColumn)
            return

        typeChecker.deleteTable(database, self._table_name,
                                self._noLine, self._noColumn)
Esempio n. 3
0
 def process(self, instrucction):
     typeChecker = TypeChecker()
     typeChecker.deleteTable(self._table_name, self._noLine, self._noColumn)