Changeset: 7393608efbdf for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7393608efbdf
Modified Files:
        sql/benchmarks/ssbm/Tests/01-13.stable.out
        sql/benchmarks/ssbm/Tests/01-13.stable.out.int128
        sql/benchmarks/ssbm/Tests/01.stable.out
        sql/benchmarks/ssbm/Tests/01.stable.out.int128
        sql/benchmarks/ssbm/Tests/02.stable.out
        sql/benchmarks/ssbm/Tests/02.stable.out.int128
        sql/benchmarks/ssbm/Tests/03.stable.out
        sql/benchmarks/ssbm/Tests/03.stable.out.int128
        sql/common/sql_types.c
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
        
sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out
        
sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out.int128
        sql/test/bugs/Tests/object_name-bug-sf-985242.stable.out
        sql/test/mapi/Tests/sql_int128.stable.out
        sql/test/pg_regress/Tests/int2.stable.out
        sql/test/pg_regress/Tests/int4.stable.out
        sql/test/pg_regress/Tests/int4.stable.out.int128
Branch: Dec2016
Log Message:

fix overflow problems


diffs (truncated from 454 to 300 lines):

diff --git a/sql/benchmarks/ssbm/Tests/01-13.stable.out 
b/sql/benchmarks/ssbm/Tests/01-13.stable.out
--- a/sql/benchmarks/ssbm/Tests/01-13.stable.out
+++ b/sql/benchmarks/ssbm/Tests/01-13.stable.out
@@ -36,7 +36,7 @@ Ready.
 #              and lo_quantity < 25;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 10 # length
 [ 4199635969   ]
 
@@ -52,7 +52,7 @@ Ready.
 #              and lo_quantity between 26 and 35;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 927530712    ]
 
@@ -68,7 +68,7 @@ Ready.
 #              and lo_quantity between 36 and 40;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 213477639    ]
 
diff --git a/sql/benchmarks/ssbm/Tests/01-13.stable.out.int128 
b/sql/benchmarks/ssbm/Tests/01-13.stable.out.int128
--- a/sql/benchmarks/ssbm/Tests/01-13.stable.out.int128
+++ b/sql/benchmarks/ssbm/Tests/01-13.stable.out.int128
@@ -36,7 +36,7 @@ Ready.
 #              and lo_quantity < 25;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 10 # length
 [ 4199635969   ]
 
@@ -52,7 +52,7 @@ Ready.
 #              and lo_quantity between 26 and 35;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 927530712    ]
 
@@ -68,7 +68,7 @@ Ready.
 #              and lo_quantity between 36 and 40;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 213477639    ]
 
diff --git a/sql/benchmarks/ssbm/Tests/01.stable.out 
b/sql/benchmarks/ssbm/Tests/01.stable.out
--- a/sql/benchmarks/ssbm/Tests/01.stable.out
+++ b/sql/benchmarks/ssbm/Tests/01.stable.out
@@ -31,7 +31,7 @@ Ready.
 #              and lo_quantity < 25;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 10 # length
 [ 4199635969   ]
 
diff --git a/sql/benchmarks/ssbm/Tests/01.stable.out.int128 
b/sql/benchmarks/ssbm/Tests/01.stable.out.int128
--- a/sql/benchmarks/ssbm/Tests/01.stable.out.int128
+++ b/sql/benchmarks/ssbm/Tests/01.stable.out.int128
@@ -31,7 +31,7 @@ Ready.
 #              and lo_quantity < 25;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 10 # length
 [ 4199635969   ]
 
diff --git a/sql/benchmarks/ssbm/Tests/02.stable.out 
b/sql/benchmarks/ssbm/Tests/02.stable.out
--- a/sql/benchmarks/ssbm/Tests/02.stable.out
+++ b/sql/benchmarks/ssbm/Tests/02.stable.out
@@ -31,7 +31,7 @@ Ready.
 #              and lo_quantity between 26 and 35;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 927530712    ]
 
diff --git a/sql/benchmarks/ssbm/Tests/02.stable.out.int128 
b/sql/benchmarks/ssbm/Tests/02.stable.out.int128
--- a/sql/benchmarks/ssbm/Tests/02.stable.out.int128
+++ b/sql/benchmarks/ssbm/Tests/02.stable.out.int128
@@ -31,7 +31,7 @@ Ready.
 #              and lo_quantity between 26 and 35;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 927530712    ]
 
diff --git a/sql/benchmarks/ssbm/Tests/03.stable.out 
b/sql/benchmarks/ssbm/Tests/03.stable.out
--- a/sql/benchmarks/ssbm/Tests/03.stable.out
+++ b/sql/benchmarks/ssbm/Tests/03.stable.out
@@ -31,7 +31,7 @@ Ready.
 #              and lo_quantity between 36 and 40;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 213477639    ]
 
