Changeset: 34430d6f2246 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=34430d6f2246
Added Files:
        monetdb5/mal/Tests/tst059.mal
        monetdb5/mal/Tests/tst059.stable.err
        monetdb5/mal/Tests/tst059.stable.out
        sql/test/BugTracker-2014/Tests/ifthenelse.Bug-3629.sql
        sql/test/BugTracker-2014/Tests/ifthenelse.Bug-3629.stable.err
        sql/test/BugTracker-2014/Tests/ifthenelse.Bug-3629.stable.out
        sql/test/BugTracker-2014/Tests/order_by_incorrect_error.Bug-3630.sql
        
sql/test/BugTracker-2014/Tests/order_by_incorrect_error.Bug-3630.stable.err
        
sql/test/BugTracker-2014/Tests/order_by_incorrect_error.Bug-3630.stable.out
        sql/test/BugTracker-2014/Tests/stddev-empty.Bug-3628.sql
        sql/test/BugTracker-2014/Tests/stddev-empty.Bug-3628.stable.err
        sql/test/BugTracker-2014/Tests/stddev-empty.Bug-3628.stable.out
        sql/test/mergetables/Tests/alter.stable.err
        sql/test/mergetables/Tests/alter.stable.out
        sql/test/mergetables/Tests/types.stable.err
        sql/test/mergetables/Tests/types.stable.out
Modified Files:
        gdk/gdk_aggr.c
        monetdb5/mal/Tests/All
        monetdb5/modules/kernel/algebra.c
        sql/backends/monet5/Tests/limithack.stable.out
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statistics.c
        sql/scripts/80_statistics.sql
        sql/server/rel_optimizer.c
        sql/server/rel_psm.c
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/storage/store.c
        sql/test/BugTracker-2014/Tests/All
        sql/test/BugTracker-2014/Tests/in_incorrect_multi.Bug-3462.stable.err
        sql/test/BugTracker-2014/Tests/nil_2dec_lng.Bug-3592.stable.out
        sql/test/Dependencies/Tests/Dependencies_bam.stable.out
        sql/test/pg_regress/Tests/alter_table.stable.err
        sql/test/pg_regress/Tests/arrays.stable.err
        sql/test/pg_regress/Tests/boolean.stable.err
        sql/test/pg_regress/Tests/boolean.stable.out
        sql/test/pg_regress/Tests/case.stable.err
        sql/test/pg_regress/Tests/case.stable.out
        sql/test/pg_regress/Tests/char.stable.err
        sql/test/pg_regress/Tests/comments.stable.err
        sql/test/pg_regress/Tests/create_aggregate.stable.err
        sql/test/pg_regress/Tests/create_misc.stable.err
        sql/test/pg_regress/Tests/create_operator.stable.err
        sql/test/pg_regress/Tests/date.stable.err
        sql/test/pg_regress/Tests/date.stable.out
        sql/test/pg_regress/Tests/drop.stable.err
        sql/test/pg_regress/Tests/float4.stable.err
        sql/test/pg_regress/Tests/float8.stable.err
        sql/test/pg_regress/Tests/inet.stable.err
        sql/test/pg_regress/Tests/insert.stable.err
        sql/test/pg_regress/Tests/int2.stable.err
        sql/test/pg_regress/Tests/int4.stable.err
        sql/test/pg_regress/Tests/int8.stable.err
        sql/test/pg_regress/Tests/int8.stable.out
        sql/test/pg_regress/Tests/interval.stable.err
        sql/test/pg_regress/Tests/limit.stable.err
        sql/test/pg_regress/Tests/numeric.stable.err
        sql/test/pg_regress/Tests/numeric_big.stable.err
        sql/test/pg_regress/Tests/numerology.stable.err
        sql/test/pg_regress/Tests/oid.stable.err
        sql/test/pg_regress/Tests/select_into.stable.err
        sql/test/pg_regress/Tests/strings.stable.err
        sql/test/pg_regress/Tests/strings_cast.stable.err
        sql/test/pg_regress/Tests/strings_concat.stable.err
        sql/test/pg_regress/Tests/timestamp.stable.err
        sql/test/pg_regress/Tests/timestamptz.stable.err
        sql/test/pg_regress/Tests/timetz.stable.out
        sql/test/pg_regress/Tests/varchar.stable.err
        sql/test/pg_regress/Tests/without_oid.stable.err
Branch: transaction-replication
Log Message:

Merge with default branch


