def listtables( schema,tablename ): try: listOfTableNames = schema.listTables() #Dictionaries are created for resolving table dependencies dTable=mseqdict( [], {}) dCopyTable=mseqdict( [], {}) for tableName in listOfTableNames: if tablename==tableName: #Add tablename to dictionary dTable.append(tableName,'') description = coral.TableDescription() description.setName( tableName ) table = schema.tableHandle(tableName ) numberOfForeignKeys = table.description().numberOfForeignKeys() for i in range(0, numberOfForeignKeys): foreignKey = table.description().foreignKey( i ) columnNames = foreignKey.columnNames() columnNamesR = foreignKey.referencedColumnNames() for key,value in dTable.items(): dCopyTable.append(key,'') return dCopyTable except Exception, e: raise Exception (" " + str(e)) return False
def listtables(schema, tablename): try: listOfTableNames = schema.listTables() #Dictionaries are created for resolving table dependencies dTable = mseqdict([], {}) dCopyTable = mseqdict([], {}) for tableName in listOfTableNames: if tablename == tableName: #Add tablename to dictionary dTable.append(tableName, '') description = coral.TableDescription() description.setName(tableName) table = schema.tableHandle(tableName) numberOfForeignKeys = table.description().numberOfForeignKeys() for i in range(0, numberOfForeignKeys): foreignKey = table.description().foreignKey(i) columnNames = foreignKey.columnNames() columnNamesR = foreignKey.referencedColumnNames() for key, value in dTable.items(): dCopyTable.append(key, '') return dCopyTable except Exception, e: raise Exception(" " + str(e)) return False
def listobjects( schema ): try: listOfTableNames = schema.listTables() #Dictionaries are created for resolving table dependencies dTable=mseqdict( [], {}) dRefTable=mseqdict( [], {}) dCopyTable=mseqdict( [], {}) for tableName in listOfTableNames: #Add tablename to dictionary dTable.append(tableName,'') description = coral.TableDescription() description.setName( tableName ) table = schema.tableHandle(tableName ) numberOfForeignKeys = table.description().numberOfForeignKeys() for i in range(0, numberOfForeignKeys): foreignKey = table.description().foreignKey( i ) columnNames = foreignKey.columnNames() #Add referenced tablename to dictionary dRefTable.append (tableName, foreignKey.referencedTableName()) columnNamesR = foreignKey.referencedColumnNames() #For retrieving the tables in order of dependency r1=mseqdict( [], {}) r2=mseqdict( [], {}) for rTable, refTable in dRefTable.items(): for table in refTable: r1.append(table,'') r1.append(rTable,'') for rTable, refTable in r1.items(): test=rTable for rTable1, refTable1 in dRefTable.items(): if rTable1==test: for table in refTable1: if rTable1!=table: r2.append(table,'') for key,value in r2.items(): r1.remove(key,'') dTable.remove(key,'') for key,value in r1.items(): dTable.remove(key,'') for key,value in dTable.items(): dCopyTable.append(key,'') for key,value in r2.items(): dCopyTable.append(key,'') for key,value in r1.items(): dCopyTable.append(key,'') return dCopyTable except Exception, e: raise Exception (" " + str(e)) return False
def listtableset( schema,tableset ): try: listOfTableNames = schema.listTables() #Dictionaries are created for resolving table dependencies dTable=mseqdict( [], {}) dCircTable=mseqdict( [], {}) dCopyTable=mseqdict( [], {}) dTempTable=mseqdict( [], {}) for table in listOfTableNames: for tableName in tableset: if tableName==table: #Add tablename to dictionary dTable.append(tableName,'') description = coral.TableDescription() description.setName( tableName ) table = schema.tableHandle(tableName ) numberOfForeignKeys = table.description().numberOfForeignKeys() for i in range(0, numberOfForeignKeys): foreignKey = table.description().foreignKey( i ) columnNames = foreignKey.columnNames() #Add referenced tablename to dictionary dTable.append (tableName, foreignKey.referencedTableName()) dCircTable.append (tableName, foreignKey.referencedTableName()) columnNamesR = foreignKey.referencedColumnNames() #For checking circular dependency between the tables d1=mseqdict( [], {}) d2=mseqdict( [], {}) for rTable, refTable in dCircTable.items(): for table in refTable: d1.append(rTable,table) dCircTable.swap() for rTable, refTable in dCircTable.items(): for table in refTable: d2.append(rTable,table) for key,value in d1.items(): firsttable=key secondtable=value for key,value in d2.items(): if key==firsttable and value==secondtable: raise Exception ("Circular Dependency exists between tables : "+firsttable,secondtable) #For retrieving the tables in order of dependency r1=mseqdict( [], {}) r2=mseqdict( [], {}) for rTable, refTable in dTable.items(): for table in refTable: r1.append(table,'') r1.append(rTable,'') for rTable, refTable in r1.items(): test=rTable for rTable1, refTable1 in dTable.items(): if rTable1==test: for table in refTable1: if rTable1!=table: r2.append(table,'') for key,value in r2.items(): r1.remove(key,'') for key,value in r2.items(): dTempTable.append(key,'') for key,value in r1.items(): dTempTable.append(key,'') for key,value in dTempTable.items(): iTable= key for table in tableset: if table==iTable: dCopyTable.append(key,'') return dCopyTable except Exception, e: raise Exception (" " + str(e)) return False
def listobjects(schema): try: listOfTableNames = schema.listTables() #Dictionaries are created for resolving table dependencies dTable = mseqdict([], {}) dRefTable = mseqdict([], {}) dCopyTable = mseqdict([], {}) for tableName in listOfTableNames: #Add tablename to dictionary dTable.append(tableName, '') description = coral.TableDescription() description.setName(tableName) table = schema.tableHandle(tableName) numberOfForeignKeys = table.description().numberOfForeignKeys() for i in range(0, numberOfForeignKeys): foreignKey = table.description().foreignKey(i) columnNames = foreignKey.columnNames() #Add referenced tablename to dictionary dRefTable.append(tableName, foreignKey.referencedTableName()) columnNamesR = foreignKey.referencedColumnNames() #For retrieving the tables in order of dependency r1 = mseqdict([], {}) r2 = mseqdict([], {}) for rTable, refTable in dRefTable.items(): for table in refTable: r1.append(table, '') r1.append(rTable, '') for rTable, refTable in r1.items(): test = rTable for rTable1, refTable1 in dRefTable.items(): if rTable1 == test: for table in refTable1: if rTable1 != table: r2.append(table, '') for key, value in r2.items(): r1.remove(key, '') dTable.remove(key, '') for key, value in r1.items(): dTable.remove(key, '') for key, value in dTable.items(): dCopyTable.append(key, '') for key, value in r2.items(): dCopyTable.append(key, '') for key, value in r1.items(): dCopyTable.append(key, '') return dCopyTable except Exception, e: raise Exception(" " + str(e)) return False
def listtableset(schema, tableset): try: listOfTableNames = schema.listTables() #Dictionaries are created for resolving table dependencies dTable = mseqdict([], {}) dCircTable = mseqdict([], {}) dCopyTable = mseqdict([], {}) dTempTable = mseqdict([], {}) for table in listOfTableNames: for tableName in tableset: if tableName == table: #Add tablename to dictionary dTable.append(tableName, '') description = coral.TableDescription() description.setName(tableName) table = schema.tableHandle(tableName) numberOfForeignKeys = table.description( ).numberOfForeignKeys() for i in range(0, numberOfForeignKeys): foreignKey = table.description().foreignKey(i) columnNames = foreignKey.columnNames() #Add referenced tablename to dictionary dTable.append(tableName, foreignKey.referencedTableName()) dCircTable.append(tableName, foreignKey.referencedTableName()) columnNamesR = foreignKey.referencedColumnNames() #For checking circular dependency between the tables d1 = mseqdict([], {}) d2 = mseqdict([], {}) for rTable, refTable in dCircTable.items(): for table in refTable: d1.append(rTable, table) dCircTable.swap() for rTable, refTable in dCircTable.items(): for table in refTable: d2.append(rTable, table) for key, value in d1.items(): firsttable = key secondtable = value for key, value in d2.items(): if key == firsttable and value == secondtable: raise Exception( "Circular Dependency exists between tables : " + firsttable, secondtable) #For retrieving the tables in order of dependency r1 = mseqdict([], {}) r2 = mseqdict([], {}) for rTable, refTable in dTable.items(): for table in refTable: r1.append(table, '') r1.append(rTable, '') for rTable, refTable in r1.items(): test = rTable for rTable1, refTable1 in dTable.items(): if rTable1 == test: for table in refTable1: if rTable1 != table: r2.append(table, '') for key, value in r2.items(): r1.remove(key, '') for key, value in r2.items(): dTempTable.append(key, '') for key, value in r1.items(): dTempTable.append(key, '') for key, value in dTempTable.items(): iTable = key for table in tableset: if table == iTable: dCopyTable.append(key, '') return dCopyTable except Exception, e: raise Exception(" " + str(e)) return False