Changeset: 60b08bfdf6e9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=60b08bfdf6e9
Added Files:
        sql/test/Triggers/Tests/trigger_projection.sql.src
        sql/test/Triggers/Tests/trigger_projection.stable.err
        sql/test/Triggers/Tests/trigger_projection.stable.out
        sql/test/Triggers/trigger_projection.sql
Removed Files:
        sql/test/miscellaneous/Tests/trigger_projection.sql
        sql/test/miscellaneous/Tests/trigger_projection.stable.err
        sql/test/miscellaneous/Tests/trigger_projection.stable.out
Modified Files:
        configure.ag
        monetdb5/extras/rapi/rapi.c
        monetdb5/modules/mal/mkey.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_user.c
        sql/test/Triggers/Tests/All
        sql/test/Triggers/run.all
        sql/test/Users/Tests/createUserRollback.SQL.py
        sql/test/Users/Tests/createUserRollback.stable.err
        sql/test/Users/Tests/createUserRollback.stable.out
        sql/test/miscellaneous/Tests/All
        testing/Mtest.py.in
Branch: scoping
Log Message:

Merged with default


diffs (truncated from 641 to 300 lines):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -856,7 +856,7 @@ AS_CASE([$enable_optimize], [yes], [
                        # -finline-functions, -funswitch-loops,
                        # -fpredictive-commoning, -fgcse-after-reload,
                        # -ftree-vectorize and -fipa-cp-clone
-                       CFLAGS="-O3 -fomit-frame-pointer -pipe ${CFLAGS}"
+                       CFLAGS="-O2 -fomit-frame-pointer -pipe ${CFLAGS}"
                        # because we explicitly disable debugging, we can 
explicitly
                        # enable -fomit-frame-pointer here
                        # notes on -funroll-all-loops:
diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c
--- a/monetdb5/extras/rapi/rapi.c
+++ b/monetdb5/extras/rapi/rapi.c
@@ -30,6 +30,7 @@
 
 #define USE_RINTERNALS 1
 
+#include <Rversion.h>
 #include <Rembedded.h>
 #include <Rdefines.h>
 #include <Rinternals.h>
@@ -110,25 +111,34 @@ static char *RAPIinitialize(void) {
        // set some command line arguments
        {
                structRstart rp;
-               Rstart Rp = &rp;
-               char *rargv[] = { "R", "--slave", "--vanilla" };
+               char *rargv[] = { "R",
+#if R_VERSION >= R_Version(4,0,0)
+                                                 "--no-echo",
+#else
+                                                 "--slave",
+#endif
+                                                 "--vanilla" };
                int stat = 0;
 
-               R_DefParams(Rp);
-               Rp->R_Slave = (Rboolean) TRUE;
-               Rp->R_Quiet = (Rboolean) TRUE;
-               Rp->R_Interactive = (Rboolean) FALSE;
-               Rp->R_Verbose = (Rboolean) FALSE;
-               Rp->LoadSiteFile = (Rboolean) FALSE;
-               Rp->LoadInitFile = (Rboolean) FALSE;
-               Rp->RestoreAction = SA_NORESTORE;
-               Rp->SaveAction = SA_NOSAVE;
-               Rp->NoRenviron = TRUE;
+               R_DefParams(&rp);
+#if R_VERSION >= R_Version(4,0,0)
+               rp.R_NoEcho = (Rboolean) TRUE;
+#else
+               rp.R_Slave = (Rboolean) TRUE;
+#endif
+               rp.R_Quiet = (Rboolean) TRUE;
+               rp.R_Interactive = (Rboolean) FALSE;
+               rp.R_Verbose = (Rboolean) FALSE;
+               rp.LoadSiteFile = (Rboolean) FALSE;
+               rp.LoadInitFile = (Rboolean) FALSE;
+               rp.RestoreAction = SA_NORESTORE;
+               rp.SaveAction = SA_NOSAVE;
+               rp.NoRenviron = TRUE;
                stat = Rf_initialize_R(2, rargv);
                if (stat < 0) {
                        return "Rf_initialize failed";
                }
-               R_SetParams(Rp);
+               R_SetParams(&rp);
        }
 
        /* disable stack checking, because threads will throw it off */
diff --git a/monetdb5/modules/mal/mkey.c b/monetdb5/modules/mal/mkey.c
--- a/monetdb5/modules/mal/mkey.c
+++ b/monetdb5/modules/mal/mkey.c
@@ -17,40 +17,29 @@
 #include "monetdb_config.h"
 #include "mkey.h"
 
-#define MKEYHASH_bte(valp)     ((lng) *(const bte*)(valp))
-#define MKEYHASH_sht(valp)     ((lng) *(const sht*)(valp))
-#define MKEYHASH_int(valp)     ((lng) *(const int*)(valp))
-#define MKEYHASH_lng(valp)     ((lng) *(const lng*)(valp))
+#define MKEYHASH_bte(valp)     ((ulng) (lng) *(const bte*)(valp))
+#define MKEYHASH_sht(valp)     ((ulng) (lng) *(const sht*)(valp))
+#define MKEYHASH_int(valp)     ((ulng) (lng) *(const int*)(valp))
+#define MKEYHASH_lng(valp)     ((ulng) (lng) *(const lng*)(valp))
 #ifdef HAVE_HGE
-#define MKEYHASH_hge(valp)     (((const lng*)(valp))[0] ^ ((const 
lng*)(valp))[1])
+#define MKEYHASH_hge(valp)     ((ulng) (*(const uhge *)(valp) >> 64) ^ \
+                                                        (ulng) *(const uhge 
*)(valp))
 #endif
 