diffs (truncated from 8200 to 300 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -2634,7 +2634,7 @@ BATgroupquantile(BAT *b, BAT *g, BAT *e,
        } while (0)
 
 static dbl
-calcvariance(dbl *avgp, const void *values, BUN cnt, int tp, int issample)
+calcvariance(dbl *avgp, const void *values, BUN cnt, int tp, int issample, 
const char *func)
 {
        BUN n = 0, i;
        dbl mean = 0;
@@ -2674,6 +2674,8 @@ calcvariance(dbl *avgp, const void *valu
                AGGR_STDEV_SINGLE(dbl);
                break;
        default:
+               GDKerror("%s: type (%s) not supported.\n",
+                        func, ATOMname(tp));
                return dbl_nil;
        }
        if (n <= (BUN) issample) {
@@ -2690,7 +2692,8 @@ dbl
 BATcalcstdev_population(dbl *avgp, BAT *b)
 {
        dbl v = calcvariance(avgp, (const void *) Tloc(b, BUNfirst(b)),
-                            BATcount(b), b->ttype, 0);
+                            BATcount(b), b->ttype, 0,
+                            "BATcalcstdev_population");
        return v == dbl_nil ? dbl_nil : sqrt(v);
 }
 
@@ -2698,7 +2701,8 @@ dbl
 BATcalcstdev_sample(dbl *avgp, BAT *b)
 {
        dbl v = calcvariance(avgp, (const void *) Tloc(b, BUNfirst(b)),
-                            BATcount(b), b->ttype, 1);
+                            BATcount(b), b->ttype, 1,
+                            "BATcalcstdev_sample");
        return v == dbl_nil ? dbl_nil : sqrt(v);
 }
 
@@ -2706,14 +2710,16 @@ dbl
 BATcalcvariance_population(dbl *avgp, BAT *b)
 {
        return calcvariance(avgp, (const void *) Tloc(b, BUNfirst(b)),
-                           BATcount(b), b->ttype, 0);
+                           BATcount(b), b->ttype, 0,
+                           "BATcalcvariance_population");
 }
 
 dbl
 BATcalcvariance_sample(dbl *avgp, BAT *b)
 {
        return calcvariance(avgp, (const void *) Tloc(b, BUNfirst(b)),
-                           BATcount(b), b->ttype, 1);
+                           BATcount(b), b->ttype, 1,
+                           "BATcalcvariance_sample");
 }
 
 #define AGGR_STDEV(TYPE)                                               \
diff --git a/monetdb5/mal/Tests/All b/monetdb5/mal/Tests/All
--- a/monetdb5/mal/Tests/All
+++ b/monetdb5/mal/Tests/All
@@ -54,6 +54,7 @@ tst055
 tst056
 tst057
 tst058
+tst059
 tst060
 tst061
 tst070
