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