Exemplo n.º 1
0
def createDatabase(database: str, mode: str, encoding: str):
    if verify_string(
            database
    ):  # Metodo que verifica el nombre si cumple con las condiciones
        metadata, index = get_metadata_db(database)
        if metadata:
            return 2  # Verifica que no haya repetidos en el listado de metadata database
        if str(encoding.lower().strip()) == "ascii" or str(encoding.lower().strip()) == "iso-8859-1" \
                or str(encoding.lower().strip()) == "utf8":  # Revisa que cumpla con la codificacion
            if mode_dict.get(mode) is None:
                return 3  # Revisa que el modo este en el diccionario  si no esta retorno 3
            mode_struct = get_struct(
                mode)  # Retorna el objeto avl,b,bplus, etc dependiendo el modo
            status = mode_struct.createDatabase(
                database
            )  # Crea base de datos de la estructura correspondiente(avl,b)
            if status == 0:  # Si el estatus es el correcto guarda en la lista metadata_db_list
                save_database_db(database,
                                 mode.lower().strip(),
                                 encoding)  # Guarda en la lista metada_db_list
            return status
        else:
            return 4
    else:
        return 1
Exemplo n.º 2
0
def alterTableCompress(database, table, level):
    if verify_string(database):
        metadata_db, index_md_db = get_metadata_db(database)
        if metadata_db:
            if (level >= -1) and (level <= 9):
                bandera = False
                tabla_metadatos = metadata_db.get_table(table)
                if not tabla_metadatos.get_compress():
                    registros = extractTable(database, table)
                    if registros:
                        truncate(database, table)
                    for tupla in registros:
                        lista_comprimida = []
                        bandera = True
                        for columna in tupla:
                            if type(columna) == str:
                                col_compress = zlib.compress(columna.encode("utf-8"), level)
                                lista_comprimida.append(col_compress)
                            else:
                                lista_comprimida.append(columna)
                        insert(database, table, lista_comprimida)
                    tabla_metadatos.set_compress(True)
                if bandera:
                    return 0
                else:
                    return 1
            else:
                return 4
        else:
            return 2
    else:
        return 1
Exemplo n.º 3
0
 def graficarRegistros(self, database, table_name):
     if verify_string(database):
         db_search = self.__tree__db.search_value(database)
         if db_search is not None:
             return db_search.get_element().graficar(table_name)
     else:
         return 1
Exemplo n.º 4
0
def alterTableDecompress( database: str, table: str):
    if verify_string(database):
        metadata_db, index_md_db = get_metadata_db(database)
        if  metadata_db:
            bandera = False
            tabla_metadatos = metadata_db.get_table(table)
            if tabla_metadatos:
                if tabla_metadatos.get_compress():
                    registros = extractTable(database,table)
                    if registros:
                        truncate(database, table)
                    for tupla in registros:
                        lista_descomprimida = []
                        bandera = True
                        for columna in tupla:
                            if type(columna) == bytes:
                                col_descompress = zlib.decompress(columna).decode("utf-8")
                                lista_descomprimida.append(col_descompress)
                            else:
                                lista_descomprimida.append(columna)
                        insert(database,table,lista_descomprimida)
                    tabla_metadatos.set_compress(False)
                else:
                    return 4
            else:
                return 3

            if bandera:
                return 0
            else:
                return 1
        else:
            return 2
    else:
        return 1
Exemplo n.º 5
0
def createDatabase(database: str, mode: str, encoding: str):
    if verify_string(database):
        if exist(database): return 2
        if encoding.lower().strip() is "ascii" or encoding.lower().strip() is "iso-8859-1" \
                or encoding.lower().strip() is "utf8":
            status = -1
            if mode.lower().strip() is "avl":
                status = avl.createDatabase(database)
            elif mode.lower().strip() is "b":
                status = b.createDatabase(database)
            elif mode.lower().strip() is "bplus":
                status = bPlus.createDatabase(database)
            elif mode.lower().strip() is "dict":
                status = diccionario.createDatabase(database)
            elif mode.lower().strip() is "isam":
                status = isam.createDatabase(database)
            elif mode.lower().strip() is "json":
                status = json.createDatabase(database)
            elif mode.lower().strip() is "hash":
                status = hash.createDatabase(database)
            else:
                return 3
            if status == 0:
                save_mode(database, mode, encoding)
            return status
        else:
            return 4
    else:
        return 1
Exemplo n.º 6
0
 def createDataBase(self, db_nombre):
     if verify_string(db_nombre):
         if self.__tree__db.search_value(db_nombre) is None:
             new_db = DataBase(db_nombre)
             self.__tree__db.add(new_db)
             return 0
         else:
             return 2
     else:
         return 1
Exemplo n.º 7
0
 def create_table(self, table, number_columns):
     if verify_string(table):
         if self.__tree__table.search_value(table) is None:
             new_table = Table(table, number_columns)
             self.__tree__table.add(new_table)
             return 0
         else:
             return 3
     else:
         return 1
