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

Add PKs to all subject columns


diffs (52 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
@@ -592,7 +592,7 @@ void getMvTblSQLname(char *tmpmvtbname, 
 }
 
 static
-void addFKs(CStableStat* cstablestat, CSPropTypes *csPropTypes, str schema, 
BATiter mapi, BAT *mbat){
+void addPKandFKs(CStableStat* cstablestat, CSPropTypes *csPropTypes, str 
schema, BATiter mapi, BAT *mbat){
        FILE            *fout;
        char            filename[100];
        int             i, j;
@@ -606,6 +606,14 @@ void addFKs(CStableStat* cstablestat, CS
 
        strcpy(filename, "fkCreate.sql");
        fout = fopen(filename, "wt");
+
+       //Add PKs to all subject columns
+       for (i = 0; i < cstablestat->numTables; i++){
+               getTblSQLname(toTbl, i, 0, cstablestat, mapi, mbat);
+               fprintf(fout, "ALTER TABLE %s.\"%s\" ADD PRIMARY KEY 
(subject);\n",schema,toTbl);
+       }
+
+
        for (i = 0; i < cstablestat->numTables; i++){
                for(j = 0; j < csPropTypes[i].numProp; j++){
                        if (csPropTypes[i].lstPropTypes[j].defColIdx == -1)     
continue;
@@ -618,7 +626,6 @@ void addFKs(CStableStat* cstablestat, CS
                                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);
 
                                }
@@ -632,7 +639,6 @@ void addFKs(CStableStat* cstablestat, CS
                                        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 PRIMARY KEY (subject);\n",schema, toTbl);
                                        fprintf(fout, "ALTER TABLE %s.\"%s\" 
ADD FOREIGN KEY (\"%s\") REFERENCES %s.\"%s\" (subject);\n\n",schema, mvTbl, 
mvCol, schema, toTbl);
                                        
                                }
@@ -996,7 +1002,7 @@ SQLrdfreorganize(Client cntxt, MalBlkPtr
        printf("Number of non-default-type columns: %d  (%f ex-types per prop) 
\n ", totalNumNonDefCols, (float)totalNumNonDefCols/totalNumDefCols);
 
        printf("Generating script for FK creation ...");
-       addFKs(cstablestat, csPropTypes, *schema, mapi, mbat);
+       addPKandFKs(cstablestat, csPropTypes, *schema, mapi, mbat);
        printf("done\n");
 
        TKNZRclose(&ret);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to