diff --git a/monetdb5/mal/Tests/tst059.mal b/monetdb5/mal/Tests/tst059.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/mal/Tests/tst059.mal
@@ -0,0 +1,27 @@
+# three valued logic, using a sequential plan
+# for use in parallel blocks check for the nil in both branches
+# F b1 THEN RETURN 1;
+# ELSEIF NOT(b1) THEN RETURN 0;
+#  ELSE RETURN NULL;
+# END IF;
+
+function threevaluedlogic(B:bit):bit;
+       threevaluedlogic:int:= nil:int ;
+       barrier X_2 := B;
+               return threevaluedlogic:int  := 1:int;
+       exit X_2;
+       barrier X_8 := calc.isnil(B);
+               return threevaluedlogic:int  := nil:int;
+       exit X_8;
+       barrier X_6 := calc.not(B);
+               return threevaluedlogic:int  := 0:int;
+       exit X_6;
+       return threevaluedlogic:int;
+end threevaluedlogic;
+
+z1:= threevaluedlogic(true);
+io.print(z1);
+z2:= threevaluedlogic(false);
+io.print(z2);
+z3:= threevaluedlogic(nil:bit);
+io.print(z3);
diff --git a/monetdb5/mal/Tests/tst059.stable.err 
b/monetdb5/mal/Tests/tst059.stable.err
new file mode 100644
--- /dev/null
+++ b/monetdb5/mal/Tests/tst059.stable.err
@@ -0,0 +1,30 @@
+stderr of test 'tst059` in directory 'monetdb5/mal` itself:
+
+
+# 18:17:50 >  
+# 18:17:50 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=32986" "--set" 
"mapi_usock=/var/tmp/mtest-11633/.s.monetdb.32986" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/export/scratch1/mk/default//Linux/var/MonetDB/mTests_monetdb5_mal" 
"tst059.mal"
+# 18:17:50 >  
+
+# builtin opt  gdk_dbpath = 
/export/scratch1/mk/default//Linux/var/monetdb5/dbfarm/demo
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_vmtrim = no
+# builtin opt  monet_prompt = >
+# builtin opt  monet_daemon = no
+# builtin opt  mapi_port = 50000
+# builtin opt  mapi_open = false
+# builtin opt  mapi_autosense = false
+# builtin opt  sql_optimizer = default_pipe
+# builtin opt  sql_debug = 0
+# cmdline opt  gdk_nr_threads = 0
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 32986
+# cmdline opt  mapi_usock = /var/tmp/mtest-11633/.s.monetdb.32986
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbpath = 
/export/scratch1/mk/default//Linux/var/MonetDB/mTests_monetdb5_mal
+# cmdline opt  gdk_debug = 536870922
+
+# 18:17:50 >  
+# 18:17:50 >  "Done."
+# 18:17:50 >  
+
diff --git a/monetdb5/mal/Tests/tst059.stable.out 
b/monetdb5/mal/Tests/tst059.stable.out
new file mode 100644
--- /dev/null
+++ b/monetdb5/mal/Tests/tst059.stable.out
@@ -0,0 +1,54 @@
+stdout of test 'tst059` in directory 'monetdb5/mal` itself:
+
+
+# 18:17:50 >  
+# 18:17:50 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=32986" "--set" 
"mapi_usock=/var/tmp/mtest-11633/.s.monetdb.32986" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/export/scratch1/mk/default//Linux/var/MonetDB/mTests_monetdb5_mal" 
"tst059.mal"
+# 18:17:50 >  
+
+# MonetDB 5 server v11.20.0
+# This is an unreleased version
+# Serving database 'mTests_monetdb5_mal', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs and 128bit 
integers dynamically linked
+# Found 15.590 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2014 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://vienna.ins.cwi.nl:32986/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-11633/.s.monetdb.32986
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+function user.threevaluedlogic(B:bit):int;
+    threevaluedlogic:int  := nil:int;
+barrier X_2 := B;
+    return threevaluedlogic:int  := 1:int;
+exit X_2;
+barrier X_8 := calc.isnil(B);
+    return threevaluedlogic:int  := nil:int;
+exit X_8;
+barrier X_6 := calc.not(B);
+    return threevaluedlogic:int  := 0:int;
+exit X_6;
+    return threevaluedlogic:int  := threevaluedlogic;
+end threevaluedlogic;
+function user.main():void;
+# three valued logic, using a sequential plan 
+# for use in parallel blocks check for the nil in both branches 
+# F b1 THEN RETURN 1; 
+# ELSEIF NOT(b1) THEN RETURN 0; 
+#  ELSE RETURN NULL; 
+# END IF; 
+    z1 := user.threevaluedlogic(true);
+    io.print(z1);
+    z2 := user.threevaluedlogic(false);
+    io.print(z2);
+    z3 := user.threevaluedlogic(nil:bit);
+    io.print(z3);
+end main;
+[ 1 ]
+[ 0 ]
+[ nil ]
+
+# 18:17:50 >  
+# 18:17:50 >  "Done."
+# 18:17:50 >  
+
diff --git a/monetdb5/modules/kernel/algebra.c 
b/monetdb5/modules/kernel/algebra.c
--- a/monetdb5/modules/kernel/algebra.c
+++ b/monetdb5/modules/kernel/algebra.c
@@ -2177,7 +2177,7 @@ ALGstdev(dbl *res, const bat *bid)
                throw(MAL, "aggr.stdev", RUNTIME_OBJECT_MISSING);
        stdev = BATcalcstdev_sample(NULL, b);
        BBPreleaseref(b->batCacheid);
-       if (stdev == dbl_nil)
+       if (stdev == dbl_nil && GDKerrbuf && GDKerrbuf[0])
                throw(MAL, "aggr.stdev", SEMANTIC_TYPE_MISMATCH);
        *res = stdev;
        return MAL_SUCCEED;
@@ -2193,7 +2193,7 @@ ALGstdevp(dbl *res, const bat *bid)
                throw(MAL, "aggr.stdevp", RUNTIME_OBJECT_MISSING);
        stdev = BATcalcstdev_population(NULL, b);
        BBPreleaseref(b->batCacheid);
-       if (stdev == dbl_nil)
+       if (stdev == dbl_nil && GDKerrbuf && GDKerrbuf[0])
                throw(MAL, "aggr.stdevp", SEMANTIC_TYPE_MISMATCH);
        *res = stdev;
        return MAL_SUCCEED;
@@ -2212,7 +2212,7 @@ ALGvariance(dbl *res, const bat *bid)
                throw(MAL, "aggr.variance", RUNTIME_OBJECT_MISSING);
        variance = BATcalcvariance_sample(NULL, b);
        BBPreleaseref(b->batCacheid);
