def execute(self, table, tree): super().execute(table, tree) result_name = self.name.execute(table, tree) result_new_name = self.new_name.execute(table, tree) result = alterDatabase(result_name, result_new_name) if result == 1: # log error on operation return False elif result == 2: # log error, old database name does not exists return False elif result == 3: # log error, new database name already exists return False else: return True
def execute(self, table: SymbolTable, tree): super().execute(table, tree) result = alterDatabase(self.name, self.new_name) if result == 1: raise Error(0, 0, ErrorType.RUNTIME, '5800: system_error') elif result == 2: raise Error(0, 0, ErrorType.RUNTIME, '42P04: old_database_does_not_exists') elif result == 3: raise Error(0, 0, ErrorType.RUNTIME, '42P04: new_database_already_exists') else: old_symbol = table.get(self.name, SymbolType.DATABASE) old_symbol.name = self.new_name table.update(old_symbol) return "You renamed table " + str(self.name) + " to " + str( self.new_name)
def ejecutar(self): global resultadotxt global cont global tabla try: if self.alterdb2.iden != "" and self.alterdb2.alterdb3.iden != "": resultado = func.alterDatabase(self.alterdb2.iden, self.alterdb2.alterdb3.iden) if resultado == 2: resultadotxt += "No existe la base de datos: " + self.alterdb2.iden + "\n" if resultado == 3: resultadotxt += "Ya existe la base de datos: " + self.alterdb2.alterdb3.iden + "\n" else: resultadotxt += "Se actualizo la base de datos: " + self.alterdb2.iden + " a " + self.alterdb2.alterdb3.iden + "\n" buscar = tabla.BuscarNombre(self.alterdb2.iden) buscar.valor = self.alterdb2.alterdb3.iden tabla.actualizar(buscar) except: """ERROR SEMANTICO"""
def ejecutar(self): global resultadotxt global cont global tabla contador = 0 try: resultado = func.alterDatabase(self.alterdb2.iden, self.alterdb2.alterdb3.iden) if(resultado == 2): resultadotxt += "No existe la base de datos: " + self.alterdb2.iden + "\n" if(resultado == 3): resultadotxt += "Ya existe la base de datos: " + self.alterdb2.alterdb3.iden + "\n" else: resultadotxt += "Se actualizo la base de datos: " + self.alterdb2.iden + " a " + self.alterdb2.alterdb3.iden + "\n" buscar = tabla.obtener(self.alterdb2.iden) buscar.valor = self.alterdb2.alterdb3.iden tabla.actualizar(buscar) except: """ERROR SEMANTICO"""
def ejecutar(self, tabalSimbolos, listaErrores): bandera = tabalSimbolos.comprobarNombreBaseDatos(self.nombre) if bandera == 0: #Nombre no existe errorEnviar = errorReportar.ErrorReportar(self.fila,self.columna,"Ejecucion","No existe la base de datos :" + self.nombre) listaErrores.append(errorEnviar) return elif bandera == 1: #Nombre si existe, hacer alter baseDatos = tabalSimbolos.obtenerBaseDatos(self.nombre) nodoAlter = self.instrucciones if nodoAlter[0].nombreNodo == "RENAME": repetido = tabalSimbolos.comprobarNombreBaseDatos(nodoAlter[1].valor) if repetido == 0: respuesta = jsonMode.alterDatabase(self.nombre,nodoAlter[1].valor) if respuesta == 0: baseDatos.setearNombre(nodoAlter[1].valor) elif respuesta == 1: errorEnviar = errorReportar.ErrorReportar(self.fila,self.columna,"Ejecucion","error en la operación") listaErrores.append(errorEnviar) return elif respuesta == 2: errorEnviar = errorReportar.ErrorReportar(self.fila,self.columna,"Ejecucion","databaseOld no existente") listaErrores.append(errorEnviar) return elif respuesta == 3: errorEnviar = errorReportar.ErrorReportar(self.fila,self.columna,"Ejecucion","databaseNew existente") listaErrores.append(errorEnviar) return elif repetido == 1: errorEnviar = errorReportar.ErrorReportar(self.fila,self.columna,"Ejecucion","Error 42P04, ya existe la base de datos :" + nodoAlter[1].valor) listaErrores.append(errorEnviar) return elif nodoAlter[0].nombreNodo == "OWNER": baseDatos.setearPropietario(nodoAlter[1].valor) pass