-static inline lng
-GDK_ROTATE(lng x, int y, int z)
+static inline ulng
+GDK_ROTATE(ulng x, int y, int z)
 {
-       return (lng) (((ulng) x << y) | ((ulng) x >> z));
+       return (x << y) | (x >> z);
 }
 
 /* TODO: nil handling. however; we do not want to lose time in 
bulk_rotate_xor_hash with that */
 str
 MKEYrotate(lng *res, const lng *val, const int *n)
 {
-       *res = GDK_ROTATE(*val, *n, (sizeof(lng)*8) - *n);
+       *res = (lng) GDK_ROTATE((ulng) *val, *n, (sizeof(lng)*8) - *n);
        return MAL_SUCCEED;
 }
 
-#if defined(__GNUC__) && __GNUC__ == 10
-/* There is a bug in GCC 10.0.1 (at least 10.0.1-0.13) where the loops
- * where this function is inserted is optimized incorrectly, resulting
- * in incorrect results.  By adding a call to what is in essence a
- * dummy function we force the optimizer to simplify its optimization
- * and we get the correct results. */
-#define WORK_AROUND_GNUC_BUG() GDKclrerr()
-#else
-/* no need to do this thing of not gcc 10 */
-#define WORK_AROUND_GNUC_BUG() ((void) 0)
-#endif
-
 str
 MKEYhash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
@@ -70,29 +59,29 @@ MKEYhash(Client cntxt, MalBlkPtr mb, Mal
                // illegal types, avoid falling into the default case.
                assert(0);
        case TYPE_bte:
-               *res = MKEYHASH_bte(val);
+               *res = (lng) MKEYHASH_bte(val);
                break;
        case TYPE_sht:
-               *res = MKEYHASH_sht(val);
+               *res = (lng) MKEYHASH_sht(val);
                break;
        case TYPE_int:
        case TYPE_flt:
-               *res = MKEYHASH_int(val);
+               *res = (lng) MKEYHASH_int(val);
                break;
        case TYPE_lng:
        case TYPE_dbl:
-               *res = MKEYHASH_lng(val);
+               *res = (lng) MKEYHASH_lng(val);
                break;
 #ifdef HAVE_HGE
        case TYPE_hge:
-               *res = MKEYHASH_hge(val);
+               *res = (lng) MKEYHASH_hge(val);
                break;
 #endif
        default:
                if (ATOMextern(tpe))
-                       *res = ATOMhash(tpe, *(ptr*)val);
+                       *res = (lng) ATOMhash(tpe, *(ptr*)val);
                else
-                       *res = ATOMhash(tpe, val);
+                       *res = (lng) ATOMhash(tpe, val);
                break;
        }
        return MAL_SUCCEED;
@@ -102,7 +91,7 @@ str
 MKEYbathash(bat *res, const bat *bid)
 {
        BAT *b, *dst;
-       lng *restrict r;
+       ulng *restrict r;
        BUN n;
 
        if ((b = BATdescriptor(*bid)) == NULL)
@@ -116,14 +105,14 @@ MKEYbathash(bat *res, const bat *bid)
        }
        BATsetcount(dst, n);
 
