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

Handling nonNegativeInteger suffix


diffs (148 lines):

diff --git a/monetdb5/extras/rdf/rdf_shredder.c 
b/monetdb5/extras/rdf/rdf_shredder.c
--- a/monetdb5/extras/rdf/rdf_shredder.c
+++ b/monetdb5/extras/rdf/rdf_shredder.c
@@ -197,13 +197,13 @@ getObjectType_and_Value(unsigned char* o
        lng     realLng; 
 
        len = strlen((str)objStr);
-       if (len > 100 || len <= 20){
+       if (len > 100 || len <= 30){
                //String is too long for any kind of data or there is no 
XMLschema
                obType = STRING; 
        }
        else{ //(len > 20)
-               endpart = objStr + (len - 19);   /* XMLSchema#dateTime> */
-               /* printf("Original: %s  --> substring: %s \n", (str)objStr, 
(str)endpart); */
+               endpart = objStr + (len - 29);   /* XMLSchema#dateTime> */
+               printf("Original: %s  --> substring: %s \n", (str)objStr, 
(str)endpart); 
 
                if ( (pos = strstr((str)endpart , "XMLSchema#date>")) != NULL 
|| (pos = strstr((str)endpart, "XMLSchema#dateTime>")) != NULL ){
                        obType = DATETIME;
@@ -226,7 +226,9 @@ getObjectType_and_Value(unsigned char* o
                        GDKfree(valuepart);
 
                }
-               else if ((pos = strstr((str) endpart, "XMLSchema#int>")) != 
NULL || (pos = strstr((str)endpart, "XMLSchema#integer>")) != NULL){
+               else if ((pos = strstr((str) endpart, "XMLSchema#int>")) != 
NULL 
+                         || (pos = strstr((str)endpart, "XMLSchema#integer>")) 
!= NULL
+                         || (pos = strstr((str)endpart, 
"XMLSchema#nonNegativeInteger>")) != NULL) {
                        //TODO: Consider nonNegativeInteger
                        obType = INTEGER;
                        subLen = (int) (pos - (str)objStr - 28);
@@ -235,7 +237,7 @@ getObjectType_and_Value(unsigned char* o
                        if (isInt(valuepart, subLen) == 1){     /* Check 
whether the real value is an integer */
                                realInt = (BUN) atoi(valuepart); 
                                VALset(vrPtrRealValue,TYPE_int, &realInt);
-                               //printf("Real int value is: %d \n", 
vrPtrRealValue->val.ival);
+                               printf("Real int value is: %d \n", 
vrPtrRealValue->val.ival);
                        }
                        else 
                                obType = STRING;        
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
@@ -1673,20 +1673,20 @@ static void appendResult(BAT **r_obats, 
        for (j = 0; j < np; j++){
                //Output result
                
-               /*
-               if (sbt == (oid)879609302220975){
+               
+               if (sbt == (oid)1460151441687511){
                        printf(BUNFMT " | ", tmpres[j]);
                }
-               */
+               
                
                BUNappend(r_obats[j], &(tmpres[j]), TRUE); 
        }
        
-       /*
-       if (sbt == (oid) 879609302220975){
+       
+       if (sbt == (oid) 1460151441687511){
                printf("\n"); 
        }
-       */
+       
 }
 /*
 static
@@ -1787,10 +1787,11 @@ void fetch_result(BAT **r_obats, oid **o
                //Then, get all teh value from MVBATs
 
                //assert(cur_p >= nrp || regular_obat_cursors[cur_p][tmpS] != 
oid_nil); 
+               int hasvalue = 0;
 
                tmpres[cur_p] = oid_nil; 
 
-               if (regular_obat_mv_cursors[cur_p] != NULL){            //mv col
+               if (regular_obat_mv_cursors[cur_p] != NULL && 
regular_obat_cursors[cur_p][tmpS] != oid_nil){            //mv col
                        //Get the values from mvBat
                        oid offset = regular_obat_cursors[cur_p][tmpS]; 
                        oid nextoffset; 
@@ -1812,7 +1813,7 @@ void fetch_result(BAT **r_obats, oid **o
                        if (nextS == batCnt) {
                                numCand = BUNlast(regular_obat_mv[cur_p]) - 
offset;
                        }
-                       assert(numCand >= 0); 
+                       assert(numCand > 0); 
                        for (i = 0; i < numCand; i++){
                                tmpres[cur_p] = 
regular_obat_mv_cursors[cur_p][offset + i]; 
 
@@ -1823,9 +1824,10 @@ void fetch_result(BAT **r_obats, oid **o
                                        appendResult(r_obats, tmpres, np, sbt, 
n_exp_value); 
                                }
                        }
+                       hasvalue = 1;
                                        
                }
-               else if (regular_obat_cursors[cur_p] != NULL){ 
+               else if (regular_obat_cursors[cur_p] != NULL && 
regular_obat_cursors[cur_p][tmpS] != oid_nil){ 
                        
                        tmpres[cur_p] = regular_obat_cursors[cur_p][tmpS];
                        
@@ -1836,6 +1838,8 @@ void fetch_result(BAT **r_obats, oid **o
                                //Output result
                                appendResult(r_obats, tmpres, np, sbt, 
n_exp_value); 
                        }
+
+                       hasvalue = 1;
                }
 
                
@@ -1850,6 +1854,19 @@ void fetch_result(BAT **r_obats, oid **o
                                //Output result
                                appendResult(r_obats, tmpres, np, sbt, 
n_exp_value + 1);                
                        }
+                       hasvalue = 1; 
+               }
+
+
+               if (hasvalue == 0){
+               
+                       if (cur_p < (np -1))
+                               fetch_result(r_obats, obatCursors, pos, 
regular_obat_cursors, regular_obat_mv_cursors, regular_obats, regular_obat_mv, 
sbt, tmpS, cur_p + 1, nrp, np, tmpres, n_exp_value); 
+
+                       else if (cur_p == (np - 1))
+                               //Output result
+                               appendResult(r_obats, tmpres, np, sbt, 
n_exp_value);            
+               
                }
 
 
@@ -2012,11 +2029,11 @@ void combine_exception_and_regular_table
 
 
                //printf("At row "BUNFMT" of table %d for sbt "BUNFMT"...", 
tmpS, tid, sbt); 
-               /*
-               if (sbt == (oid)879609302220975 && accept == 1){
+               
+               if (sbt == (oid)1460151441687511 && accept == 1){
                        printf("[DEBUG2] THAT SUBJECT "BUNFMT " IS 
ACCEPTED\n",sbt);
                }
-               */
+               
 
                if (accept == 1){       //Accept, can insert to the output bat  
                
                        oid *tmpres = (oid *) malloc(sizeof(oid) * nP); 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to