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)
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)
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
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'))
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'))
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')
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()
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
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
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)
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)
def get_column_by_name(self, name): return Column(self.__adql_table.select_column_by_name(name))
def get_columns(self): adql_columns = self.__adql_table.select_columns() column_list = [Column(col) for col in adql_columns] return column_list
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)
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