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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list