CMSIS-DSP: Added config table to test framework.
diff --git a/CMSIS/DSP/Testing/addToDB.py b/CMSIS/DSP/Testing/addToDB.py
index bdf570a..252e41a 100755
--- a/CMSIS/DSP/Testing/addToDB.py
+++ b/CMSIS/DSP/Testing/addToDB.py
@@ -131,9 +131,10 @@
     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 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 @@
             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 @@
               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 @@
        #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/CMSIS/DSP/Testing/addToRegDB.py b/CMSIS/DSP/Testing/addToRegDB.py
index acbf3fd..899faf8 100755
--- a/CMSIS/DSP/Testing/addToRegDB.py
+++ b/CMSIS/DSP/Testing/addToRegDB.py
@@ -137,9 +137,10 @@
     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 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 @@
             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 @@
               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 @@
        #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/CMSIS/DSP/Testing/createDb.sql b/CMSIS/DSP/Testing/createDb.sql
index 2c9b161..3e84e3cf 100755
--- a/CMSIS/DSP/Testing/createDb.sql
+++ b/CMSIS/DSP/Testing/createDb.sql
@@ -21,10 +21,13 @@
     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 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 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");