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