def ejecutar(self, tabla, arbol): super().ejecutar(tabla, arbol) if self.existe == 1: error = Excepcion( "42P01", "Semantico", "El indice " + str(self.id_indice) + " no existe", self.linea, self.columna) arbol.excepciones.append(error) arbol.consola.append(error.toString()) print('ERROR: tabla no existe') return error val = self.id_tabla.devolverTabla(tabla, arbol) objetoTabla = arbol.devolviendoTablaDeBase(val) # objetoTabla.lista_de_indices.remove(self.id_indice) for i in objetoTabla.lista_de_indices: # print("***", i.nombre.id) ind = Indice(i.nombre.id, "Indice") # print("---", ind.lRestricciones) # ind.lRestricciones.remove('id#[\'ASC\', \'NULLS LAST\']') for a in objetoTabla.lista_de_indices: if a.nombre.id == self.id_indice: a.nombre.id = ''
def ejecutar(self, tabla, arbol): super().ejecutar(tabla, arbol) val = self.idTabla.devolverTabla(tabla, arbol) if (val == 0): error = Excepcion( "42P01", "Semantico", "La tabla " + str(self.identificador.devolverId(tabla, arbol)) + " no existe", self.linea, self.columna) arbol.excepciones.append(error) arbol.consola.append(error.toString()) print('ERROR: tabla no existe') return error tablaIndex = extractTable(arbol.getBaseDatos(), val) arbol.setTablaActual(tablaIndex) columnas = arbol.devolverColumnasTabla(val) data = np.array((tablaIndex)) res = [] for x in range(0, len(columnas)): col = columnas[x].obtenerNombre() res.append(col) arbol.setColumnasActual(res) listaMods = [] if self.where: listaMods = self.where.ejecutar(tabla, arbol) for x in range(0, len(self.lcol)): var = self.lcol[x] objetoTabla = arbol.devolviendoTablaDeBase(val) try: for variable in var: if 'Identificador' in str(variable): idcol = variable.id if self.validar_columna(variable.id, res): if objetoTabla: for indices in objetoTabla.lista_de_indices: if indices.obtenerNombre == variable.id: error = Excepcion( '42P01', "Semántico", "el indice «" + variable.id + "» ya fue creado.", self.linea, self.columna) arbol.excepciones.append(error) arbol.consola.append(error.toString()) return error ind = Indice(self.idIndex, "Indice") tipo = '' # try: # if 'Identificador' in self.lcol[x+1]: # tipo = '' # print("===>", self.lcol[x+1]) # else: # print(">==>", self.lcol[x+1]) # tipo = self.lcol[x+1] # except : # pass ind.lRestricciones.append(variable.id + '#' + str(self.lcol[x])) if self.tipoIndex: ind.lRestricciones.append(self.tipoIndex) objetoTabla.lista_de_indices.append(ind) arbol.consola.append( "Indice agregado con la columna: " + variable.id) else: print( "La columna indicada no pertenece a la tabla: " + self.idTabla) except: if 'Identificador' in str(var): variable = var idcol = variable.id if self.validar_columna(variable.id, res): if objetoTabla: for indices in objetoTabla.lista_de_indices: if indices.obtenerNombre == variable.id: error = Excepcion( '42P01', "Semántico", "el indice «" + variable.id + "» ya fue creado.", self.linea, self.columna) arbol.excepciones.append(error) arbol.consola.append(error.toString()) return error ind = Indice(self.idIndex, "Indice") tipo = '' try: if 'Identificador' in self.lcol[x + 1]: tipo = '' else: tipo = self.lcol[x + 1] except: pass ind.lRestricciones.append(variable.id + '#' + str(tipo)) if self.tipoIndex: ind.lRestricciones.append(self.tipoIndex) objetoTabla.lista_de_indices.append(ind) arbol.consola.append( "Indice agregado con la columna: " + variable.id) else: print("La columna indicada no pertenece a la tabla: " + self.idTabla)
def ejecutar(self, tabla, arbol): super().ejecutar(tabla, arbol) if self.existe == 1: error = Excepcion( "42P01", "Semantico", "El indice " + str(self.id_indice) + " no existe", self.linea, self.columna) arbol.excepciones.append(error) arbol.consola.append(error.toString()) print('ERROR: tabla no existe') return error # objetoTabla.lista_de_indices.remove(self.id_indice) print(type(self.columnaNew)) if type(self.columnaNew) == str: # print("*********************************") val = self.id_tabla.devolverTabla(tabla, arbol) objetoTabla = arbol.devolviendoTablaDeBase(val) for i in objetoTabla.lista_de_indices: ind = Indice(i.nombre.id, "Indice") # print("---", i.lRestricciones) # ind.lRestricciones.remove('id#[\'ASC\', \'NULLS LAST\']') consideraciones = str(i.lRestricciones).replace( "[", "").replace("'", "").replace("\"", "").replace("]", "").replace(",", "") column_index = consideraciones.split("#") # print(column_index[0], "<>", self.columnaOld) if column_index[ 0] == self.columnaOld and i.nombre.id == self.idIndex.id: i.lRestricciones = self.columnaNew + '#' + column_index[1] elif type(self.columnaNew) == int: # print("============================================") val = self.id_tabla.devolverTabla(tabla, arbol) objetoTabla = arbol.devolviendoTablaDeBase(val) iterador = self.columnaNew columna_a_cambiar = '' for i in objetoTabla.lista_de_campos: # print("*.", i.nombre) iterador = iterador - 1 if iterador == 0: columna_a_cambiar = i.nombre # print("+++++++++++++++++++++", columna_a_cambiar) for i in objetoTabla.lista_de_indices: ind = Indice(i.nombre.id, "Indice") # print("---", i.lRestricciones) # ind.lRestricciones.remove('id#[\'ASC\', \'NULLS LAST\']') consideraciones = str(i.lRestricciones).replace( "[", "").replace("'", "").replace("\"", "").replace("]", "").replace(",", "") column_index = consideraciones.split("#") # print(column_index[0], "<==>", self.columnaOld) if column_index[ 0] == self.columnaOld and i.nombre.id == self.idIndex.id: i.lRestricciones = columna_a_cambiar + '#' + column_index[1]