Changeset: d37c0c573b27 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d37c0c573b27
Modified Files:
        MonetDB5/src/modules/kernel/algebra.mx
Branch: Jun2010
Log Message:

fixed problem in mark part


diffs (55 lines):

diff -r b17308d04b57 -r d37c0c573b27 MonetDB5/src/modules/kernel/algebra.mx
--- a/MonetDB5/src/modules/kernel/algebra.mx    Fri Aug 13 16:09:43 2010 +0200
+++ b/MonetDB5/src/modules/kernel/algebra.mx    Fri Aug 13 21:23:13 2010 +0200
@@ -3388,20 +3388,17 @@
 str 
 ALGtmarkp(int *result, int *bid, int *nr_parts, int *part_nr)
 {
-       int nr = *nr_parts;
 #if SIZEOF_OID == 4
-       int bits = 32;
+       int bits = 31;
 #else
-       int bits = 64;
+       int bits = 63;
 #endif
        oid base = 0;
        
        assert(*part_nr < *nr_parts);
-        while(nr > 0) {
-               nr >>= 1;
-               bits--;
-       }
-       base = (*part_nr)<<bits;
+       base = ((oid)1)<<bits;
+       base /= *nr_parts;
+       base *= *part_nr;
        return ALGtmark(result, bid, &base);
 }
 
@@ -3437,20 +3434,17 @@
 str 
 ALGhmarkp(int *result, int *bid, int *nr_parts, int *part_nr)
 {
-       int nr = *nr_parts;
 #if SIZEOF_OID == 4
-       int bits = 32;
+       int bits = 31;
 #else
-       int bits = 64;
+       int bits = 63;
 #endif
        oid base = 0;
        
        assert(*part_nr < *nr_parts);
-        while(nr > 0) {
-               nr >>= 1;
-               bits--;
-       }
-       base = (*part_nr)<<bits;
+       base = ((oid)1)<<bits;
+       base /= *nr_parts;
+       base *= *part_nr;
        return ALGmarkHead(result, bid, &base);
 }
 
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to