Changeset: f6ea1ba5010a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f6ea1ba5010a
Modified Files:
monetdb5/extras/rdf/rdf_shredder.mx
Branch: rdf
Log Message:
Fix the problem when the oid is > 2^63 by using bit 62th and 63th.
Do not use the bit 64th
diffs (28 lines):
diff --git a/monetdb5/extras/rdf/rdf_shredder.mx
b/monetdb5/extras/rdf/rdf_shredder.mx
--- a/monetdb5/extras/rdf/rdf_shredder.mx
+++ b/monetdb5/extras/rdf/rdf_shredder.mx
@@ -153,20 +153,20 @@ if (bun == BUN_NONE) {
//bun = (BUN) ((@1)->hseqbase + (@1)->batCount);
bun = (BUN) (RDF_MIN_LITERAL + (@1)->batCount);
- /* Add the type here */
+ /* Add the type here by changing 2 bits at position 62, 63 of oid */
if (@3 == DATETIME){
printf("Datetime appears here \n Before: " BUNFMT "\n", bun);
- bun |= (BUN)1 << (sizeof(BUN)*8 - 2);
+ bun |= (BUN)1 << (sizeof(BUN)*8 - 3);
printf("After: " BUNFMT "\n", bun);
}
else if (@3 == NUMERIC){
printf("Numeric value appears here \n Before: " BUNFMT "\n",
bun);
- bun |= (BUN)2 << (sizeof(BUN)*8 - 2);
+ bun |= (BUN)2 << (sizeof(BUN)*8 - 3);
printf("After: " BUNFMT "\n", bun);
}
else { /* @3 == STRING */
printf("String value appears here \n Before: " BUNFMT "\n",
bun);
- bun |= (BUN)3 << (sizeof(BUN)*8 - 2);
+ bun |= (BUN)3 << (sizeof(BUN)*8 - 3);
printf("After: " BUNFMT "\n", bun);
}
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list