-       if (variance == dbl_nil)
+       if (variance == dbl_nil && GDKerrbuf && GDKerrbuf[0])
                throw(MAL, "aggr.variance", SEMANTIC_TYPE_MISMATCH);
        *res = variance;
        return MAL_SUCCEED;
@@ -2228,7 +2228,7 @@ ALGvariancep(dbl *res, const bat *bid)
                throw(MAL, "aggr.variancep", RUNTIME_OBJECT_MISSING);
        variance = BATcalcvariance_population(NULL, b);
        BBPreleaseref(b->batCacheid);
-       if (variance == dbl_nil)
+       if (variance == dbl_nil && GDKerrbuf && GDKerrbuf[0])
                throw(MAL, "aggr.variancep", SEMANTIC_TYPE_MISMATCH);
        *res = variance;
        return MAL_SUCCEED;
diff --git a/sql/backends/monet5/Tests/limithack.stable.out 
b/sql/backends/monet5/Tests/limithack.stable.out
--- a/sql/backends/monet5/Tests/limithack.stable.out
+++ b/sql/backends/monet5/Tests/limithack.stable.out
@@ -67,7 +67,7 @@ Ready.
 % id,  name,   schema_id,      query,  type,   system, commit_action,  
readonly,       temporary # name
 % int, varchar,        int,    varchar,        smallint,       boolean,        
smallint,       boolean,        tinyint # type
 % 4,   15,     4,      0,      1,      5,      1,      5,      1 # length
-[ 7201,        "systemfunctions",      2000,   NULL,   0,      true,   0,      
false,  0       ]
+[ 7194,        "systemfunctions",      2000,   NULL,   0,      true,   0,      
false,  0       ]
 
 # 17:27:34 >  
 # 17:27:34 >  "Done."
diff --git a/sql/backends/monet5/generator/generator.c 
b/sql/backends/monet5/generator/generator.c
--- a/sql/backends/monet5/generator/generator.c
+++ b/sql/backends/monet5/generator/generator.c
@@ -30,6 +30,8 @@
 #include "math.h"
 
 
+#define IDENTITY(x)    (x)
+
 /*
  * The noop simply means that we keep the properties for the generator object.
  */
@@ -986,10 +988,10 @@ str VLTgenerator_join(Client cntxt, MalB
 }
 
 /* The operands of a join operation can either be defined on a generator */
-#define VLTrangejoin(TPE, ABS) \
+#define VLTrangejoin(TPE, ABS, FLOOR) \
 { TPE f,f1,l,s; TPE *vlow,*vhgh; BUN w;\
-       f = *getArgReference_bte(stk,p, 1);\
-       l = *getArgReference_bte(stk,p, 2);\
+       f = *getArgReference_##TPE(stk,p, 1);\
+       l = *getArgReference_##TPE(stk,p, 2);\
        if ( p->argc == 3) \
                s = f<l? (TPE) 1: (TPE)-1;\
        else s = * getArgReference_##TPE(stk, p, 3); \
@@ -999,9 +1001,9 @@ str VLTgenerator_join(Client cntxt, MalB
        vlow = (TPE*) Tloc(blow,BUNfirst(blow));\
        vhgh = (TPE*) Tloc(bhgh,BUNfirst(bhgh));\
        for( ; cnt >0; cnt--, done++, o++,vlow++,vhgh++){\
-               f1 = f + floor(ABS(*vlow-f)/ABS(s)) * s;\
+               f1 = f + FLOOR(ABS(*vlow-f)/ABS(s)) * s;\
                if ( f1 < *vlow ) f1+= s;\
-               w = (BUN) floor(ABS(f1-f)/ABS(s));\
+               w = (BUN) FLOOR(ABS(f1-f)/ABS(s));\
                for( ; (f1 > *vlow || (li && f1 == *vlow)) && (f1 < *vhgh || 
(ri && f1 == *vhgh)); f1 += s, w++){\
                        if(c == limit)\
                                VLTrangeExpand();\
@@ -1058,43 +1060,15 @@ str VLTgenerator_rangejoin(Client cntxt,
 
        /* The actual join code for generators be injected here */
        switch(tpe){
-       case TYPE_bte: VLTrangejoin(bte,abs); break; 
-       case TYPE_sht: VLTrangejoin(sht,abs); break;
-       case TYPE_int: VLTrangejoin(int,abs); break;
-       case TYPE_lng: //VLTrangejoin(lng,llabs); break;
-       { lng f,f1,l,s; lng *vlow,*vhgh; BUN w;
-       f = *getArgReference_lng(stk,p, 1);
-       l = *getArgReference_lng(stk,p, 2);
-       if ( p->argc == 3)
-               s = f<l? (lng) 1: (lng)-1;
-       else s = * getArgReference_sht(stk, p, 3); 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to