Beispiel #1
0
 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
Beispiel #2
0
 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)
Beispiel #3
0
 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"""
Beispiel #4
0
 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"""
Beispiel #5
0
 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