Changeset: 8f6d3e2a2eac for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8f6d3e2a2eac
Modified Files:
        sql/backends/monet5/dict.c
Branch: dict
Log Message:

unsigned vs signed gives interesting problems.
set min/max based on overflow.


diffs (45 lines):

diff --git a/sql/backends/monet5/dict.c b/sql/backends/monet5/dict.c
--- a/sql/backends/monet5/dict.c
+++ b/sql/backends/monet5/dict.c
@@ -132,15 +132,17 @@ DICTcompress(Client cntxt, MalBlkPtr mb,
                        throw(SQL, "dict.compress", SQLSTATE(HY013) 
"alter_storage failed");
                }
                BUN minpos = BUN_NONE, maxpos = BUN_NONE;
+               bte m = BATcount(u) - 1;
+               bte minval = m<0?m:0;
+               bte maxval = m<0?127:m;
                BATloop(o, p, q) {
-                       if (op[p] == 0) {
+                       if (op[p] == minval) {
                                minpos = p;
                                break;
                        }
                }
-               bte m = BATcount(u) - 1;
                BATloop(o, p, q) {
-                       if (op[p] == m) {
+                       if (op[p] == maxval) {
                                maxpos = p;
                                break;
                        }
@@ -169,15 +171,17 @@ DICTcompress(Client cntxt, MalBlkPtr mb,
                        throw(SQL, "dict.compress", SQLSTATE(HY013) 
"alter_storage failed");
                }
                BUN minpos = BUN_NONE, maxpos = BUN_NONE;
+               sht m = BATcount(u) - 1;
+               sht minval = m<0?m:0;
+               sht maxval = m<0?32767:m;
                BATloop(o, p, q) {
-                       if (op[p] == 0) {
+                       if (op[p] == minval) {
                                minpos = p;
                                break;
                        }
                }
-               sht m = BATcount(u) - 1;
                BATloop(o, p, q) {
-                       if (op[p] == m) {
+                       if (op[p] == maxval) {
                                maxpos = p;
                                break;
                        }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to