diff --git a/sql/benchmarks/ssbm/Tests/03.stable.out.int128 
b/sql/benchmarks/ssbm/Tests/03.stable.out.int128
--- a/sql/benchmarks/ssbm/Tests/03.stable.out.int128
+++ b/sql/benchmarks/ssbm/Tests/03.stable.out.int128
@@ -31,7 +31,7 @@ Ready.
 #              and lo_quantity between 36 and 40;
 % sys.L4 # table_name
 % revenue # name
-% bigint # type
+% hugeint # type
 % 9 # length
 [ 213477639    ]
 
diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -199,14 +199,14 @@ sql_find_numeric(sql_subtype *r, int loc
 #ifdef HAVE_HGE
                if (have_hge) {
                        localtype = TYPE_hge;
-                       if (digits > 128)
-                               digits = 128;
+                       if (digits >= 128)
+                               digits = 127;
                } else
 #endif
                {
                        localtype = TYPE_lng;
-                       if (digits > 64)
-                               digits = 64;
+                       if (digits >= 64)
+                               digits = 63;
                }
        }
 
@@ -214,7 +214,7 @@ sql_find_numeric(sql_subtype *r, int loc
                sql_type *t = n->data;
 
                if (localtypes_cmp(t->localtype, localtype)) {
-                       if ((digits && t->digits >= digits) || (digits == 
t->digits)) {
+                       if ((digits && t->digits > digits) || (!digits && 
digits == t->digits)) {
                                sql_init_subtype(r, t, digits, 0);
                                return r;
                        }
@@ -224,7 +224,7 @@ sql_find_numeric(sql_subtype *r, int loc
                                        break;
                                }
                                n = m;
-                               if ((digits && t->digits >= digits) || (digits 
== t->digits)) {
+                               if ((digits && t->digits > digits) || (!digits 
&& digits == t->digits)) {
                                        sql_init_subtype(r, t, digits, 0);
                                        return r;
                                }
diff --git 
a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128 
b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
--- a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
+++ b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
@@ -60,11 +60,11 @@ function user.s8_1():void;
     X_33 := bat.new(nil:int);
     X_42 := bat.append(X_33,32:int);
     X_52 := bat.append(X_42,128:int);
-    X_60 := bat.append(X_52,128:int);
+    X_60 := bat.append(X_52,127:int);
     X_35 := bat.new(nil:int);
     X_44 := bat.append(X_35,0:int);
     X_54 := bat.append(X_44,0:int);
-    X_61 := bat.append(X_54,0:int);
+    X_62 := bat.append(X_54,0:int);
     X_3 := sql.mvc();
     C_4:bat[:oid] := sql.tid(X_3,"sys","dbg");
     X_7:bat[:int] := sql.bind(X_3,"sys","dbg","a",0:int);
@@ -77,7 +77,7 @@ function user.s8_1():void;
     X_15 := bat.setKey(X_14,true);
     X_22:bat[:hge] := batcalc./(X_20,2:bte);
     X_26:bat[:hge] := batcalc.*(X_22,2:bte);
-    sql.resultSet(X_55,X_57,X_59,X_60,X_61,X_15,X_20,X_26);
+    sql.resultSet(X_55,X_57,X_59,X_60,X_62,X_15,X_20,X_26);
 end user.s8_1;
 #inline               actions= 0 time=3 usec 
 #candidates           actions= 1 time=22 usec 
@@ -149,11 +149,11 @@ function user.s20_1():void;
     X_33 := bat.new(nil:int);
     X_42 := bat.append(X_33,32:int);
     X_52 := bat.append(X_42,128:int);
-    X_60 := bat.append(X_52,128:int);
+    X_60 := bat.append(X_52,127:int);
     X_35 := bat.new(nil:int);
     X_44 := bat.append(X_35,0:int);
     X_54 := bat.append(X_44,0:int);
-    X_61 := bat.append(X_54,0:int);
+    X_62 := bat.append(X_54,0:int);
     X_3 := sql.mvc();
     C_4:bat[:oid] := sql.tid(X_3,"sys","dbg");
     X_7:bat[:int] := sql.bind(X_3,"sys","dbg","a",0:int);
@@ -166,7 +166,7 @@ function user.s20_1():void;
     X_15 := bat.setKey(X_14,true);
     X_22:bat[:hge] := batcalc./(X_20,2:bte);
     X_26:bat[:hge] := batcalc.*(X_22,2:bte);
-    sql.resultSet(X_55,X_57,X_59,X_60,X_61,X_15,X_20,X_26);
+    sql.resultSet(X_55,X_57,X_59,X_60,X_62,X_15,X_20,X_26);
 end user.s20_1;
 #inline               actions= 0 time=2 usec 
 #candidates           actions= 1 time=20 usec 
diff --git 
a/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out
 
b/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out
--- 
a/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out
+++ 
b/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out
@@ -73,7 +73,7 @@ Ready.
 [ 1,   10,     "tien"  ]
 [ 11,  2,      "elf"   ]
 #SELECT a AS "A", b AS "B", c AS "C" FROM t_alias ORDER BY 1;
-% sys.L1,      sys.L2, sys.L3 # table_name
+% sys.L2,      sys.L4, sys.L6 # table_name
 % A,   B,      C # name
 % int, int,    varchar # type
 % 2,   2,      4 # length
@@ -86,19 +86,19 @@ Ready.
 % 1,   2,      4 # length
 [ 1,   10,     "tien"  ]
 #SELECT a AS "A", b * b AS "B", c AS "C" FROM t_alias WHERE "b" * b >99;
-% sys.L1,      sys.L2, sys.L3 # table_name
+% sys.L2,      sys.L4, sys.L6 # table_name
 % A,   B,      C # name
-% int, bigint, varchar # type
+% int, hugeint,        varchar # type
 % 1,   3,      4 # length
 [ 1,   100,    "tien"  ]
 #SELECT * FROM (SELECT a AS "A", b * b AS "B", c AS "C" FROM t_alias) T1 WHERE 
"B" >99;
 % sys.t1,      sys.t1, sys.t1 # table_name
 % A,   B,      C # name
-% int, bigint, varchar # type
+% int, hugeint,        varchar # type
 % 1,   3,      4 # length
 [ 1,   100,    "tien"  ]
 #SELECT a AS "A", b AS "B", c AS "C" FROM t_alias WHERE "c" LIKE '%en';
-% sys.L1,      sys.L2, sys.L3 # table_name
+% sys.L2,      sys.L4, sys.L6 # table_name
 % A,   B,      C # name
 % int, int,    varchar # type
 % 1,   2,      4 # length
@@ -110,7 +110,7 @@ Ready.
 % 1,   2,      4 # length
 [ 1,   10,     "tien"  ]
 #SELECT cast(null as char(1)) AS "CAT", a AS "A", c AS "C" FROM t_alias WHERE 
"c" = 'null';
-% .L2, sys.L3, sys.L4 # table_name
+% .L3, sys.L5, sys.L7 # table_name
 % CAT, A,      C # name
 % char,        int,    varchar # type
 % 1,   1,      0 # length
@@ -132,21 +132,21 @@ Ready.
 [ NULL,        1,      "tien"  ]
 [ NULL,        11,     "elf"   ]
 #SELECT a AS "A", b AS "B", c AS "C" FROM t_alias ORDER BY "C", "A", "B";
-% sys.L1,      sys.L2, sys.L3 # table_name
+% sys.L2,      sys.L4, sys.L6 # table_name
 % A,   B,      C # name
 % int, int,    varchar # type
 % 2,   2,      4 # length
 [ 11,  2,      "elf"   ]
 [ 1,   10,     "tien"  ]
 #SELECT a*b AS "A*B", c AS "C" FROM t_alias GROUP BY "C", "A*B";
-% sys.L1,      sys.t_alias # table_name
+% sys.L2,      sys.t_alias # table_name
 % A*B, C # name
-% bigint,      varchar # type
+% hugeint,     varchar # type
 % 2,   4 # length
 [ 10,  "tien"  ]
 [ 22,  "elf"   ]
 #SELECT a*b*b AS "A*B", c AS "C" FROM t_alias GROUP BY "C", "A*B" HAVING "A*B" 
IS NOT NULL ORDER BY -"A*B";
-% sys.L1,      sys.t_alias # table_name
+% sys.L2,      sys.t_alias # table_name
 % A*B, C # name
 % bigint,      varchar # type
 % 3,   4 # length
diff --git 
a/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out.int128
 
b/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out.int128
--- 
a/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out.int128
+++ 
b/sql/test/BugTracker-2016/Tests/column_alias_in_where_clause.Bug-3947.stable.out.int128
@@ -77,7 +77,7 @@ Ready.
 [ 1,   10,     "tien"  ]
 [ 11,  2,      "elf"   ]
 #SELECT a AS "A", b AS "B", c AS "C" FROM t_alias ORDER BY 1;
-% sys.L1,      sys.L2, sys.L3 # table_name
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to