def alterTable(database: str, tableOld: str, tableNew: str) -> int: if type(database) != str or type(tableOld) != str or type(tableNew) != str: return 1 checkData() if validateIdentifier(tableOld) and validateIdentifier(tableNew): dataBaseTree = serializable.Read('./Data/BPlusMode/', "Databases") databaseNode = dataBaseTree.search(dataBaseTree.getRoot(), database) if databaseNode: tablesTree = serializable.Read(f"./Data/BPlusMode/{database}/", database) rootT = tablesTree.getRoot() if not tablesTree.search(rootT, tableOld): return 3 #tableOLD no existente elif tablesTree.search(rootT, tableNew): return 4 #tableNEW existente tablesTree.delete(rootT, tableOld) serializable.Rename(f'./Data/BPlusMode/{database}/', tableOld, tableNew) tablesTree.add(tablesTree.getRoot(), tableNew) serializable.update(f"./Data/BPlusMode/{database}/", database, tablesTree) return 0 else: return 2 #db no existente else: return 1
def alterDatabase(dataBaseOld, dataBaseNew) -> int: if type(dataBaseOld) != str or type(dataBaseNew) != str: return 1 checkData() if validateIdentifier(dataBaseOld) and validateIdentifier(dataBaseNew): dataBaseTree = serializable.Read('./Data/BPlusMode/', "Databases") root = dataBaseTree.getRoot() if not dataBaseTree.search(root, dataBaseOld): return 2 if dataBaseTree.search(root, dataBaseNew): return 3 dataBaseTree.delete(root, dataBaseOld) root = dataBaseTree.getRoot() serializable.Rename('./Data/BPlusMode/', dataBaseOld, dataBaseNew) dataBaseTree.add(root, dataBaseNew) serializable.update('./Data/BPlusMode/', 'Databases', dataBaseTree) return 0 else: return 1