def getJoinColUniqueOneLink(self, first_table, second_table): general_links = generalLinksDB([first_table, second_table], self) links = general_links.getLinks() edge = links[0] first_node = edge[0] [first_table, join_col] = first_node.split(':') return join_col
def test_Two_Tables_One_Link_Case3(self): first_table = "./ks_filehandler/ks_filehandler/data/Sales.csv" second_table = "./ks_filehandler/ks_filehandler/data/CountryRegion.csv" ks_merge = merge(self.db) ks_merge.reset() ks_merge.addTable(first_table,"Sales") ks_merge.addTable(second_table,"CountryRegion") general_links = generalLinksDB(["Sales","CountryRegion"], ks_merge) self.assertEqual(False, general_links.isEdge('Sales.csv:Cou ntryCode', 'CountryRegion.csv:CountryCode')) self.db.commit()
def getJoinColUniqueTwoLinks(self, first_table, second_table): general_links = generalLinksDB([first_table, second_table],self) links = general_links.getLinks() edge1 = links[0] first_node = edge1[0] [first_table, join_col1] = first_node.split(':') edge2 = links[1] second_node = edge2[0] [first_table, join_col2] = second_node.split(':') return [join_col1, join_col2]
def isUniqueTwoLinks(self, first_table, second_table): general_links = generalLinksDB([first_table, second_table],self) if len(general_links.getLinks()) == 2: [join_col1, join_col2] = self.getJoinColUniqueTwoLinks(first_table, second_table) is_unique_table1 = self.isUniqueColTwo(first_table, join_col1, join_col2) is_unique_table2 = self.isUniqueColTwo(second_table, join_col1, join_col2) if is_unique_table1 or is_unique_table2: return True else: return False else: return False
def isUniqueOneLink(self, first_table, second_table): general_links = generalLinksDB([first_table, second_table],self) links = general_links.getLinks() print len(links) print links if len(links) == 1: edge = links[0] first_node = edge[0] second_node = edge[1] [first_table, first_col] = first_node.split(':') [second_table, second_col] = second_node.split(':') if (self.isUniqueCol(first_table, first_col)) or (self.isUniqueCol(second_table, second_col)): return True else: return False else: return False
def test_Four_Tables_Five_Links(self): first_table = "./ks_filehandler/ks_filehandler/data/Sales.csv" second_table = "./ks_filehandler/ks_filehandler/data/graph/CountryRegion.csv" third_table = "./ks_filehandler/ks_filehandler/data/ComissionTax.csv" fourth_table = "./ks_filehandler/ks_filehandler/data/graph/Currencyv2.csv" ks_merge = merge(self.db) ks_merge.reset() ks_merge.addTable(first_table,"Sales") ks_merge.addTable(second_table,"CountryRegion") ks_merge.addTable(third_table,"ComissionTax") ks_merge.addTable(fourth_table,"Currencyv2") general_links = generalLinksDB(["Sales","Currencyv2","ComissionTax","CountryRegion"], ks_merge) print ("Links:") print(general_links.getLinks()) self.assertEqual(True, general_links.isEdge('ComissionTax:Region', 'CountryRegion:Region')) self.assertEqual(True, general_links.isEdge('ComissionTax:VendorId', 'Sales:VendorId')) self.assertEqual(True, general_links.isEdge('Sales:CountryCode', 'CountryRegion:CountryCode')) self.assertEqual(True, general_links.isEdge('Sales:DownloadDate', 'Currencyv2:DownloadDate')) self.assertEqual(True, general_links.isEdge('Currencyv2:CustomerCurrency', 'Sales:CustomerCurrency')) self.db.commit()
def getLinks(self): general_links = generalLinksDB(self.getTables(),self) links = general_links.getLinks() return links