예제 #1
0
    def from_source(name, type):
        groups = re.match(r'(\w+)(?:\((\d+)(?:, (\d+)) * \))*\s*(NOT NULL)?',
                          type)

        if (groups.group(1) == 'struct'):
            return Column(name,
                          groups.group(1),
                          fields=GlueTranslator.parse_struct(type))
        else:
            nullable = False if groups.group(4) else True

            if groups.group(2) and groups.group(3):
                return Column(
                    name,
                    GlueTranslator.TRANSLATION[groups.group(1)]['translation'],
                    numeric_precision=groups.group(2),
                    scale=groups.group(3),
                    nullable=nullable)
            elif groups.group(2):
                return Column(
                    name,
                    GlueTranslator.TRANSLATION[groups.group(1)]['translation'],
                    length=groups.group(2),
                    nullable=nullable)
            else:
                return Column(
                    name,
                    GlueTranslator.TRANSLATION[groups.group(1)]['translation'],
                    nullable=nullable)
예제 #2
0
    def loadData(self):
        self._typeCheckerList = []
        self.openFile()

        for db in self._dataFile:
            self._typeCheckerList.append(Database(db['_name']))
            database = self.searchDatabase(db['_name'])

            for tb in db['_tables']:
                table = Table(tb['_name'])
                database.tables.append(table)

                for col in tb['_colums']:
                    column = Column(col['_name'], col['_dataType'])
                    column.number = col['_number']
                    column.length = col['_length']
                    column.default = col['_default']
                    column.notNull = col['_notNull']
                    column.unique = col['_unique']
                    column.constraint = col['_constraint']
                    column.check = col['_check']
                    column.primaryKey = col['_primaryKey']
                    # column.autoincrement = col['_autoincrement']
                    # TODO FOREIGN KEY implementation column.foreignKey = col['_foreignKey']
                    table.columns.append(column)
예제 #3
0
    def generateColumns(self, nombreTabla, typeChecker):
        for columna in self._column_list:
            if isinstance(columna, CreateCol):
                # columna._paramOne
                # columna._paraTwos
                # columna._tipoColumna
                tipoFinal = {
                    '_tipoColumna': str(columna._type_column._tipoColumna),
                    '_paramOne': columna._type_column._paramOne,
                    '_paramTwo': columna._type_column._paramTwo
                }
                columnaFinal = Column(columna._column_name, tipoFinal)
                if columna._properties != None:
                    for prop in columna._properties:
                        columnaFinal = self.addPropertyes(prop, columnaFinal)

                tableToInsert = typeChecker.searchTable(
                    SymbolTable().useDatabase, nombreTabla)
                validateCol = typeChecker.createColumnTable(
                    tableToInsert, columnaFinal, 0, 0)

                # if return None an error ocurrio
                if validateCol == None:
                    self._can_create_flag = False
                    return
예제 #4
0
def deletecolonne():
    rowid = request.form['rowid']
    column = Column(rowid)
    db = get_db()
    cur = db.cursor()
    column.delete(cur, rowid)
    db.commit()
    return redirect(url_for('home'))
예제 #5
0
def addcolonne():
    col = request.form['column']
    idtab = request.form['idtabe']
    column = Column(title=col, table_id=idtab)
    db = get_db()
    cur = db.cursor()
    column.insert(cur)
    db.commit()

    return redirect(url_for('home'))
예제 #6
0
 def generateHiddenPK(self, nombreTabla):
     typeChecker = TypeChecker()
     tipoEscondido = {
         '_tipoColumna': 'HIDDEN',
         '_paramOne': None,
         '_paramTwo': None
     }
     columnaEscondida = Column('HIDDEN', tipoEscondido)
     columnaEscondida._primaryKey = True
     tableToInsert = typeChecker.searchTable(SymbolTable().useDatabase,
                                             nombreTabla)
     typeChecker.createColumnTable(tableToInsert, columnaEscondida, 0, 0)
     print('### SE HA GENERADO UNA LLAVE PRIMARIA ESCONDIDA')
예제 #7
0
def add_column_post():
    name = request.form.get('columnName')

    column = Column(name=name, idTable='newcol')
    db = get_db()
    cur = db.cursor()
    try:
        user.insert(cur)
    except sqlite3.IntegrityError:
        return render_template(
            'index.html',
            error_msg="This column  is already created.",
        )
    db.commit()
