Changeset: 07b9fc1022a3 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=07b9fc1022a3
Modified Files:
        sql/backends/monet5/sql_rdf.c
Branch: rdf
Log Message:

Fix bug caused by using wrong columnIdx


diffs (49 lines):

diff --git a/sql/backends/monet5/sql_rdf.c b/sql/backends/monet5/sql_rdf.c
--- a/sql/backends/monet5/sql_rdf.c
+++ b/sql/backends/monet5/sql_rdf.c
@@ -599,36 +599,38 @@ void addFKs(CStableStat* cstablestat, CS
        char            fromTbl[100]; 
        char            fromTblCol[100]; 
        char            toTbl[100];
-       char            toTblCol[100]; 
        char            mvTbl[100]; 
        char            mvCol[100];
        int             refTblId; 
+       int             tblColIdx; 
 
        strcpy(filename, "fkCreate.sql");
        fout = fopen(filename, "wt");
        for (i = 0; i < cstablestat->numTables; i++){
                for(j = 0; j < csPropTypes[i].numProp; j++){
+                       if (csPropTypes[i].lstPropTypes[j].defColIdx == -1)     
continue;
                        if (csPropTypes[i].lstPropTypes[j].isFKProp == 1){
+                               tblColIdx = 
csPropTypes[i].lstPropTypes[j].defColIdx; 
                                getTblSQLname(fromTbl, i, 0, cstablestat, mapi, 
mbat);
                                refTblId = 
csPropTypes[i].lstPropTypes[j].refTblId;
                                getTblSQLname(toTbl, refTblId, 0, cstablestat, 
mapi, mbat);
 
-                               if 
(cstablestat->lstcstable[i].lstMVTables[j].numCol == 0){
-                                       getColSQLname(fromTblCol, i, j, -1, 
cstablestat, mapi, mbat);
+                               if 
(cstablestat->lstcstable[i].lstMVTables[tblColIdx].numCol == 0){
+                                       getColSQLname(fromTblCol, i, tblColIdx, 
-1, cstablestat, mapi, mbat);
 
                                        fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD PRIMARY KEY (subject);\n",schema,toTbl);
                                        fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD FOREIGN KEY (\"%s\") REFERENCES %s.\"%s\" (subject);\n\n", schema, fromTbl, 
fromTblCol, schema, toTbl);
 
                                }
                                else{   //This is a MV col
-                                       getMvTblSQLname(mvTbl, i, j, 
cstablestat, mapi, mbat);
-                                       getColSQLname(fromTblCol, i, j, -1, 
cstablestat, mapi, mbat);
-                                       getColSQLname(mvCol, i, j, 0, 
cstablestat, mapi, mbat); //Use the first column of MVtable
+                                       getMvTblSQLname(mvTbl, i, tblColIdx, 
cstablestat, mapi, mbat);
+                                       getColSQLname(fromTblCol, i, tblColIdx, 
-1, cstablestat, mapi, mbat);
+                                       getColSQLname(mvCol, i, tblColIdx, 0, 
cstablestat, mapi, mbat); //Use the first column of MVtable
                                        
                                        fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD PRIMARY KEY (subject);\n",schema, toTbl);
                                        fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD PRIMARY KEY (\"%s\");\n",schema, fromTbl,fromTblCol);
                                        fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD FOREIGN KEY (mvKey) REFERENCES %s.\"%s\" (\"%s\");\n",schema, mvTbl, 
schema, fromTbl,fromTblCol);
-                                       fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD FOREIGN KEY (\"%s\") REFERENCES %s.\"%s\" (\"%s\");\n\n",schema, mvTbl, 
mvCol, schema, toTbl, toTblCol);
+                                       fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD FOREIGN KEY (\"%s\") REFERENCES %s.\"%s\" (subject);\n\n",schema, mvTbl, 
mvCol, schema, toTbl);
                                        
                                }
                        }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to