Changeset: deac451e6cca for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=deac451e6cca
Added Files:
sql/test/bugs/Tests/WHERE_and_multiple_LEFT_JOIN_incorrect_results-JIRA-43.sql
sql/test/bugs/Tests/WHERE_and_multiple_LEFT_JOIN_incorrect_results-JIRA-43.stable.err
sql/test/bugs/Tests/WHERE_and_multiple_LEFT_JOIN_incorrect_results-JIRA-43.stable.out
Modified Files:
MonetDB.spec
common/stream/stream.c
gdk/gdk.h
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
monetdb5/mal/mal_module.c
monetdb5/modules/atoms/inet.c
monetdb5/modules/atoms/json.c
sql/backends/monet5/vaults/netcdf/netcdf.c
sql/benchmarks/tpch/Tests/01-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/04-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/05-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/16-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/21-explain.stable.out.32bit
sql/benchmarks/tpch/Tests/22-explain.stable.out.32bit
sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out.Windows
sql/server/sql_mvc.c
sql/test/bugs/Tests/All
Branch: default
Log Message:
Merge with Jun2016 branch.
diffs (truncated from 733 to 300 lines):
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -44,17 +44,21 @@
# and build the geom modules. On RedHat Enterprise Linux and
# derivatives (CentOS, Scientific Linux), the geos library is not
# available. However, the geos library is available in the Extra
-# Packages for Enterprise Linux (EPEL). In other words, we can check
-# the fedpkgs macro (see above).
+# Packages for Enterprise Linux (EPEL). However, On RHEL 6, the geos
+# library is too old for us, so we need an extra check for an
+# up-to-date version of RHEL.
%if %{fedpkgs}
+%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
%define with_geos 1
%endif
+%endif
# On Fedora, the liblas library is available, and so we can require it
# and build the lidar modules. On RedHat Enterprise Linux and
-# derivatives (CentOS, Scientific Linux), the liblas library is not
-# available, even with EPEL available.
-%if %{?rhel:0}%{!?rhel:1}
+# derivatives (CentOS, Scientific Linux), the liblas library is only
+# available if EPEL is enabled, and then only on version 7.
+%if %{fedpkgs}
+%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
# If the _without_lidar macro is not set, the MonetDB-lidar RPM will
# be created. The macro can be set when using mock by passing it the
# flag --without=lidar.
@@ -62,6 +66,7 @@
%define with_lidar 1
%endif
%endif
+%endif
%if %{?rhel:0}%{!?rhel:1}
# If the _without_samtools macro is not set, the MonetDB-bam-MonetDB5
@@ -117,13 +122,15 @@ BuildRequires: bzip2-devel
BuildRequires: cfitsio-devel
%endif
%if %{?with_geos:1}%{!?with_geos:0}
-BuildRequires: geos-devel >= 3.0.0
+BuildRequires: geos-devel >= 3.4.0
%endif
BuildRequires: gsl-devel
%if %{?with_lidar:1}%{!?with_lidar:0}
-BuildRequires: liblas-devel gdal-devel libgeotiff-devel
+BuildRequires: liblas-devel >= 1.8.0
+BuildRequires: gdal-devel
+BuildRequires: libgeotiff-devel
# Fedora 22 liblas-devel does not depend on liblas:
-BuildRequires: liblas
+BuildRequires: liblas >= 1.8.0
%endif
BuildRequires: libatomic_ops-devel
BuildRequires: libcurl-devel
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -2113,7 +2113,11 @@ socket_write(stream *s, const void *buf,
#ifdef _MSC_VER
WSAGetLastError() == WSAEWOULDBLOCK &&
#else
- (errno == EAGAIN || errno == EWOULDBLOCK) && /* it was! */
+ (errno == EAGAIN
+#if EAGAIN != EWOULDBLOCK
+ || errno == EWOULDBLOCK
+#endif
+ ) && /* it was! */
#endif
s->timeout_func != NULL && /* callback function exists */
!(*s->timeout_func)()) /* callback says don't stop */
@@ -2139,7 +2143,11 @@ socket_write(stream *s, const void *buf,
#ifdef _MSC_VER
WSAGetLastError() == WSAEWOULDBLOCK
#else
- (errno == EAGAIN || errno == EWOULDBLOCK)
+ (errno == EAGAIN
+#if EAGAIN != EWOULDBLOCK
+ || errno == EWOULDBLOCK
+#endif
+ )
#endif
)
s->errnr = MNSTR_TIMEOUT;
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1148,6 +1148,7 @@ gdk_export bte ATOMelmshift(int sz);
* @end itemize
*/
/* NOTE: `p' is evaluated after a possible upgrade of the heap */
+#if SIZEOF_VAR_T == 8
#define HTputvalue(b, p, v, copyall, HT) \
do { \
if ((b)->HT->varsized && (b)->HT->type) { \
@@ -1179,7 +1180,6 @@ gdk_export bte ATOMelmshift(int sz);
ATOMputFIX((b)->HT->type, (p), v); \
} \
} while (0)
-#define Tputvalue(b, p, v, copyall) HTputvalue(b, p, v, copyall, T)
#define HTreplacevalue(b, p, v, HT) \
do { \
if ((b)->HT->varsized && (b)->HT->type) { \
@@ -1226,6 +1226,77 @@ gdk_export bte ATOMelmshift(int sz);
ATOMreplaceFIX((b)->HT->type, (p), v); \
} \
} while (0)
+#else
+#define HTputvalue(b, p, v, copyall, HT) \
+ do { \
+ if ((b)->HT->varsized && (b)->HT->type) { \
+ var_t _d; \
+ ptr _ptr; \
+ ATOMputVAR((b)->HT->type, (b)->HT->vheap, &_d, v); \
+ if ((b)->HT->width < SIZEOF_VAR_T && \
+ ((b)->HT->width <= 2 ? _d - GDK_VAROFFSET : _d) >=
((size_t) 1 << (8 * (b)->HT->width))) { \
+ /* doesn't fit in current heap, upgrade it */ \
+ if (GDKupgradevarheap((b)->HT, _d, (copyall),
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+ goto bunins_failed; \
+ } \
+ _ptr = (p); \
+ switch ((b)->HT->width) { \
+ case 1: \
+ * (unsigned char *) _ptr = (unsigned char) (_d
- GDK_VAROFFSET); \
+ break; \
+ case 2: \
+ * (unsigned short *) _ptr = (unsigned short)
(_d - GDK_VAROFFSET); \
+ break; \
+ case 4: \
+ * (var_t *) _ptr = _d; \
+ break; \
+ } \
+ } else { \
+ ATOMputFIX((b)->HT->type, (p), v); \
+ } \
+ } while (0)
+#define HTreplacevalue(b, p, v, HT) \
+ do { \
+ if ((b)->HT->varsized && (b)->HT->type) { \
+ var_t _d; \
+ ptr _ptr; \
+ _ptr = (p); \
+ switch ((b)->HT->width) { \
+ case 1: \
+ _d = (var_t) * (unsigned char *) _ptr +
GDK_VAROFFSET; \
+ break; \
+ case 2: \
+ _d = (var_t) * (unsigned short *) _ptr +
GDK_VAROFFSET; \
+ break; \
+ case 4: \
+ _d = * (var_t *) _ptr; \
+ break; \
+ } \
+ ATOMreplaceVAR((b)->HT->type, (b)->HT->vheap, &_d, v); \
+ if ((b)->HT->width < SIZEOF_VAR_T && \
+ ((b)->HT->width <= 2 ? _d - GDK_VAROFFSET : _d) >=
((size_t) 1 << (8 * (b)->HT->width))) { \
+ /* doesn't fit in current heap, upgrade it */ \
+ if (GDKupgradevarheap((b)->HT, _d, 0,
(b)->batRestricted == BAT_READ) != GDK_SUCCEED) \
+ goto bunins_failed; \
+ } \
+ _ptr = (p); \
+ switch ((b)->HT->width) { \
+ case 1: \
+ * (unsigned char *) _ptr = (unsigned char) (_d
- GDK_VAROFFSET); \
+ break; \
+ case 2: \
+ * (unsigned short *) _ptr = (unsigned short)
(_d - GDK_VAROFFSET); \
+ break; \
+ case 4: \
+ * (var_t *) _ptr = _d; \
+ break; \
+ } \
+ } else { \
+ ATOMreplaceFIX((b)->HT->type, (p), v); \
+ } \
+ } while (0)
+#endif
+#define Tputvalue(b, p, v, copyall) HTputvalue(b, p, v, copyall, T)
#define Treplacevalue(b, p, v) HTreplacevalue(b, p, v, T)
#define HTfastins_nocheck(b, p, v, s, HT) \
do { \
diff --git
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
old mode 100755
new mode 100644
diff --git
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows.single
old mode 100755
new mode 100644
diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -388,9 +388,9 @@ char **getHelp(Module m, str inputpat, i
if( t) { sig++; *t=0; completion=0; }
/* rudimentary patterns only.
- *.nme nme.* nme.nme *.*
- ignore the rest.
- */
+ * *.nme nme.* nme.nme *.*
+ * ignore the rest.
+ */
modnme= pat;
if( (fcnnme = strchr(pat,'.')) ){
*fcnnme++ = 0;
@@ -414,20 +414,20 @@ char **getHelp(Module m, str inputpat, i
/* display module information if there is no function */
if( fcnnme == NULL){
for(i=0; i< MAXSCOPE; i++)
- for(j=0; j< MAXSCOPE; j++){
- m= scopeJump[i][j];
- while(m != NULL){
- if( strncmp(modnme,m->name,len1) ==0 ||
*modnme=='*'){
- msg[top++] = GDKstrdup(m->name);
- msg[top] =0;
- if( top == maxhelp-1) {
- msg= (char **)
GDKrealloc(msg,sizeof(str)* maxhelp);
- maxhelp+= MAXHELP;
+ for(j=0; j< MAXSCOPE; j++){
+ m= scopeJump[i][j];
+ while(m != NULL){
+ if( strncmp(modnme,m->name,len1) ==0
|| *modnme=='*'){
+ msg[top++] = GDKstrdup(m->name);
+ msg[top] =0;
+ if( top == maxhelp-1) {
+ msg= (char **)
GDKrealloc(msg,sizeof(str)* maxhelp);
+ maxhelp+= MAXHELP;
+ }
}
+ m= m->sibling;
}
- m= m->sibling;
}
- }
GDKfree(pat);
return msg;
}
@@ -441,78 +441,78 @@ char **getHelp(Module m, str inputpat, i
#ifdef MAL_SCOPE_DEBUG
printf("showHelp: %s %s [" SZFMT "] %s %s\n",
- modnme,fcnnme,len2, (doc?"doc":""), (sig?"sig":""));
+ modnme,fcnnme,len2, (doc?"doc":""), (sig?"sig":""));
#endif
for(i=0; i< MAXSCOPE; i++)
- for(k=0; k< MAXSCOPE; k++){
- m= scopeJump[i][k];
- while( m){
- if( strncmp(modnme,m->name,len1) && *modnme!='*' ) {
- m= m->sibling;
- continue;
+ for(k=0; k< MAXSCOPE; k++){
+ m= scopeJump[i][k];
+ while( m){
+ if( strncmp(modnme,m->name,len1) &&
*modnme!='*' ) {
+ m= m->sibling;
+ continue;
+ }
+ for(j=0;j<MAXSCOPE;j++)
+ for(s= m->subscope[j]; s; s= s->peer)
+ if(
strncmp(fcnnme,s->name,len2)==0 || *fcnnme=='*') {
+ fnd=0;
+ if( completion ) {
+
snprintf(buf,sizeof(buf)," %s.%s",
+
((*modnme=='*' || *modnme==0)? m->name:modnme),s->name);
+ if(
tstDuplicate(msg,buf+1) ) {
+
continue;
+ }
+ } else
+ if( doc) {
+ char *v;
+
+
fcnDefinition(s->def,s->def->stmt[0],buf,FALSE,buf,sizeof(buf));
+
buf[0]=' ';
+
+ v=
strstr(buf,"address");
+ if( v)
*v=0;
+ if(
tstDuplicate(msg,buf+1) && s->def->help==0 ) fnd++;
+ if(fnd)
continue;
+
+
msg[top++]= GDKstrdup(buf+1);
+ if(v){
+
*v='a';
+
msg[top++]= GDKstrdup(v);
+ }
+
msg[top] = 0;
+
+ if(
s->def->help) {
+
char *w;
+
strcpy(buf+1,"comment ");
+
v= buf+1+8;
+
for( w= s->def->help; *w && v <buf+sizeof(buf)-2; w++)
+
if( *w == '\n'){
+
/*ignore */
+
} else *v++ = *w;
+
*v = 0;
+ } else
fnd = 1; /* ignore non-existing comment */
+ if(v){
+
*v++ ='\n';
+
*v=0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list