diff --git a/Testing/addToDB.py b/Testing/addToDB.py index bdf570ad..252e41ad 100755 --- a/Testing/addToDB.py +++ b/Testing/addToDB.py @@ -131,9 +131,10 @@ def findInCompilerTable(conn,kind,version): if result != None: return(result[0]) else: - conn.execute("INSERT INTO COMPILER(compilerkindid,version) VALUES(?,?)" ,(kind,version)) + fullDate = datetime.datetime.now() + conn.execute("INSERT INTO COMPILER(compilerkindid,version,date) VALUES(?,?,?)" ,(kind,version,fullDate)) conn.commit() - r = conn.execute("select compilerid from COMPILER where compilerkindid=? AND version=?" , (kind,version)) + r = conn.execute("select compilerid from COMPILER where compilerkindid=? AND version=? AND date=?" , (kind,version,fullDate)) result=r.fetchone() if result != None: #print(result) @@ -145,6 +146,9 @@ def findInCompilerTable(conn,kind,version): def addRows(conn,elem,tableName,full): # List of columns we have in DB which is # different from the columns in the table + compilerid = 0 + platformid = 0 + coreid = 0 keep = getColumns(elem,full) cols = list(full.columns) params = list(elem.params.full) @@ -216,9 +220,11 @@ def addRows(conn,elem,tableName,full): if field == "CORE": val = findInTable(conn,"CORE","coredef",row[field],"coreid") keys[field]=val + coreid = val if field == "PLATFORM": val = findInTable(conn,"PLATFORM","platform",row[field],"platformid") keys[field]=val + platformid = val if field == "TYPE": val = findInTable(conn,"TYPE","type",keys["TYPE"],"typeid") keys[field]=val @@ -226,6 +232,7 @@ def addRows(conn,elem,tableName,full): compilerkind = findInTable(conn,"COMPILERKIND","compiler",row[field],"compilerkindid") compiler = findInCompilerTable(conn,compilerkind,keys["VERSION"]) keys[field]=compiler + compilerid = compiler # Generate sql command start = "" @@ -244,18 +251,25 @@ def addRows(conn,elem,tableName,full): #print(sql) conn.execute(sql) conn.commit() + return({'compilerid':compilerid,'platformid':platformid,'coreid':coreid}) + +def addConfig(conn,config,fullDate): + conn.execute("INSERT INTO CONFIG(compilerid,platformid,coreid,date) VALUES(?,?,?,?)" ,(config['compilerid'],config['platformid'],config['coreid'],fullDate)) + conn.commit() def addOneBenchmark(elem,fullPath,db,group): if os.path.isfile(fullPath): full=pd.read_csv(fullPath,dtype={'OLDID': str} ,keep_default_na = False) - full['DATE'] = datetime.datetime.now() + fullDate = datetime.datetime.now() + full['DATE'] = fullDate if group: tableName = group else: tableName = elem.data["class"] conn = sqlite3.connect(db) - createTableIfMissing(conn,elem,tableName,full) - addRows(conn,elem,tableName,full) + #createTableIfMissing(conn,elem,tableName,full) + config = addRows(conn,elem,tableName,full) + addConfig(conn,config,fullDate) conn.close() diff --git a/Testing/addToRegDB.py b/Testing/addToRegDB.py index acbf3fd3..899faf8a 100755 --- a/Testing/addToRegDB.py +++ b/Testing/addToRegDB.py @@ -137,9 +137,10 @@ def findInCompilerTable(conn,kind,version): if result != None: return(result[0]) else: - conn.execute("INSERT INTO COMPILER(compilerkindid,version) VALUES(?,?)" ,(kind,version)) + fullDate = datetime.datetime.now() + conn.execute("INSERT INTO COMPILER(compilerkindid,version,date) VALUES(?,?,?)" ,(kind,version,fullDate)) conn.commit() - r = conn.execute("select compilerid from COMPILER where compilerkindid=? AND version=?" , (kind,version)) + r = conn.execute("select compilerid from COMPILER where compilerkindid=? AND version=? AND date=?" , (kind,version,fullDate)) result=r.fetchone() if result != None: #print(result) @@ -151,6 +152,9 @@ def findInCompilerTable(conn,kind,version): def addRows(conn,elem,tableName,full): # List of columns we have in DB which is # different from the columns in the table + compilerid = 0 + platformid = 0 + coreid = 0 keep = getColumns(elem,full) cols = list(full.columns) params=diff(elem.params.full , elem.params.summary) @@ -224,9 +228,11 @@ def addRows(conn,elem,tableName,full): if field == "CORE": val = findInTable(conn,"CORE","coredef",row[field],"coreid") keys[field]=val + coreid = val if field == "PLATFORM": val = findInTable(conn,"PLATFORM","platform",row[field],"platformid") keys[field]=val + platformid = val if field == "TYPE": val = findInTable(conn,"TYPE","type",keys["TYPE"],"typeid") keys[field]=val @@ -234,6 +240,7 @@ def addRows(conn,elem,tableName,full): compilerkind = findInTable(conn,"COMPILERKIND","compiler",row[field],"compilerkindid") compiler = findInCompilerTable(conn,compilerkind,keys["VERSION"]) keys[field]=compiler + compilerid = compiler # Generate sql command start = "" @@ -255,18 +262,25 @@ def addRows(conn,elem,tableName,full): #print(sql) conn.execute(sql) conn.commit() + return({'compilerid':compilerid,'platformid':platformid,'coreid':coreid}) + +def addConfig(conn,config,fullDate): + conn.execute("INSERT INTO CONFIG(compilerid,platformid,coreid,date) VALUES(?,?,?,?)" ,(config['compilerid'],config['platformid'],config['coreid'],fullDate)) + conn.commit() def addOneBenchmark(elem,fullPath,db,group): if os.path.isfile(fullPath): full=pd.read_csv(fullPath,dtype={'OLDID': str} ,keep_default_na = False) - full['DATE'] = datetime.datetime.now() + fullDate = datetime.datetime.now() + full['DATE'] = fullDate if group: tableName = group else: tableName = elem.data["class"] conn = sqlite3.connect(db) createTableIfMissing(conn,elem,tableName,full) - addRows(conn,elem,tableName,full) + config = addRows(conn,elem,tableName,full) + addConfig(conn,config,fullDate) conn.close() diff --git a/Testing/createDb.sql b/Testing/createDb.sql index 2c9b161e..3e84e3cf 100755 --- a/Testing/createDb.sql +++ b/Testing/createDb.sql @@ -21,10 +21,13 @@ CREATE TABLE COMPILER ( compilerid INTEGER PRIMARY KEY, compilerkindid INTEGER , version text, + date text, FOREIGN KEY(compilerkindid) REFERENCES COMPILERKIND(compilerkindid) ); CREATE INDEX compiler_index ON COMPILER(compilerkindid,version); +CREATE INDEX compiler_date_index ON COMPILER(date); +CREATE INDEX compiler_all_index ON COMPILER(compilerkindid,version,date); CREATE TABLE TYPE ( typeid INTEGER PRIMARY KEY, @@ -38,6 +41,17 @@ CREATE TABLE CATEGORY ( CREATE INDEX category_index ON CATEGORY(category); +CREATE TABLE CONFIG ( + configid INTEGER PRIMARY KEY, + compilerid INTEGER, + platformid INTEGER, + coreid INTEGER, + date text, + FOREIGN KEY(compilerid) REFERENCES COMPILER(compilerid), + FOREIGN KEY(platformid) REFERENCES PLATFORM(platformid), + FOREIGN KEY(coreid) REFERENCES CORE(coreid) +); + INSERT INTO TYPE VALUES(1, "q7"); INSERT INTO TYPE VALUES(2, "q15"); INSERT INTO TYPE VALUES(3, "q31"); @@ -56,7 +70,6 @@ INSERT INTO TYPE VALUES(14,"u64"); INSERT INTO COMPILERKIND VALUES(1,"AC6"); INSERT INTO COMPILERKIND VALUES(2,"GCC"); -INSERT INTO COMPILER VALUES(1,1,"6120001"); INSERT INTO CORE VALUES(1,"m0","ARMCM0"); INSERT INTO CORE VALUES(2,"m0p","ARMCM0P");