def execute(self, env): print("Se ejecutó la instrucción 'CREATE TABLE'") tableName = self.exp1.getValue(env) table = {} pkList = [] for attr in self.attributesList: for key in attr: if key == 'len': attr[key] = attr[key].getValue(env) elif key == 'pk': index = self.attributesList.index(attr) pkList.append(index) table[attr['id']] = attr symbol = (attr['id'], attr['type'], tableName) SymbolTable.add(symbol) result = createTable(env.currentDB, tableName, len(self.attributesList)) Console.add('CREATE TABLE: %s' % result) if (len(pkList) != 0): result = alterAddPK(env.currentDB, tableName, pkList) Console.add('ALTER ADD PK: %s' % result) env.addTable(env.currentDB, {tableName: table})
def execute(self, env): print("Se ejecutó la instrucción 'SELECT'") value = self.expression.getValue(env) col = self.getAsColumn(value) header = col[0] table = [col[1]] strTable = tabulate(table, headers=header, tablefmt="psql") Console.add(strTable)
def execute(self, env): #Se debe evaluar que tipo de DROP viene: DROP COLUMN, DROP CONSTRAINT if self.accion == 'COLUMN': print("Se ejecutó la instrucción 'ALTER TABLE DROP COLUMN'") resultado = alterDropColumn(env.currentDB, self.tabla.getValue(env), self.columnNumber.getValue(env)) Console.add(resultado) elif self.accion == 'CONSTRAINT': print("Se ejecutó un DROP CONSTRAINT")
def execute(self, env): print("Se ejecutó la instrucción 'ALTER TABLE ADD'") #Aqui se deben validar las acciones #Las acciones pueden ser #aqui se debe evaluar la acción relacionada al alter #Acciones: ADD CHECK, ADD CONSTRAINT, ADD FOREIGN KEY print("Se ejecutó una función ADD COLUMN.") resultado = alterAddColumn(env.currentDB, self.tabla.getValue(env), self.default.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'ALTER TABLE'") #aqui se debe evaluar la acción relacionada al alter #Acciones: RENAME SIMPLE O RENAME COLUMN if self.accion == 'COLUMN': print("Se ejecutó la función RENAME COLUMN") elif self.accion == 'TO': print("Se ejecutó la función RENAME TO") resultado = alterTable(env.currentDB, self.exp1.getValue(env), self.exp2.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'DELETE'") #Lista 'registros' de prueba, remplazarla por la tabla enviada del where registros = [[{ 'idusuario': { 'id': 'idusuario', 'type': 'integer', 'not_null': True, 'pk': True } }, { 'nombre': { 'id': 'nombre', 'type': 'string', 'not_null': True, 'pk': True } }, { 'direccion': { 'id': 'direccion', 'type': 'string', 'not_null': True, 'pk': False } }], [['1', 'Brayan', 'guate'], ['2', 'Glendy', 'guate'], ['3', 'otro', 'guate']]] listpk = [] #Lista de llave o llaves primarias de la tabla [0,1] cont = 0 for dicc1 in registros[0]: #accedemos a la lista for atributo, dicc2 in dicc1.items( ): #acedemos a cada clave del diccionario: idusuario, nombre, dirección for elem, valor in dicc2.items( ): #accedemos a cada clave y valor de cada diccionario: id,idusuario,type,integer... if (elem == 'pk' and valor == True): listpk.append(cont) cont = cont + 1 cont2 = 0 for elem in registros[1]: listdel = [] #Lista de llave o llaves a eliminar for elem2 in listpk: listdel.append(registros[1][cont2][elem2]) cont2 = cont2 + 1 resultado = delete(env.currentDB, self.tabla.getValue(env), listdel) #Funcion eleiminar Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'DROP DATABASE'") resultado = dropDatabase(self.expression.getValue(env)) #print(self.expression.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'TRUNCATE ó DELETE * FROM'") resultado = truncate(env.currentDB, self.tabla.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'DROP TABLE'") resultado = dropTable(env.currentDB, self.expression.getValue(env)) Console.add(resultado) Console.add(self.expression.getValue(env))
def execute(self, env): print("Se ejecutó la instrucción 'SHOW DATABASE'") resultado = showDatabases() #print(self.expression.getValue(env)) Console.add(resultado)
def execute(self, env): print("Se ejecutó la instrucción 'ALTER DATABASE'") resultado = alterDatabase(self.exp1.getValue(env), self.exp2.getValue(env)) # print(self.expression.getValue(env)) Console.add(resultado)