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

Reply via email to