def alterDropColumn(database: str, table: str, columnNumber: int) -> int: try: if not database.isidentifier() \ or not table.isidentifier() \ or not isinstance(columnNumber, int): raise Exception() baseDatos = __getDatabase(database) if baseDatos is False: return 2 tabla = __getTable(database, table) if tabla is False: return 3 modo = tabla["mode"] res = 1 if modo == "avl": res = avl.alterDropColumn(database, table, columnNumber) elif modo == "b": res = b.alterDropColumn(database, table, columnNumber) elif modo == "bplus": res = bplus.alterDropColumn(database, table, columnNumber) elif modo == "hash": res = ha.alterDropColumn(database, table, columnNumber) elif modo == "isam": res = isam.alterDropColumn(database, table, columnNumber) elif modo == "json": res = j.alterDropColumn(database, table, columnNumber) elif modo == "dict": res = d.alterDropColumn(database, table, columnNumber) if res == 0: # Pedir la lista de diccionarios de base de datos listaDB = __rollback("data") for db in listaDB: if db["nameDb"] == database: for tb in db["tables"]: if tb["nameTb"] == table: columnasNew = tb["columns"] - 1 tb["columns"] = columnasNew break # Se guarda la lista de base de datos ya actualizada en el archivo data __commit(listaDB, "data") return res except: return 1
def alterDropColumn(database, table, columnNumber): try: dictionary = load('metadata') if dictionary.get(database) is None: return 2 # database doesn't exist mode = dictionary.get(database)[0] j = checkMode(mode) value_return = j.alterDropColumn(database, table, columnNumber) if value_return == 0: dict_tables = dictionary.get(database)[2] number_columns = dict_tables.get(table)[0] dict_tables.get(table)[0] = number_columns-1 # Updating number of columns save(dictionary, 'metadata') return value_return except: return 1
def alterAddColumn(database, table, default): try: database = str(database) table = str(table) dictionary = load('metadata') value_base = dictionary.get(database) if not value_base: return 2 mode = dictionary.get(database)[0] j = checkMode(mode) value_return = j.alterDropColumn(database, table, default) if value_return == 0: dict_tables = dictionary.get(database)[2] number_columns = dict_tables.get(table)[0] dict_tables.get(table)[0] = number_columns + 1 save(dictionary, 'metadata') return value_return except: return 1