예제 #8
0
    def agregarCol(self, columna, nombreTabla):
        typeChecker = TypeChecker()

        tipoFinal = {
            '_tipoColumna': str(columna._type_column._tipoColumna),
            '_paramOne': columna._type_column._paramOne,
            '_paramTwo': columna._type_column._paramTwo
        }

        columnaFinal = Column(columna._column_name, tipoFinal)
        tableToInsert = typeChecker.searchTable(SymbolTable().useDatabase,
                                                nombreTabla)
        validateCol = typeChecker.createColumnTable(tableToInsert,
                                                    columnaFinal, 0, 0)
        # if return None an error ocurrio
        if validateCol == None:
            return
예제 #9
0
    def generateColumns(self, nombreTabla, typeChecker):
        for columna in self._column_list:
            if isinstance(columna, CreateCol):
                #columna._paramOne
                #columna._paraTwos
                #columna._tipoColumna
                tipoFinal = {
                    '_tipoColumna': str(columna._type_column._tipoColumna),
                    '_paramOne': columna._type_column._paramOne,
                    '_paramTwo': columna._type_column._paramTwo
                }
                columnaFinal = Column(columna._column_name, tipoFinal)
                if columna._properties != None:
                    for prop in columna._properties:
                        columnaFinal = self.addPropertyes(prop, columnaFinal)

                tableToInsert = typeChecker.searchTable(
                    SymbolTable().useDatabase, nombreTabla)
                typeChecker.createColumnTable(
                    tableToInsert, columnaFinal, 0,
                    0)  #TODO add name of Database, line and column
예제 #10
0
tasks = [
    Task(content="Conception", author_id="*****@*****.**", column_id=1),
    Task(content="Analysis", author_id="*****@*****.**", column_id=2),
    Task(content="Test", author_id="*****@*****.**", column_id=1),
    Task(content="Repport", author_id="*****@*****.**", column_id=1),
    Task(content="Algorithms", author_id="*****@*****.**", column_id=3),
]

tables = [
    Work(title="AWS Project", creator_id="*****@*****.**"),
    Work(title="Algorithm project", creator_id="*****@*****.**"),
    Work(title="Mobile project", creator_id="*****@*****.**"),
]

columns = [
    Column(title="ToDo", table_id=1),
    Column(title="InProgress", table_id=1),
    Column(title="Done", table_id=2),
]

for user in users:
    user.insert(cur)

for table in tables:
    table.insert(cur)

for column in columns:
    column.insert(cur)

for task in tasks:
    task.insert(cur)
예제 #11
0
User.create_table(cur)
Table.create_table(cur)
Column.create_table(cur)
Task.create_table(cur)

users = [
    User("Ford", "zda", "*****@*****.**", "12345"),
    User("Arthur", "firero", "*****@*****.**", "12345"),
    User("ismail", "Aissami", "[email protected]", "12345"),
    User("sana", "kriaa", "*****@*****.**", "aaa")
]

tables = [Table("Table1", "[email protected]"), Table("Table2", "[email protected]")]

columns = [Column("colonne1", "Table1"), Column("colonne2", "Table1")]

tasks = [Task("descrep1", "colonne1"), Task("descrep2", "colonne1")]

for user in users:
    user.insert(cur)

for table in tables:
    table.insert(cur)

for column in columns:
    column.insert(cur)

for task in tasks:
    task.insert(cur)
예제 #12
0
 def get_column_by_name(self, name):
     return Column(self.__adql_table.select_column_by_name(name))
예제 #13
0
 def get_columns(self):
     adql_columns = self.__adql_table.select_columns()
     column_list = [Column(col) for col in adql_columns]
     return column_list
예제 #14
0
 def from_source(name, type, length, numeric_precision, precision_radix,
                 scale, default, nullable):
     return Column(name,
                   RedshiftTranslator.TRANSLATION[type]['translation'],
                   length, numeric_precision, precision_radix, scale,
                   default, nullable)
예제 #15
0
def columnreplacer(wort: str, cols: list):
    #it checks, if the word is one of the columns and replaces it
    if wort.lower() in cols:
        return Column(wort)
    else:
        return wort