Changeset: 87492edc7a54 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=87492edc7a54
Modified Files:
        gdk/gdk_select.c
Branch: default
Log Message:

merge with default


diffs (105 lines):

diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -183,11 +183,11 @@ BAT_hashselect(BAT *b, BAT *s, BAT *bn, 
 /* inner check */
 #define impscheck(CAND,TEST,ADD)                                           \
 do {                                                                       \
-       e = i+limit-pr_off;                                                 \
+       e = i+limit-pr_off+off;                                             \
        if (im[icnt] & mask) {                                              \
                if ((im[icnt] & ~innermask) == 0) {                         \
                        while (o < e && p < q) {                            \
-                               v = src[o];                                 \
+                               v = src[o-off];                             \
                                ADD;                                        \
                                cnt++;                                      \
                                p++;                                        \
@@ -195,7 +195,7 @@ do {                                                        
                    \
                        }                                                   \
                } else {                                                    \
                        while (o < e && p < q) {                            \
-                               v = src[o];                                 \
+                               v = src[o-off];                             \
                                ADD;                                        \
                                cnt += (TEST);                              \
                                p++;                                        \
@@ -223,24 +223,24 @@ do {                                                      
                    \
        bte rpp    = ATOMelmshift(IMPS_PAGE >> b->T->shift);                \
        CAND;                                                               \
        for (i=0, dcnt=0, icnt=0;                                           \
-            (dcnt < imprints->dictcnt) && (i < w+pr_off);                  \
+            (dcnt < imprints->dictcnt) && (i+off < w+pr_off);              \
             dcnt++) {                                                      \
                limit = ((BUN) d[dcnt].cnt) << rpp;                         \
-               while ((i+limit) <= (o+pr_off)) {                           \
+               while ((i+limit+off) <= (o+pr_off)) {                       \
                        i += limit;                                         \
                        icnt += d[dcnt].repeat?1:d[dcnt].cnt;               \
                        dcnt++;                                             \
                        limit = ((BUN) d[dcnt].cnt) << rpp;                 \
                }                                                           \
                if (!d[dcnt].repeat) {                                      \
-                       limit = (BUN) 1 << rpp;                         \
+                       limit = (BUN) 1 << rpp;                             \
                        l = icnt + d[dcnt].cnt;                             \
-                       while (i+limit <= (o+pr_off)) {                     \
+                       while ((i+limit+off) <= (o+pr_off)) {               \
                                icnt++;                                     \
                                i += limit;                                 \
                        }                                                   \
                        for (;                                              \
-                            icnt < l && (i < w+pr_off);                    \
+                            icnt < l && (i+off < w+pr_off);                \
                             icnt++) {                                      \
                                impscheck(CAND,TEST,ADD);                   \
                                i += limit;                                 \
@@ -278,12 +278,12 @@ do {                                                      
                    \
                                                                            \
        if (BATcapacity(bn) < maximum) {                                    \
                impsloop(CAND, TEST,                                        \
-                        buninsfix(bn, T, dst, cnt, oid, (oid)(o + off),    \
+                        buninsfix(bn, T, dst, cnt, oid, (oid)(o),          \
                                   (BUN) ((dbl) cnt / (dbl) (p-r)           \
                                          * (dbl) (q-p) * 1.1 + 1024),      \
                                   BATcapacity(bn) + q - p, BUN_NONE));     \
        } else {                                                            \
-               impsloop(CAND, TEST, dst[cnt] = (oid)(o + off));            \
+               impsloop(CAND, TEST, dst[cnt] = (oid)(o));                  \
        }                                                                   \
 } while (0)
 
@@ -316,8 +316,8 @@ do {                                                        
                \
        if (BATcapacity(bn) < maximum) {                                \
                while (p < q) {                                         \
                        CAND;                                           \
-                       v = src[o];                                     \
-                       buninsfix(bn, T, dst, cnt, oid, (oid)(o + off), \
+                       v = src[o-off];                                 \
+                       buninsfix(bn, T, dst, cnt, oid, (oid)(o),       \
                                  (BUN) ((dbl) cnt / (dbl) (p-r)        \
                                         * (dbl) (q-p) * 1.1 + 1024),   \
                                  BATcapacity(bn) + q - p, BUN_NONE);   \
@@ -327,8 +327,8 @@ do {                                                        
                \
        } else {                                                        \
                while (p < q) {                                         \
                        CAND;                                           \
-                       v = src[o];                                     \
-                       dst[cnt] = (oid)(o + off);                      \
+                       v = src[o-off];                                 \
+                       dst[cnt] = (oid)(o);                            \
                        cnt += (TEST);                                  \
                        p++;                                            \
                }                                                       \
@@ -597,9 +597,9 @@ fullscan_any(BAT *b, BAT *s, BAT *bn, co
        scanfunc(NAME, lng, CAND, END)
 
 /* scan/imprints select with candidates */
-scan_sel(candscan, o = (oid) (*candlist++ - off), w = (BUN) ((*(oid *) 
Tloc(s,q?(q - 1):0)) + 1 - off))
+scan_sel(candscan, o = (oid) (*candlist++), w = (BUN) ((*(oid *) Tloc(s,q?(q - 
1):0)) + 1))
 /* scan/imprints select without candidates */
-    scan_sel(fullscan, o = p, w = q)
+scan_sel(fullscan, o = p+off, w = q+off)
 
 
 static BAT *
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to