Exemplo n.º 8
0
 def drop_table(self, table):
     if verify_string(table):
         table_search = self.__tree__table.search_value(table)
         if table_search:
             self.__tree__table.delete_nodo(table)
             return 0
         else:
             return 3
     else:
         return 1
Exemplo n.º 9
0
 def extractTable(self, database, table_name):
     if verify_string(database):
         db = self.__tree__db.search_value(database)
         if db is not None:
             respuesta = db.get_element().extract_table(table_name)
         else:
             return None
         return respuesta
     else:
         return 1
Exemplo n.º 10
0
 def showTables(self, database):
     if verify_string(database):
         db = self.__tree__db.search_value(database)
         if db is not None:
             tablas = db.get_element().show_tables()
         else:
             return None
         return tablas
     else:
         return 1
Exemplo n.º 11
0
 def dropDatabase(self, db_name):
     if verify_string(db_name):
         db_search = self.__tree__db.search_value(db_name)
         if db_search is not None:
             self.__tree__db.delete_nodo(db_name)
             return 0
         else:
             return 2
     else:
         return 1
Exemplo n.º 12
0
 def truncate(self, database, table_name):
     if verify_string(database):
         db_search = self.__tree__db.search_value(database)
         if db_search is not None:
             respuesta = db_search.get_element().truncate(table_name)
             self.__save()
         else:
             return 2
         return respuesta
     else:
         return 1
Exemplo n.º 13
0
 def alterDropPK(self, database, table_name):
     if verify_string(database):
         db = self.__tree__db.search_value(database)
         if db is not None:
             respuesta = db.get_element().alter_drop_pk(table_name)
             self.__save()
         else:
             return 2
         return respuesta
     else:
         return 1
Exemplo n.º 14
0
 def alterTable(self, database, tableOld, tableNew):
     if verify_string(database):
         db = self.__tree__db.search_value(database)
         if db is not None:
             respuesta = db.get_element().alter_table(tableOld, tableNew)
             self.__save()
         else:
             return 2
         return respuesta
     else:
         return 1
Exemplo n.º 15
0
 def extractRow(self, database, table_name, columns):
     if verify_string(database):
         db_search = self.__tree__db.search_value(database)
         if db_search is not None:
             respuesta = db_search.get_element().extract_row(
                 table_name, columns)
         else:
             return 2
         return respuesta
     else:
         return 1
Exemplo n.º 16
0
 def extractRangeTable(self, database, table_name, columnNumber, lower,
                       upper):
     if verify_string(database):
         db = self.__tree__db.search_value(database)
         if db is not None:
             respuesta = db.get_element().extract_range_table(
                 table_name, columnNumber, lower, upper)
         else:
             return None
         return respuesta
     else:
         return 1
Exemplo n.º 17
0
 def alterAddColumn(self, database, table_name, default):
     if verify_string(database):
         db = self.__tree__db.search_value(database)
         if db is not None:
             respuesta = db.get_element().alter_add_column(
                 table_name, default)
             self.__save()
         else:
             return 2
         return respuesta
     else:
         return 1
Exemplo n.º 18
0
 def update(self, database, table_name, register, columns):
     if verify_string(database):
         db_search = self.__tree__db.search_value(database)
         if db_search is not None:
             respuesta = db_search.get_element().update(
                 table_name, register, columns)
             self.__save()
         else:
             return 2
         return respuesta
     else:
         return 1
Exemplo n.º 19
0
    def loadCSV(self, file, database, table_name):

        if verify_string(database):
            db_search = self.__tree__db.search_value(database)
            if db_search is not None:
                respuesta = db_search.get_element().load_csv(file, table_name)
                self.__save()
            else:
                return 2
            return respuesta
        else:
            return 1
Exemplo n.º 20
0
 def createTable(self, database, table_name, number_columns):
     if verify_string(database):
         db = self.__tree__db.search_value(database)
         if db is not None:
             respuesta = db.get_element().create_table(
                 table_name, number_columns)
             self.__save()
         else:
             return 2
         return respuesta
     else:
         return 1
Exemplo n.º 21
0
 def alter_table(self, table_old, table_new):
     bandera = self.__tree__table.search_value(table_new)
     if bandera is None:
         if verify_string(table_new):
             table = self.__tree__table.search_value(table_old)
             if table:
                 self.__tree__table.delete_nodo(table.get_element().get_table_name())
                 table = table.get_element()
                 table.set_table_name(table_new)
                 self.__tree__table.add(table)
                 return 0
             else:
                 return 3
         else:
             return 1
     else:
         return 4
Exemplo n.º 22
0
 def alterDatabase(self, old_db, new_db):
     bandera = self.__tree__db.search_value(new_db)
     if bandera is None:
         if verify_string(new_db):
             db = self.__tree__db.search_value(old_db)
             if db is not None:
                 self.__tree__db.delete_nodo(
                     db.get_element().get_database())
                 db = db.get_element()
                 db.set_database(new_db)
                 self.__tree__db.add(db)
                 return 0
             else:
                 return 2
         else:
             return 1
     else:
         return 3