Changeset: c0eea5f63f0f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c0eea5f63f0f Modified Files: monetdb5/extras/rdf/rdf_shredder.c monetdb5/extras/rdf/rdfschema.c Branch: rdf Log Message:
Fix the problem when mapbat is modified (implicitly). diffs (102 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 @@ -176,8 +176,8 @@ rdf_BUNappend_unq_ForObj(parserData* pda /* * Get substring of a string + * NOTE: The position starts from 1 (not from 0) * */ - static char *substring(char *string, int position, int length) { @@ -227,6 +227,9 @@ char isInt(char *input, int len){ int getIntFromRDFString(str input){ int i; + int ret; + char *tmpStr; + assert(input[0] == '\"'); //Find the second quote @@ -234,14 +237,21 @@ int getIntFromRDFString(str input){ while (input[i] != '\"'){ i++; } - input[i] = '\0'; - input++; - //printf("Input after extraction %s \n", input); - return atoi(input); + //input[i] = '\0'; + //input++; + tmpStr = substring(input, 2, i - 1); + //printf("INT: Input after extraction %s \n", tmpStr); + ret = atoi(tmpStr); + //printf("return value: %d \n",ret); + free(tmpStr); + return ret; } float getFloatFromRDFString(str input){ int i; + float ret; + char *tmpStr; + assert(input[0] == '\"'); //Find the second quote @@ -249,16 +259,19 @@ float getFloatFromRDFString(str input){ while (input[i] != '\"'){ i++; } - input[i] = '\0'; - input++; - //printf("Input after extraction %s \n", input); - - return atof(input); + //input[i] = '\0'; + //input++; + tmpStr = substring(input, 2, i - 1); + //printf("FLOAT: Input after extraction %s \n", tmpStr); + ret = atof(tmpStr); + //printf("return value: %f \n",ret); + return ret; } str getDateTimeFromRDFString(str input){ int i; + char *tmpStr; assert(input[0] == '\"'); //Find the second quote @@ -266,11 +279,12 @@ str getDateTimeFromRDFString(str input){ while (input[i] != '\"'){ i++; } - input[i] = '\0'; - input++; - //printf("Input after extraction %s \n", input); + //input[i] = '\0'; + //input++; + tmpStr = substring(input, 2, i - 1); + //printf("DATETIME: Input after extraction %s \n", tmpStr); - return input; + return tmpStr; } /* diff --git a/monetdb5/extras/rdf/rdfschema.c b/monetdb5/extras/rdf/rdfschema.c --- a/monetdb5/extras/rdf/rdfschema.c +++ b/monetdb5/extras/rdf/rdfschema.c @@ -5998,6 +5998,7 @@ void getRealValue(void **returnValue, oi if (*returnValue != NULL) free(*returnValue); *returnValue = (char *)malloc(sizeof(char) * strlen(datetimeStr) + 1); memcpy(*returnValue,datetimeStr,sizeof(char) * strlen(datetimeStr) + 1); + free(datetimeStr); //printf("A datetime object value: %s \n",(char *)(*returnValue)); break; case INTEGER: _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list