Changeset: 32f47f6685cb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=32f47f6685cb
Removed Files:
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.sql
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.err
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
Modified Files:
monetdb5/mal/mal.c
monetdb5/modules/atoms/inet.c
sql/test/BugTracker-2009/Tests/All
Branch: default
Log Message:
Merge with Dec2016 branch.
diffs (truncated from 515 to 300 lines):
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -151,6 +151,7 @@ void mserver_reset(int exit)
GDKfree(mal_clients->prompt);
GDKfree(mal_clients->username);
freeStack(mal_clients->glb);
+ freeSymbol(mal_clients->curprg);
mal_client_reset();
mal_linker_reset();
mal_resource_reset();
diff --git a/monetdb5/modules/atoms/inet.c b/monetdb5/modules/atoms/inet.c
--- a/monetdb5/modules/atoms/inet.c
+++ b/monetdb5/modules/atoms/inet.c
@@ -34,15 +34,30 @@
*
*/
typedef struct _inet {
- unsigned char q1;
- unsigned char q2;
- unsigned char q3;
- unsigned char q4;
- unsigned char mask;
- unsigned char filler1;
- unsigned char filler2;
- unsigned char isnil;
+ /* use a union to force alignment compatible with lng */
+ union {
+ struct {
+ unsigned char _q1;
+ unsigned char _q2;
+ unsigned char _q3;
+ unsigned char _q4;
+ unsigned char _mask;
+ unsigned char _filler1;
+ unsigned char _filler2;
+ unsigned char _isnil;
+ } s;
+ lng alignment;
+ } u;
} inet;
+#define q1 u.s._q1
+#define q2 u.s._q2
+#define q3 u.s._q3
+#define q4 u.s._q4
+#define mask u.s._mask
+#define filler1 u.s._filler1
+#define filler2 u.s._filler2
+#define isnil u.s._isnil
+
#ifdef WORDS_BIGENDIAN
/* HACK ALERT: once upon a time, lng_nil was used as inet_nil, but on
* big endian hardware, the byte that is not zero is on the other end;
@@ -72,7 +87,7 @@ mal_export str INET_comp_CSE(bit *retval
mal_export str INETbroadcast(inet *retval, const inet *val);
mal_export str INEThost(str *retval, const inet *val);
mal_export str INETmasklen(int *retval, const inet *val);
-mal_export str INETsetmasklen(inet *retval, const inet *val, const int *mask);
+mal_export str INETsetmasklen(inet *retval, const inet *val, const int *msk);
mal_export str INETnetmask(inet *retval, const inet *val);
mal_export str INEThostmask(inet *retval, const inet *val);
mal_export str INETnetwork(inet *retval, const inet *val);
@@ -82,7 +97,7 @@ mal_export str INET_inet(inet *d, const
mal_export str INET_fromstr(inet *ret, str *s);
mal_export inet *INETnull(void);
-static inet inet_nil = {0,0,0,0,0,0,0,1};
+static inet inet_nil = {{{0,0,0,0,0,0,0,1}}};
/**
* Creates a new inet from the given string.
@@ -399,18 +414,18 @@ INET_comp_CW(bit *retval, const inet *va
* be contained within */
*retval = 0;
} else {
- unsigned int mask;
+ unsigned int msk;
unsigned char m[4];
if (val2->mask > 0)
- mask = ~0U << (32 - val2->mask);
+ msk = ~0U << (32 - val2->mask);
else
- mask = 0;
+ msk = 0;
- m[0] = (mask >> 24) & 0xFF;
- m[1] = (mask >> 16) & 0xFF;
- m[2] = (mask >> 8) & 0xFF;
- m[3] = mask & 0xFF;
+ m[0] = (msk >> 24) & 0xFF;
+ m[1] = (msk >> 16) & 0xFF;
+ m[2] = (msk >> 8) & 0xFF;
+ m[3] = msk & 0xFF;
/* all operations here are done byte based, to avoid byte sex
* problems */
@@ -491,19 +506,19 @@ INETbroadcast(inet *retval, const inet *
{
*retval = *val;
if (!in_isnil(val) && val->mask != 32) {
- unsigned int mask;
+ unsigned int msk;
unsigned char m[4];
if (val->mask > 0)
- mask = ~0U << (32 - val->mask);
+ msk = ~0U << (32 - val->mask);
else
- mask = 0;
+ msk = 0;
- mask = ~mask; /* invert the mask */
- m[0] = (mask >> 24) & 0xFF;
- m[1] = (mask >> 16) & 0xFF;
- m[2] = (mask >> 8) & 0xFF;
- m[3] = mask & 0xFF;
+ msk = ~msk; /* invert the mask */
+ m[0] = (msk >> 24) & 0xFF;
+ m[1] = (msk >> 16) & 0xFF;
+ m[2] = (msk >> 8) & 0xFF;
+ m[3] = msk & 0xFF;
/* if you want to see some bytes, remove this comment
fprintf(stderr, "%x %x %x %x => %x %x %x %x\n",
@@ -564,14 +579,14 @@ INETmasklen(int *retval, const inet *val
* Set netmask length for inet value.
*/
str
-INETsetmasklen(inet *retval, const inet *val, const int *mask)
+INETsetmasklen(inet *retval, const inet *val, const int *msk)
{
- if (*mask < 0 || *mask > 32)
- throw(ILLARG, "inet.setmask", "Illegal netmask length value:
%d", *mask);
+ if (*msk < 0 || *msk > 32)
+ throw(ILLARG, "inet.setmask", "Illegal netmask length value:
%d", *msk);
*retval = *val;
if (!in_isnil(val))
- retval->mask = *mask;
+ retval->mask = *msk;
return (MAL_SUCCEED);
}
@@ -583,18 +598,18 @@ INETnetmask(inet *retval, const inet *va
{
*retval = *val;
if (!in_isnil(val)) {
- unsigned int mask;
+ unsigned int msk;
unsigned char m[4];
if (val->mask > 0)
- mask = ~0U << (32 - val->mask);
+ msk = ~0U << (32 - val->mask);
else
- mask = 0;
+ msk = 0;
- m[0] = (mask >> 24) & 0xFF;
- m[1] = (mask >> 16) & 0xFF;
- m[2] = (mask >> 8) & 0xFF;
- m[3] = mask & 0xFF;
+ m[0] = (msk >> 24) & 0xFF;
+ m[1] = (msk >> 16) & 0xFF;
+ m[2] = (msk >> 8) & 0xFF;
+ m[3] = msk & 0xFF;
retval->q1 = m[0];
retval->q2 = m[1];
@@ -644,18 +659,18 @@ INETnetwork(inet *retval, const inet *va
{
*retval = *val;
if (!in_isnil(val)) {
- unsigned int mask;
+ unsigned int msk;
unsigned char m[4];
if (val->mask > 0)
- mask = ~0U << (32 - val->mask);
+ msk = ~0U << (32 - val->mask);
else
- mask = 0;
+ msk = 0;
- m[0] = (mask >> 24) & 0xFF;
- m[1] = (mask >> 16) & 0xFF;
- m[2] = (mask >> 8) & 0xFF;
- m[3] = mask & 0xFF;
+ m[0] = (msk >> 24) & 0xFF;
+ m[1] = (msk >> 16) & 0xFF;
+ m[2] = (msk >> 8) & 0xFF;
+ m[3] = msk & 0xFF;
retval->q1 &= m[0];
retval->q2 &= m[1];
@@ -707,27 +722,27 @@ INETabbrev(str *retval, const inet *val)
if (in_isnil(val)) {
*retval = GDKstrdup(str_nil);
} else {
- unsigned int mask;
+ unsigned int msk;
unsigned char m[4];
if (val->mask > 0)
- mask = ~0U << (32 - val->mask);
+ msk = ~0U << (32 - val->mask);
else
- mask = 0;
- mask = ~mask; /* invert the mask */
+ msk = 0;
+ msk = ~msk; /* invert the mask */
- m[0] = (mask >> 24) & 0xFF;
- m[1] = (mask >> 16) & 0xFF;
- m[2] = (mask >> 8) & 0xFF;
- m[3] = mask & 0xFF;
+ m[0] = (msk >> 24) & 0xFF;
+ m[1] = (msk >> 16) & 0xFF;
+ m[2] = (msk >> 8) & 0xFF;
+ m[3] = msk & 0xFF;
if ((val->q1 & m[0]) != 0 ||
(val->q2 & m[1]) != 0 ||
(val->q3 & m[2]) != 0 ||
(val->q4 & m[3]) != 0) {
- mask = 32;
+ msk = 32;
} else {
- mask = val->mask;
+ msk = val->mask;
}
/* example: (hex notation)
@@ -740,16 +755,16 @@ INETabbrev(str *retval, const inet *val)
ip = GDKmalloc(sizeof(char) * 19);
- if (mask > 24) {
+ if (msk > 24) {
snprintf(ip, sizeof(char) * 19, "%d.%d.%d.%d/%d",
val->q1, val->q2, val->q3, val->q4,
val->mask);
- } else if (mask > 16) {
+ } else if (msk > 16) {
snprintf(ip, sizeof(char) * 19, "%d.%d.%d/%d",
val->q1, val->q2, val->q3, val->mask);
- } else if (mask > 8) {
+ } else if (msk > 8) {
snprintf(ip, sizeof(char) * 19, "%d.%d/%d",
val->q1, val->q2, val->mask);
- } else if (mask > 0) {
+ } else if (msk > 0) {
snprintf(ip, sizeof(char) * 19, "%d/%d", val->q1,
val->mask);
} else {
snprintf(ip, sizeof(char) * 19, "/0");
diff --git a/sql/test/BugTracker-2009/Tests/All
b/sql/test/BugTracker-2009/Tests/All
--- a/sql/test/BugTracker-2009/Tests/All
+++ b/sql/test/BugTracker-2009/Tests/All
@@ -46,7 +46,6 @@ insert_order_by.SF-2658243
not_equal.SF-2678502
TribooleanFailureWithSubquery.SF-2679434
nullstr.SF-2704016
-POWER_vs_prod.SF-2596114
parallel_bulk-load.SF-2771052.unpack_csv
parallel_bulk-load.SF-2771052.test
parallel_bulk-load.SF-2771052.clean
diff --git a/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.sql
b/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.sql
deleted file mode 100644
--- a/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.sql
+++ /dev/null
@@ -1,6 +0,0 @@
--- disable parallelism (mitosis & dataflow) to avoid ambiguous results
-set optimizer='sequential_pipe';
-create table SF_2596114 (x double);
-explain select power(x,2) from SF_2596114;
-explain select x*x from SF_2596114;
-drop table SF_2596114;
diff --git a/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.err
b/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.err
deleted file mode 100644
--- a/sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.err
+++ /dev/null
@@ -1,85 +0,0 @@
-stderr of test 'POWER_vs_prod.SF-2596114` in directory
'sql/test/BugTracker-2009` itself:
-
-
-# 23:02:29 >
-# 23:02:29 > mserver5
"--config=/ufs/manegold/_/scratch0/Monet/Testing/Stable/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/etc/monetdb5.conf"
--debug=10 --set gdk_nr_threads=0 --set
"monet_mod_path=/ufs/manegold/_/scratch0/Monet/Testing/Stable/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5:/ufs/manegold/_/scratch0/Monet/Testing/Stable/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/lib:/ufs/manegold/_/scratch0/Monet/Testing/Stable/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/lib64/MonetDB5/bin"
--set
"gdk_dbfarm=/ufs/manegold/_/scratch0/Monet/Testing/Stable/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/var/MonetDB5/dbfarm"
--set
"sql_logdir=/ufs/manegold/_/scratch0/Monet/Testing/Stable/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert/var/MonetDB5/sql_logs"
--set mapi_open=true --set xrpc_open=t
rue --set mapi_port=33742 --set xrpc_port=44239 --set monet_prompt= --trace
"--dbname=mTests_src_test_BugTracker-2009" --set mal_listing=0 "--dbinit=
include sql;" ; echo ; echo Over..
-# 23:02:29 >
-
-# builtin opt gdk_arch = 64bitx86_64-unknown-linux-gnu
-# builtin opt gdk_version = 1.28.0
-# builtin opt monet_pid = 5087
-# builtin opt prefix =
/ufs/manegold/_/scratch0/Monet/Testing/Stable/prefix.--enable-strict_--disable-optimize_--enable-debug_--enable-assert
-# builtin opt exec_prefix = ${prefix}
-# builtin opt gdk_dbname = tst
-# builtin opt gdk_dbfarm = ${prefix}/var/MonetDB
-# builtin opt gdk_debug = 8
-# builtin opt gdk_mem_bigsize = 262144
-# builtin opt gdk_alloc_map = yes
-# builtin opt gdk_mem_pagebits = 14
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list