Changeset: 938e614078b6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=938e614078b6
Added Files:
sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.sql
sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.stable.err
sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.stable.out
Modified Files:
sql/backends/monet5/UDF/Tests/udf-fuse.stable.out
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_result.c
sql/benchmarks/ssbm/Tests/01-explain.stable.out
sql/benchmarks/ssbm/Tests/02-explain.stable.out
sql/benchmarks/ssbm/Tests/03-explain.stable.out
sql/benchmarks/tpch/Tests/06-explain.stable.out
sql/benchmarks/tpch/Tests/14-explain.stable.out
sql/benchmarks/tpch/Tests/17-explain.stable.out
sql/benchmarks/tpch/Tests/19-explain.stable.out
sql/common/sql_types.c
sql/common/sql_types.h
sql/test/BugTracker-2015/Tests/All
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
Branch: Oct2014
Log Message:
moved OID's to its own class of types, ie now we check for negative
oids (which aren't allowed).
diffs (truncated from 387 to 300 lines):
diff --git a/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out
b/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out
--- a/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out
+++ b/sql/backends/monet5/UDF/Tests/udf-fuse.stable.out
@@ -30,7 +30,7 @@ Ready.
% 73 # length
function user.s2_1{autoCommit=true}(A0:bte,A1:bte):void;
X_4 := udf.fuse(A0,A1);
- sql.exportValue(1,".L","fuse_single_value","smallint",16,0,6,X_4,"");
+ sql.exportValue(1,".L","fuse_single_value","smallint",16,0,7,X_4,"");
end s2_1;
# querylog.define("explain select fuse(1,2);","default_pipe")
#select fuse(1,2);
@@ -46,7 +46,7 @@ end s2_1;
% 70 # length
function user.s3_1{autoCommit=true}(A0:sht,A1:sht):void;
X_4 := udf.fuse(A0,A1);
- sql.exportValue(1,".L","fuse_single_value","int",32,0,6,X_4,"");
+ sql.exportValue(1,".L","fuse_single_value","int",32,0,7,X_4,"");
end s3_1;
# querylog.define("explain select fuse(1000,2000);","default_pipe")
#select fuse(1000,2000);
@@ -62,7 +62,7 @@ end s3_1;
% 76 # length
function user.s4_1{autoCommit=true}(A0:int,A1:int):void;
X_4 := udf.fuse(A0,A1);
- sql.exportValue(1,".L","fuse_single_value","bigint",64,0,6,X_4,"");
+ sql.exportValue(1,".L","fuse_single_value","bigint",64,0,7,X_4,"");
end s4_1;
# querylog.define("explain select fuse(1000000,2000000);","default_pipe")
#select fuse(1000000,2000000);
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -1272,7 +1272,8 @@ rel2bin_table( mvc *sql, sql_rel *rel, l
l = sa_list(sql->sa);
for (argc = 0; argc < sql->argc; argc++) {
atom *a = sql->args[argc];
- stmt *s = stmt_atom(sql->sa, a);
+ //stmt *s = stmt_atom(sql->sa, a);
+ stmt *s = stmt_varnr(sql->sa, argc, &a->tpe);
char nme[16];
snprintf(nme, 16, "A%d", argc);
diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -1328,7 +1328,7 @@ export_length(stream *s, int mtype, int
}
ok = mvc_send_int(s, l);
}
- } else if (eclass == EC_NUM) {
+ } else if (eclass == EC_NUM || eclass == EC_POS) {
count = 0;
if (bid) {
BAT *b = BATdescriptor(bid);
diff --git a/sql/benchmarks/ssbm/Tests/01-explain.stable.out
b/sql/benchmarks/ssbm/Tests/01-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/01-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/01-explain.stable.out
@@ -78,7 +78,7 @@ function user.s2_1{autoCommit=true}(A0:i
X_59 := algebra.leftfetchjoin(X_47,X_58);
X_60:bat[:oid,:lng] := batcalc.*(X_57,X_59);
X_61:lng := aggr.sum(X_60);
- sql.exportValue(1,"sys.L1","revenue","bigint",53,0,6,X_61,"");
+ sql.exportValue(1,"sys.L1","revenue","bigint",53,0,7,X_61,"");
end s2_1;
# querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as
revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand
d_year = 1993\n\t\tand lo_discount between 1 and 3\n\t\tand lo_quantity <
25;","sequential_pipe")
diff --git a/sql/benchmarks/ssbm/Tests/02-explain.stable.out
b/sql/benchmarks/ssbm/Tests/02-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/02-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/02-explain.stable.out
@@ -78,7 +78,7 @@ function user.s2_1{autoCommit=true}(A0:i
X_59 := algebra.leftfetchjoin(X_47,X_58);
X_60:bat[:oid,:lng] := batcalc.*(X_57,X_59);
X_61:lng := aggr.sum(X_60);
- sql.exportValue(1,"sys.L1","revenue","bigint",53,0,6,X_61,"");
+ sql.exportValue(1,"sys.L1","revenue","bigint",53,0,7,X_61,"");
end s2_1;
# querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as
revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand
d_yearmonthnum = 199401\n\t\tand lo_discount between 4 and 6\n\t\tand
lo_quantity between 26 and 35;","sequential_pipe")
diff --git a/sql/benchmarks/ssbm/Tests/03-explain.stable.out
b/sql/benchmarks/ssbm/Tests/03-explain.stable.out
--- a/sql/benchmarks/ssbm/Tests/03-explain.stable.out
+++ b/sql/benchmarks/ssbm/Tests/03-explain.stable.out
@@ -85,7 +85,7 @@ function user.s2_1{autoCommit=true}(A0:i
X_68 := algebra.leftfetchjoin(X_55,X_67);
X_69:bat[:oid,:lng] := batcalc.*(X_66,X_68);
X_70:lng := aggr.sum(X_69);
- sql.exportValue(1,"sys.L1","revenue","bigint",53,0,6,X_70,"");
+ sql.exportValue(1,"sys.L1","revenue","bigint",53,0,7,X_70,"");
end s2_1;
# querylog.define("explain\nselect sum(lo_extendedprice*lo_discount) as
revenue\n\tfrom lineorder, dwdate\n\twhere lo_orderdate = d_datekey\n\t\tand
d_weeknuminyear = 6 and d_year = 1994\n\t\tand lo_discount between 5 and
7\n\t\tand lo_quantity between 36 and 40;","sequential_pipe")
diff --git a/sql/benchmarks/tpch/Tests/06-explain.stable.out
b/sql/benchmarks/tpch/Tests/06-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/06-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/06-explain.stable.out
@@ -75,7 +75,7 @@ function user.s2_1{autoCommit=true}(A0:d
X_55 := sql.projectdelta(X_45,X_14,X_17,r1_17,X_20);
X_56:bat[:oid,:lng] := batcalc.*(X_54,X_55);
X_57:lng := aggr.sum(X_56);
- sql.exportValue(1,"sys.L1","revenue","decimal",19,4,8,X_57,"");
+ sql.exportValue(1,"sys.L1","revenue","decimal",19,4,9,X_57,"");
end s2_1;
# querylog.define("explain select\n\tsum(l_extendedprice * l_discount) as
revenue\nfrom\n\tlineitem\nwhere\n\tl_shipdate >= date \\'1994-01-01\\'\n\tand
l_shipdate < date \\'1994-01-01\\' + interval \\'1\\' year\n\tand l_discount
between 0.06 - 0.01 and 0.06 + 0.01\n\tand l_quantity < 24;","sequential_pipe")
diff --git a/sql/benchmarks/tpch/Tests/14-explain.stable.out
b/sql/benchmarks/tpch/Tests/14-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/14-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/14-explain.stable.out
@@ -48,12 +48,12 @@ function user.s2_1{autoCommit=true}(A0:s
X_14:bat[:oid,:date] := sql.bind(X_10,"sys","lineitem","l_shipdate",0);
X_11:bat[:oid,:oid] := sql.tid(X_10,"sys","lineitem");
X_22 := mtime.addmonths(A6,A7);
- X_109 := algebra.subselect(X_14,X_11,A5,X_22,true,false,false);
+ X_110 := algebra.subselect(X_14,X_11,A5,X_22,true,false,false);
(X_17,r1_18) := sql.bind(X_10,"sys","lineitem","l_shipdate",2);
- X_110 := algebra.subselect(r1_18,A5,X_22,true,false,false);
+ X_111 := algebra.subselect(r1_18,A5,X_22,true,false,false);
X_20:bat[:oid,:date] := sql.bind(X_10,"sys","lineitem","l_shipdate",1);
- X_111 := algebra.subselect(X_20,X_11,A5,X_22,true,false,false);
- X_23 := sql.subdelta(X_109,X_11,X_17,X_110,X_111);
+ X_112 := algebra.subselect(X_20,X_11,A5,X_22,true,false,false);
+ X_23 := sql.subdelta(X_110,X_11,X_17,X_111,X_112);
X_25:bat[:oid,:oid] :=
sql.bind_idxbat(X_10,"sys","lineitem","lineitem_l_partkey_fkey",0);
(X_27,r1_33) :=
sql.bind_idxbat(X_10,"sys","lineitem","lineitem_l_partkey_fkey",2);
X_29:bat[:oid,:oid] :=
sql.bind_idxbat(X_10,"sys","lineitem","lineitem_l_partkey_fkey",1);
@@ -91,7 +91,7 @@ function user.s2_1{autoCommit=true}(A0:s
X_80:lng := aggr.sum(X_79);
X_81 := calc./(X_74,X_80);
X_82 := calc.*(A0,X_81);
- sql.exportValue(1,".L2","promo_revenue","decimal",19,2,8,X_82,"");
+ sql.exportValue(1,".L2","promo_revenue","decimal",19,2,9,X_82,"");
end s2_1;
# querylog.define("explain select\n\t100.00 * sum(case\n\t\twhen p_type like
\\'PROMO%\\'\n\t\t\tthen l_extendedprice * (1 - l_discount)\n\t\telse 0\n\tend)
/ sum(l_extendedprice * (1 - l_discount)) as
promo_revenue\nfrom\n\tlineitem,\n\tpart\nwhere\n\tl_partkey = p_partkey\n\tand
l_shipdate >= date \\'1995-09-01\\'\n\tand l_shipdate < date \\'1995-09-01\\' +
interval \\'1\\' month;","sequential_pipe")
diff --git a/sql/benchmarks/tpch/Tests/17-explain.stable.out
b/sql/benchmarks/tpch/Tests/17-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/17-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/17-explain.stable.out
@@ -111,7 +111,7 @@ function user.s2_1{autoCommit=true}(A0:b
X_100 := calc.lng(2,X_99,18,5);
X_103 := calc.lng(1,A0,15,2);
X_106 := calc./(X_100,X_103);
- sql.exportValue(1,"sys.L3","avg_yearly","decimal",18,3,8,X_106,"");
+ sql.exportValue(1,"sys.L3","avg_yearly","decimal",18,3,9,X_106,"");
end s2_1;
# querylog.define("explain select\n\tsum(l_extendedprice) / 7.0 as
avg_yearly\nfrom\n\tlineitem,\n\tpart\nwhere\n\tp_partkey = l_partkey\n\tand
p_brand = \\'Brand#23\\'\n\tand p_container = \\'MED BOX\\'\n\tand l_quantity <
(\n\t\tselect\n\t\t\t0.2 *
avg(l_quantity)\n\t\tfrom\n\t\t\tlineitem\n\t\twhere\n\t\t\tl_partkey =
p_partkey\n\t);","sequential_pipe")
diff --git a/sql/benchmarks/tpch/Tests/19-explain.stable.out
b/sql/benchmarks/tpch/Tests/19-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/19-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/19-explain.stable.out
@@ -217,7 +217,7 @@ function user.s2_1{autoCommit=true}(A0:b
X_260:bat[:oid,:lng] := batcalc.-(X_251,X_259);
X_261:bat[:oid,:lng] := batcalc.*(X_250,X_260);
X_262:lng := aggr.sum(X_261);
- sql.exportValue(1,"sys.L1","revenue","decimal",19,4,8,X_262,"");
+ sql.exportValue(1,"sys.L1","revenue","decimal",19,4,9,X_262,"");
end s2_1;
# querylog.define("explain select\n\tsum(l_extendedprice* (1 - l_discount)) as
revenue\nfrom\n\tlineitem,\n\tpart\nwhere\n\t(\n\t\tp_partkey =
l_partkey\n\t\tand p_brand = \\'Brand#12\\'\n\t\tand p_container in (\\'SM
CASE\\', \\'SM BOX\\', \\'SM PACK\\', \\'SM PKG\\')\n\t\tand l_quantity >= 1
and l_quantity <= 1 + 10\n\t\tand p_size between 1 and 5\n\t\tand l_shipmode in
(\\'AIR\\', \\'AIR REG\\')\n\t\tand l_shipinstruct = \\'DELIVER IN
PERSON\\'\n\t)\n\tor\n\t(\n\t\tp_partkey = l_partkey\n\t\tand p_brand =
\\'Brand#23\\'\n\t\tand p_container in (\\'MED BAG\\', \\'MED BOX\\', \\'MED
PKG\\', \\'MED PACK\\')\n\t\tand l_quantity >= 10 and l_quantity <= 10 +
10\n\t\tand p_size between 1 and 10\n\t\tand l_shipmode in (\\'AIR\\', \\'AIR
REG\\')\n\t\tand l_shipinstruct = \\'DELIVER IN
PERSON\\'\n\t)\n\tor\n\t(\n\t\tp_partkey = l_partkey\n\t\tand p_brand =
\\'Brand#34\\'\n\t\tand p_container in (\\'LG CASE\\', \\'LG BOX\\', \\'LG
PACK\\', \\'LG PKG\\')\n\t\tand l_quantity >= 20 and l_quant
ity <= 20 + 10\n\t\tand p_size between 1 and 15\n\t\tand l_shipmode in
(\\'AIR\\', \\'AIR REG\\')\n\t\tand l_shipinstruct = \\'DELIVER IN
PERSON\\'\n\t);","sequential_pipe")
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
@@ -89,20 +89,21 @@ int bits2digits(int bits)
/* 3 casts are allowed (requires dynamic checks) (sofar not used) */
static int convert_matrix[EC_MAX][EC_MAX] = {
-/* EC_ANY */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, /* NULL */
-/* EC_TABLE */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-/* EC_BIT */ { 0, 0, 1, 1, 1, 0, 2, 2, 2, 0, 0, 0, 0, 0 },
-/* EC_CHAR */ { 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
-/* EC_STRING */ { 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
-/* EC_BLOB */ { 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
-/* EC_NUM */ { 0, 0, 2, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0 },
-/* EC_INTERVAL*/{ 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0 },
-/* EC_DEC */ { 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0 },
-/* EC_FLT */ { 0, 0, 0, 1, 1, 0, 1, 3, 1, 1, 0, 0, 0, 0 },
-/* EC_TIME */ { 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0 },
-/* EC_DATE */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0 },
-/* EC_TSTAMP */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0 },
-/* EC_EXTERNAL*/{ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+/* EC_ANY */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, /* NULL */
+/* EC_TABLE */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* EC_BIT */ { 0, 0, 1, 1, 1, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0 },
+/* EC_CHAR */ { 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
+/* EC_STRING */ { 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
+/* EC_BLOB */ { 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+/* EC_POS */ { 0, 0, 2, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0 },
+/* EC_NUM */ { 0, 0, 2, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* EC_INTERVAL*/{ 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0 },
+/* EC_DEC */ { 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+/* EC_FLT */ { 0, 0, 0, 1, 1, 0, 1, 1, 3, 1, 1, 0, 0, 0, 0 },
+/* EC_TIME */ { 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0 },
+/* EC_DATE */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0 },
+/* EC_TSTAMP */ { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0 },
+/* EC_EXTERNAL*/{ 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
int sql_type_convert (int from, int to)
@@ -1119,20 +1120,20 @@ sqltypeinit( sql_allocator *sa)
*t++ = sql_create_type(sa, "CLOB", 0, 0, 0, EC_STRING, "str");
numerical = t;
+#if SIZEOF_OID == SIZEOF_INT
+ OID = *t++ = sql_create_type(sa, "OID", 31, 0, 2, EC_POS, "oid");
+#endif
+#if SIZEOF_OID == SIZEOF_LNG
+ OID = *t++ = sql_create_type(sa, "OID", 63, 0, 2, EC_POS, "oid");
+#endif
BTE = *t++ = sql_create_type(sa, "TINYINT", 8, SCALE_FIX, 2, EC_NUM,
"bte");
SHT = *t++ = sql_create_type(sa, "SMALLINT", 16, SCALE_FIX, 2, EC_NUM,
"sht");
INT = *t++ = sql_create_type(sa, "INT", 32, SCALE_FIX, 2, EC_NUM,
"int");
-#if SIZEOF_OID == SIZEOF_INT
- OID = *t++ = sql_create_type(sa, "OID", 31, 0, 2, EC_NUM, "oid");
-#endif
#if SIZEOF_WRD == SIZEOF_INT
WRD = *t++ = sql_create_type(sa, "WRD", 32, SCALE_FIX, 2, EC_NUM,
"wrd");
#endif
LNG = *t++ = sql_create_type(sa, "BIGINT", 64, SCALE_FIX, 2, EC_NUM,
"lng");
-#if SIZEOF_OID == SIZEOF_LNG
- OID = *t++ = sql_create_type(sa, "OID", 63, 0, 2, EC_NUM, "oid");
-#endif
#if SIZEOF_WRD == SIZEOF_LNG
WRD = *t++ = sql_create_type(sa, "WRD", 64, SCALE_FIX, 2, EC_NUM,
"wrd");
#endif
diff --git a/sql/common/sql_types.h b/sql/common/sql_types.h
--- a/sql/common/sql_types.h
+++ b/sql/common/sql_types.h
@@ -27,7 +27,7 @@
#include <sql_storage.h>
#include <stream.h>
-#define EC_MAX 14
+#define EC_MAX 15
#define EC_ANY 0
#define EC_TABLE 1
#define EC_BIT 2
@@ -36,22 +36,23 @@
#define EC_BLOB 5
#define EC_VARCHAR(e) (e==EC_CHAR||e==EC_STRING)
-#define EC_NUM 6
-#define EC_INTERVAL 7
-#define EC_DEC 8
-#define EC_FLT 9
-#define EC_NUMBER(e) (e==EC_NUM||e==EC_INTERVAL||e==EC_DEC||e==EC_FLT)
+#define EC_POS 6
+#define EC_NUM 7
+#define EC_INTERVAL 8
+#define EC_DEC 9
+#define EC_FLT 10
+#define EC_NUMBER(e)
(e==EC_POS||e==EC_NUM||e==EC_INTERVAL||e==EC_DEC||e==EC_FLT)
-#define EC_TIME 10
-#define EC_DATE 11
-#define EC_TIMESTAMP 12
+#define EC_TIME 11
+#define EC_DATE 12
+#define EC_TIMESTAMP 13
#define EC_TEMP(e) (e==EC_TIME||e==EC_DATE||e==EC_TIMESTAMP)
-#define EC_EXTERNAL 13
+#define EC_EXTERNAL 14
#define EC_TEMP_FRAC(e) (e==EC_TIME||e==EC_TIMESTAMP)
#define EC_FIXED(e) (e==EC_BIT||e==EC_CHAR||\
- e==EC_NUM||e==EC_INTERVAL||e==EC_DEC||EC_TEMP(e))
+
e==EC_POS||e==EC_NUM||e==EC_INTERVAL||e==EC_DEC||EC_TEMP(e))
#define has_tz(e,n) (EC_TEMP(e) && \
((e == EC_TIME && strcmp(n, "timetz") == 0) || \
diff --git a/sql/test/BugTracker-2015/Tests/All
b/sql/test/BugTracker-2015/Tests/All
--- a/sql/test/BugTracker-2015/Tests/All
+++ b/sql/test/BugTracker-2015/Tests/All
@@ -8,4 +8,5 @@ inet-ordering.Bug-3660
row-value-constructor-crash.Bug-3662
incorrect-ROW_NUMBER.Bug-3663
string-to-inet.Bug-3666
+negative_oid_crash.Bug-3667
ukey_check_unaligned.Bug-3669
diff --git a/sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.sql
b/sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.sql
@@ -0,0 +1,4 @@
+CREATE TABLE OID_TBL(f1 oid);
+INSERT INTO OID_TBL(f1) VALUES (-1040);
+SELECT * FROM OID_TBL;
+drop table OID_TBL;
diff --git
a/sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.stable.err
b/sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2015/Tests/negative_oid_crash.Bug-3667.stable.err
@@ -0,0 +1,40 @@
+stderr of test 'negative_oid_crash.Bug-3667` in directory
'sql/test/BugTracker-2015` itself:
+
+
+# 18:39:12 >
+# 18:39:12 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=30454" "--set"
"mapi_usock=/var/tmp/mtest-18114/.s.monetdb.30454" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2015"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 18:39:12 >
+
+# builtin opt gdk_dbpath =
/home/niels/scratch/rc-clean/Linux-x86_64/var/monetdb5/dbfarm/demo
+# builtin opt gdk_debug = 0
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list