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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list