Example #1
0
def alterColumnsTable(dbName, tName, params):
    table = extractTable(dbName, tName)
    if table == 1 or table == 0:
        return ListError()
    nInit = len(table["columns"])
    for p in params:
        if p[0] == "ADD":
            p.remove("ADD")
            nCol = insertColumns(dbName, table, p)
            if nCol - nInit == 1:
                jsonMode.alterAddColumn(dbName, tName, None)
                nInit += 1
        elif p[0] == "RENAME":

            renameColumn(table, p[1][0], p[1][1])
        elif p[0] == "DROP":
            if p[1][0] == "COLUMN":
                alterDrop(table, p[1][1])
            else:
                dropConstraint(table, p[1][1])
                File.exportFile(Databases, "Databases")
        else:
            type_ = p[1][0]
            col = p[1][1]
            value = p[1][2]
            if type_ == "SET":
                setColumn(table, col, value)
            else:
                alterType(table, col, value)
    return ListError()
Example #2
0
def renameColumn(table, name, newName):
    for col in table["columns"]:
        if col["name"] == name:
            col["name"] = newName
            File.exportFile(Databases, "Databases")
            return
    Error.append("No se encontro la colunma")
Example #3
0
def alterDatabaseRename(databaseOld, databaseNew):

    for data in Databases:
        if data["name"] == databaseOld:
            data["name"] = databaseNew
            File.exportFile(Databases, "Databases")
            return
    return
Example #4
0
def createDatabase(name, mode, owner):
    database = {}
    database["name"] = name
    database["mode"] = mode
    database["owner"] = owner
    database["tables"] = []
    Databases.append(database)
    File.exportFile(Databases, "Databases")
Example #5
0
def createType(exist, name, list_):
    if existType(name):
        if exist:
            return "Type no insertado"
        else:
            return "Error: ya existe un type con el nombre " + name

    Types[name] = list_
    File.exportFile(Types, "Types")
    return None
Example #6
0
def alterDatabaseOwner(database, ownerNew):
    if ownerNew == "CURRENT_USER" or ownerNew == "SESSION_USER":
        ownerNew = "root"

    for data in Databases:
        if data["name"] == database:
            data["owner"] = ownerNew
            File.exportFile(Databases, "Databases")
            return 0
    return 1
Example #7
0
def insertColumns(dbName, table, columns):
    for column in columns:
        if column[0]:
            constraint(table, column, dbName)
        else:
            table["columns"].append(getCol(column))

    File.exportFile(Databases, "Databases")

    return len(table["columns"])
Example #8
0
def dropDatabase(name):
    element = {}
    for data in Databases:
        if data["name"] == name:
            element = data
            break
    if element != {}:
        Databases.remove(element)
        File.exportFile(Databases, "Databases")
        return "Drop database"
    return "Database not found"
Example #9
0
def dropTable(dbName, tableName):
    tbl = {}
    for db in Databases:
        if db["name"] == dbName:
            for table in db["tables"]:
                if table["name"] == tableName:
                    tbl = table
                    break
            if tbl != {}:
                db["tables"].remove(tbl)
                File.exportFile(Databases, "Databases")
            break
Example #10
0
def alterDrop(table, colName):
    clm = {}
    for col in table["columns"]:
        if col["name"] == colName:
            clm = col
            break

    if clm != {}:
        table["columns"].remove(clm)
        File.exportFile(Databases, "Databases")
        return

    Error.append("No se encontrĂ³ la columna")
Example #11
0
def setColumn(table, name, value):
    type_ = value[0]
    value = value[1]
    for column in table["columns"]:

        if column["name"] == name:
            if type_ == "NULL":
                column["NN"] = value
            if type_ == "DEFAULT":
                column["Default"] = [value.value, value.type.value]
            else:
                Error.append("Set desconocido")
            break

    File.exportFile(Databases, "Databases")
Example #12
0
def createTable(dbName, tableName, inherits):
    table = {}
    table["name"] = tableName
    table["inherits"] = inherits

    columns = getInherits(dbName, inherits)
    if columns == 0 or columns == 1:
        return

    table["columns"] = columns

    for db in Databases:
        if db["name"] == dbName:
            db["tables"].append(table)
            break

    File.exportFile(Databases, "Databases")
Example #13
0
def alterType(table, name, value):
    for column in table["columns"]:
        if column["name"] == name:
            if column["type"] == "TEXT":
                Error.append("No se puede modificar el type")
            else:
                if column["size"] == None or value[1][0] == None:
                    Error.append("No se puede modificar el type")
                else:
                    if value[1][0] < column["size"]:
                        Error.append("No se puede modificar el type")
                    else:
                        column["size"] = value[1][0]
                        column["type"] = value[0]
            break

    File.exportFile(Databases, "Databases")
Example #14
0
def save():
    File.exportFile(Databases, "Databases")
Example #15
0
def load():
    global Databases
    global Types
    Databases = File.importFile("Databases")
    Types = File.importFile("Types")