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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list