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 checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list