-       r = (lng *) Tloc(dst, 0);
+       r = (ulng *) Tloc(dst, 0);
 
        switch (ATOMstorage(b->ttype)) {
        case TYPE_void: {
                oid o = b->tseqbase;
                if (is_oid_nil(o))
                        for (BUN i = 0; i < n; i++)
-                               r[i] = lng_nil;
+                               r[i] = (ulng) lng_nil;
                else
                        for (BUN i = 0; i < n; i++)
                                r[i] = o + i;
@@ -172,9 +161,9 @@ MKEYbathash(bat *res, const bat *bid)
                for (BUN i = 0; i < n; i++) {
                        const void *restrict v = BUNtail(bi, i);
                        if ((*cmp)(v, nil) == 0)
-                               r[i] = lng_nil;
+                               r[i] = (ulng) lng_nil;
                        else
-                               r[i] = (lng) (*hash)(v);
+                               r[i] = (ulng) (*hash)(v);
                }
                break;
        }
@@ -199,12 +188,12 @@ str
 MKEYrotate_xor_hash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
 {
        lng *dst = getArgReference_lng(stk, p, 0);
-       lng h = *getArgReference_lng(stk, p, 1);
+       ulng h = (ulng) *getArgReference_lng(stk, p, 1);
        int lbit = *getArgReference_int(stk, p, 2);
        int rbit = (int) sizeof(lng) * 8 - lbit;
        int tpe = getArgType(mb, p, 3);
        ptr *pval = getArgReference(stk, p, 3);
-       lng val;
+       ulng val;
 
        (void) cntxt;
        switch (ATOMstorage(tpe)) {
@@ -234,7 +223,7 @@ MKEYrotate_xor_hash(Client cntxt, MalBlk
                        val = ATOMhash(tpe, pval);
                break;
        }
-       *dst = GDK_ROTATE(h, lbit, rbit) ^ val;
+       *dst = (lng) (GDK_ROTATE(h, lbit, rbit) ^ val);
        return MAL_SUCCEED;
 }
 
@@ -244,8 +233,8 @@ MKEYbulk_rotate_xor_hash(bat *res, const
        BAT *hb, *b, *bn;
        int lbit = *nbits;
        int rbit = (int) sizeof(lng) * 8 - lbit;
-       lng *restrict r;
-       const lng *restrict h;
+       ulng *restrict r;
+       const ulng *restrict h;
        BUN n;
 
        if ((hb = BATdescriptor(*hid)) == NULL)
@@ -273,15 +262,14 @@ MKEYbulk_rotate_xor_hash(bat *res, const
        }
        BATsetcount(bn, n);
 
-       r = (lng *) Tloc(bn, 0);
-       h = (const lng *) Tloc(hb, 0);
+       r = (ulng *) Tloc(bn, 0);
+       h = (const ulng *) Tloc(hb, 0);
 
        switch (ATOMstorage(b->ttype)) {
        case TYPE_bte: {
                const bte *restrict v = (const bte *) Tloc(b, 0);
                for (BUN i = 0; i < n; i++) {
                        r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ MKEYHASH_bte(v + 
i);
-                       WORK_AROUND_GNUC_BUG();
                }
                break;
        }
@@ -289,7 +277,6 @@ MKEYbulk_rotate_xor_hash(bat *res, const
                const sht *restrict v = (const sht *) Tloc(b, 0);
                for (BUN i = 0; i < n; i++) {
                        r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ MKEYHASH_sht(v + 
i);
-                       WORK_AROUND_GNUC_BUG();
                }
                break;
        }
@@ -298,7 +285,6 @@ MKEYbulk_rotate_xor_hash(bat *res, const
                const int *restrict v = (const int *) Tloc(b, 0);
                for (BUN i = 0; i < n; i++) {
                        r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ MKEYHASH_int(v + 
i);
-                       WORK_AROUND_GNUC_BUG();
                }
                break;
        }
@@ -307,7 +293,6 @@ MKEYbulk_rotate_xor_hash(bat *res, const
                const lng *restrict v = (const lng *) Tloc(b, 0);
                for (BUN i = 0; i < n; i++) {
                        r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ MKEYHASH_lng(v + 
i);
-                       WORK_AROUND_GNUC_BUG();
                }
                break;
        }
@@ -316,7 +301,6 @@ MKEYbulk_rotate_xor_hash(bat *res, const
                const hge *restrict v = (const hge *) Tloc(b, 0);
                for (BUN i = 0; i < n; i++) {
                        r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ MKEYHASH_hge(v + 
i);
-                       WORK_AROUND_GNUC_BUG();
                }
                break;
        }
@@ -326,7 +310,7 @@ MKEYbulk_rotate_xor_hash(bat *res, const
                        BATiter bi = bat_iterator(b);
                        for (BUN i = 0; i < n; i++) {
                                const void *restrict s = BUNtvar(bi, i);
-                               r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ (lng) 
((const BUN *) s)[-1];
+                               r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ (ulng) 
((const BUN *) s)[-1];
                        }
                        break;
                }
@@ -336,7 +320,7 @@ MKEYbulk_rotate_xor_hash(bat *res, const
                BUN (*hash)(const void *) = BATatoms[b->ttype].atomHash;
 
                for (BUN i = 0; i < n; i++)
-                       r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ (lng) 
(*hash)(BUNtail(bi, i));
+                       r[i] = GDK_ROTATE(h[i], lbit, rbit) ^ (ulng) 
(*hash)(BUNtail(bi, i));
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to