MonetDB: default - Remove debug line.

2019-03-20 Thread Sjoerd Mullender
Changeset: e6552c9db473 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e6552c9db473
Modified Files:
monetdb5/optimizer/opt_commonTerms.c
Branch: default
Log Message:

Remove debug line.


diffs (11 lines):

diff --git a/monetdb5/optimizer/opt_commonTerms.c 
b/monetdb5/optimizer/opt_commonTerms.c
--- a/monetdb5/optimizer/opt_commonTerms.c
+++ b/monetdb5/optimizer/opt_commonTerms.c
@@ -189,7 +189,6 @@ OPTcommonTermsImplementation(Client cntx
 newComment(mb,buf);
if( actions >= 0)
addtoMalBlkHistory(mb);
-   fprintFunction(stderr, mb, stk, LIST_MAL_ALL);
 
   wrapup:
if(alias) GDKfree(alias);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Indent + send debug output to stderr.

2019-03-20 Thread Sjoerd Mullender
Changeset: 77bed127f56d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=77bed127f56d
Modified Files:
monetdb5/optimizer/opt_commonTerms.c
Branch: default
Log Message:

Indent + send debug output to stderr.


diffs (112 lines):

diff --git a/monetdb5/optimizer/opt_commonTerms.c 
b/monetdb5/optimizer/opt_commonTerms.c
--- a/monetdb5/optimizer/opt_commonTerms.c
+++ b/monetdb5/optimizer/opt_commonTerms.c
@@ -58,8 +58,8 @@ OPTcommonTermsImplementation(Client cntx
duplicate = 0;
 
for ( k = 0; k < p->argc; k++)
-   if ( alias[getArg(p,k)] )
-   getArg(p,k) = alias[getArg(p,k)];
+   if ( alias[getArg(p,k)] )
+   getArg(p,k) = alias[getArg(p,k)];

if (p->token == ENDsymbol){
pushInstruction(mb,p);
@@ -84,7 +84,7 @@ OPTcommonTermsImplementation(Client cntx
barrier |= getFunctionId(p) == assertRef;
if (barrier || p->token == NOOPsymbol || p->token == 
ASSIGNsymbol) {
 #ifdef DEBUG_OPT_COMMONTERMS_MORE
-   fprintf(stderr, "#COMMON SKIPPED[%d] %d 
%d\n",i, barrier, p->retc == p->argc);
+   fprintf(stderr, "#COMMON SKIPPED[%d] %d %d\n",i, 
barrier, p->retc == p->argc);
 #endif
pushInstruction(mb,p);
continue;
@@ -93,7 +93,7 @@ OPTcommonTermsImplementation(Client cntx
/* the same holds for function calls without an argument, it is 
unclear where the results comes from (e.g. clock()) */
if ( mayhaveSideEffects(cntxt, mb, p,TRUE) || p->argc == 
p->retc){
 #ifdef DEBUG_OPT_COMMONTERMS_MORE
-   fprintf(stderr, "#COMMON SKIPPED[%d] 
side-effect %d\n", i, p->retc == p->argc);
+   fprintf(stderr, "#COMMON SKIPPED[%d] side-effect %d\n", 
i, p->retc == p->argc);
 #endif
pushInstruction(mb,p);
continue;
@@ -101,25 +101,25 @@ OPTcommonTermsImplementation(Client cntx
 
/* from here we have a candidate to look for a match */
 #ifdef DEBUG_OPT_COMMONTERMS_MORE
-   fprintf(stderr,"#CANDIDATE[%d] look at list[%d]=>%d\n",
+   fprintf(stderr,"#CANDIDATE[%d] look at list[%d]=>%d\n",
i, HASHinstruction(p), 
hash[HASHinstruction(p)]);
-   fprintInstruction(stderr, mb, 0, p, LIST_MAL_ALL);
+   fprintInstruction(stderr, mb, 0, p, LIST_MAL_ALL);
 #endif
/* Look into the hash structure for matching instructions */
for (j = hash[HASHinstruction(p)];  j > 0  ; j = list[j]) 
if ( (q= getInstrPtr(mb,j)) && getFunctionId(q) == 
getFunctionId(p) && getModuleId(q) == getModuleId(p)  ){
 #ifdef DEBUG_OPT_COMMONTERMS_MORE
-   fprintf(stderr,"#CANDIDATE[%d->%d] %d %d", j, list[j], 
-   hasSameSignature(mb, p, q, p->retc), 
-   hasSameArguments(mb, p, q));
-   mnstr_printf(cntxt->fdout," :%d %d %d=%d %d %d 
%d ", 
-   q->token != ASSIGNsymbol ,
-   list[getArg(q,q->argc-1)],i,
-   !hasCommonResults(p, q), 
-   !isUnsafeFunction(q),
-   !isUpdateInstruction(q),
-   isLinearFlow(q));
-   printInstruction(cntxt->fdout, mb, 0, q, 
LIST_MAL_ALL);
+   fprintf(stderr,"#CANDIDATE[%d->%d] %d %d :%d %d 
%d=%d %d %d %d ",
+   j, list[j], 
+   hasSameSignature(mb, p, q, 
p->retc), 
+   hasSameArguments(mb, p, q),
+   q->token != ASSIGNsymbol ,
+   list[getArg(q,q->argc-1)],i,
+   !hasCommonResults(p, q), 
+   !isUnsafeFunction(q),
+   !isUpdateInstruction(q),
+   isLinearFlow(q));
+   fprintInstruction(stderr, mb, 0, q, 
LIST_MAL_ALL);
 #endif
/*
 * Simple assignments are not replaced either. 
They should be
@@ -127,13 +127,13 @@ OPTcommonTermsImplementation(Client cntx
 * be assigned their value before instruction p.
 */
if ( hasSameArguments(mb, p, q) && 
-   

MonetDB: cmake-fun - Compiles and install generator module.

2019-03-20 Thread Pedro Ferreira
Changeset: c807f964b5c1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c807f964b5c1
Added Files:
sql/backends/monet5/generator/CMakeLists.txt
Modified Files:
sql/backends/monet5/CMakeLists.txt
Branch: cmake-fun
Log Message:

Compiles and install generator module.


diffs (48 lines):

diff --git a/sql/backends/monet5/CMakeLists.txt 
b/sql/backends/monet5/CMakeLists.txt
--- a/sql/backends/monet5/CMakeLists.txt
+++ b/sql/backends/monet5/CMakeLists.txt
@@ -9,8 +9,8 @@
 #[[if(NOT WIN32)
add_subdirectory(vaults)
 endif()
-add_subdirectory(UDF)
-add_subdirectory(generator)#]]
+add_subdirectory(UDF)#]]
+add_subdirectory(generator)
 
 include_directories(../../include ../../common ../../storage ../../server 
../../../monetdb5/modules/atoms 
../../../monetdb5/modules/kernel 
../../../monetdb5/mal ../../../monetdb5/modules/mal 
diff --git a/sql/backends/monet5/generator/CMakeLists.txt 
b/sql/backends/monet5/generator/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/generator/CMakeLists.txt
@@ -0,0 +1,29 @@
+#[[
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
+#]]
+
+include_directories(../../../include ../../../common ../../../storage 
../../../server ../../../../monetdb5/modules/atoms
+   ../../../../monetdb5/modules/kernel 
../../../../monetdb5/mal ../../../../monetdb5/modules/mal
+   ../../../../monetdb5/optimizer 
../../../../monetdb5/scheduler ../../../../common/options
+   ../../../../common/stream 
../../../../common/utils ../../../../gdk)
+
+
+add_library(generator MODULE generator.c  generator.h)
+target_link_libraries(generator PRIVATE monetdb5 gdk)
+set_target_properties(generator PROPERTIES RUNTIME_OUTPUT_NAME _generator 
LIBRARY_OUTPUT_NAME _generator
+ COMPILE_DEFINITIONS "LIBGENERATOR")
+
+install(TARGETS generator DESTINATION ${LIBDIR}/monetdb5)
+install(FILES generator.mal DESTINATION ${LIBDIR}/monetdb5)
+install(FILES 90_generator.mal DESTINATION ${LIBDIR}/monetdb5/autoload)
+install(FILES 90_generator.sql DESTINATION ${LIBDIR}/monetdb5/createdb)
+
+if(HAVE_HGE)
+   install(FILES generator_hge.mal DESTINATION ${LIBDIR}/monetdb5)
+   install(FILES 90_generator_hge.mal DESTINATION 
${LIBDIR}/monetdb5/autoload)
+   install(FILES 90_generator_hge.sql DESTINATION 
${LIBDIR}/monetdb5/createdb)
+endif()
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Merge with Apr2019 branch.

2019-03-20 Thread Sjoerd Mullender
Changeset: e2c3c933fb78 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e2c3c933fb78
Modified Files:
monetdb5/mal/mal_client.h
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_scenario.c
Branch: default
Log Message:

Merge with Apr2019 branch.


diffs (74 lines):

diff --git a/monetdb5/mal/mal_client.h b/monetdb5/mal/mal_client.h
--- a/monetdb5/mal/mal_client.h
+++ b/monetdb5/mal/mal_client.h
@@ -191,8 +191,8 @@ typedef struct CLIENT {
 
size_t blocksize;
protocol_version protocol;
-   bool filetrans; /* whether the client can read 
files for us */
-   const char *query;  /* string, identify whatever 
we're working on */
+   bool filetrans; /* whether the client can read files 
for us */
+   char *query;/* string, identify whatever we're 
working on */
 } *Client, ClientRec;
 
 mal_export voidMCinit(void);
diff --git a/sql/backends/monet5/sql_execute.c 
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -759,7 +759,7 @@ SQLengineIntern(Client c, backend *be)
 
if (oldlang == 'X') {   /* return directly from X-commands */
sqlcleanup(be->mvc, 0);
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q);
return MAL_SUCCEED;
@@ -781,7 +781,7 @@ SQLengineIntern(Client c, backend *be)
goto cleanup_engine;
}
sqlcleanup(be->mvc, 0);
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q);
return MAL_SUCCEED;
@@ -829,7 +829,7 @@ cleanup_engine:
MSresetInstructions(c->curprg->def, 1);
freeVariables(c, c->curprg->def, NULL, be->vtop);
be->language = oldlang;
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q);
/*
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1036,10 +1036,9 @@ SQLparser(Client c)
char *q = NULL;
 
/* clean up old stuff */
-   msg = (char *) c->query;
+   q = c->query;
c->query = NULL;
-   GDKfree(msg);   /* may be NULL */
-   msg = NULL;
+   GDKfree(q); /* may be NULL */
 
be = (backend *) c->sqlcontext;
if (be == 0) {
@@ -1335,8 +1334,12 @@ SQLparser(Client c)
}
}
 finalize:
-   if (msg)
+   if (msg) {
sqlcleanup(m, 0);
+   q = c->query;
+   c->query = NULL;
+   GDKfree(q);
+   }
return msg;
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Improve hot restart.

2019-03-20 Thread Sjoerd Mullender
Changeset: c2b7ecc6bea5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c2b7ecc6bea5
Modified Files:
gdk/gdk_bbp.c
gdk/gdk_private.h
gdk/gdk_system.c
gdk/gdk_utils.c
Branch: default
Log Message:

Improve hot restart.
The shutdown test started crashing.  This has been fixed.


diffs (236 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -3530,9 +3530,8 @@ gdk_bbp_reset(void)
BBPlimit -= BBPINIT;
assert(BBPlimit >= 0);
GDKfree(BBP[BBPlimit >> BBPINITLOG]);
+   BBP[BBPlimit >> BBPINITLOG] = NULL;
}
-   memset(BBP, 0, sizeof(BBP));
-   BBPlimit = 0;
ATOMIC_SET(, 0);
for (i = 0; i < MAXFARMS; i++)
GDKfree((void *) BBPfarms[i].dirname); /* loose "const" */
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -160,8 +160,6 @@ void BBPdump(void)  /* never called: for
 __hidden gdk_return GDKssort(void *restrict h, void *restrict t, const void 
*restrict base, size_t n, int hs, int ts, int tpe)
__attribute__((__warn_unused_result__))
__attribute__((__visibility__("hidden")));
-__hidden void gdk_system_reset(void)
-   __attribute__((__visibility__("hidden")));
 __hidden gdk_return GDKunlink(int farmid, const char *dir, const char *nme, 
const char *extension)
__attribute__((__visibility__("hidden")));
 __hidden void HASHfree(BAT *b)
diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c
--- a/gdk/gdk_system.c
+++ b/gdk/gdk_system.c
@@ -285,15 +285,6 @@ MT_thread_getdata(void)
return w ? w->data : NULL;
 }
 
-void
-gdk_system_reset(void)
-{
-   assert(threadslot != TLS_OUT_OF_INDEXES);
-   TlsFree(threadslot);
-   threadslot = TLS_OUT_OF_INDEXES;
-   DeleteCriticalSection(_cs);
-}
-
 static void
 rm_winthread(struct winthread *w)
 {
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -436,11 +436,11 @@ GDKsetverbose(int verbose)
 gdk_return
 GDKinit(opt *set, int setlen)
 {
+   static bool first = true;
char *dbpath = mo_find_option(set, setlen, "gdk_dbpath");
const char *p;
opt *n;
int i, nlen = 0;
-   int farmid;
char buf[16];
 
/* some sanity checks (should also find if symbols are not defined) */
@@ -467,32 +467,39 @@ GDKinit(opt *set, int setlen)
static_assert(SIZEOF_OID == SIZEOF_INT || SIZEOF_OID == SIZEOF_LNG,
  "SIZEOF_OID should be equal to SIZEOF_INT or SIZEOF_LNG");
 
-   if (!MT_thread_init())
-   return GDK_FAIL;
+   if (first) {
+   /* some things are really only initialized once */
+   if (!MT_thread_init())
+   return GDK_FAIL;
 
-   for (i = 0; i <= BBP_BATMASK; i++) {
-   char name[16];
-   snprintf(name, sizeof(name), "GDKswapLock%d", i);
-   MT_lock_init([i].swap, name);
-   snprintf(name, sizeof(name), "GDKhashLock%d", i);
-   MT_lock_init([i].hash, name);
-   snprintf(name, sizeof(name), "GDKimpsLock%d", i);
-   MT_lock_init([i].imprints, name);
-   }
-   for (i = 0; i <= BBP_THREADMASK; i++) {
-   char name[16];
-   snprintf(name, sizeof(name), "GDKcacheLock%d", i);
-   MT_lock_init([i].cache, name);
-   snprintf(name, sizeof(name), "GDKtrimLock%d", i);
-   MT_lock_init([i].trim, name);
-   GDKbbpLock[i].free = 0;
+   for (i = 0; i <= BBP_BATMASK; i++) {
+   char name[16];
+   snprintf(name, sizeof(name), "GDKswapLock%d", i);
+   MT_lock_init([i].swap, name);
+   snprintf(name, sizeof(name), "GDKhashLock%d", i);
+   MT_lock_init([i].hash, name);
+   snprintf(name, sizeof(name), "GDKimpsLock%d", i);
+   MT_lock_init([i].imprints, name);
+   }
+   for (i = 0; i <= BBP_THREADMASK; i++) {
+   char name[16];
+   snprintf(name, sizeof(name), "GDKcacheLock%d", i);
+   MT_lock_init([i].cache, name);
+   snprintf(name, sizeof(name), "GDKtrimLock%d", i);
+   MT_lock_init([i].trim, name);
+   GDKbbpLock[i].free = 0;
+   }
+   if (mnstr_init() < 0)
+   return GDK_FAIL;
+   first = false;
+   } else {
+   /* BBP was locked by BBPexit() */
+   BBPunlock();
}
errno = 0;
if (!GDKenvironment(dbpath))
return GDK_FAIL;
 
-   if (mnstr_init() < 0)
-   return GDK_FAIL;
MT_init_posix();
if (THRinit() < 0)
  

MonetDB: default - Remove unused function BBPresetfarms.

2019-03-20 Thread Sjoerd Mullender
Changeset: 6238eeb5616a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6238eeb5616a
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk_bbp.c
gdk/gdk_bbp.h
Branch: default
Log Message:

Remove unused function BBPresetfarms.


diffs (46 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -194,7 +194,6 @@ BAT *BBPquickdesc(bat b, bool delaccess)
 int BBPreclaim(BAT *b);
 int BBPrelease(bat b);
 int BBPrename(bat bid, const char *nme);
-void BBPresetfarms(void);
 int BBPretain(bat b);
 gdk_return BBPsave(BAT *b);
 void BBPshare(bat b);
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1099,20 +1099,6 @@ BBPaddfarm(const char *dirname, int role
return GDK_FAIL;
 }
 
-void
-BBPresetfarms(void)
-{
-   BBPexit();
-   BBPunlock();
-   ATOMIC_SET(, 0);
-   if (BBPfarms[0].dirname != NULL) {
-   GDKfree((void*) BBPfarms[0].dirname); /* loose "const" */
-   }
-   BBPfarms[0].dirname = NULL;
-   BBPfarms[0].roles = 0;
-}
-
-
 gdk_return
 BBPinit(void)
 {
diff --git a/gdk/gdk_bbp.h b/gdk/gdk_bbp.h
--- a/gdk/gdk_bbp.h
+++ b/gdk/gdk_bbp.h
@@ -57,7 +57,6 @@ gdk_export bat getBBPsize(void); /* curr
 
 /* global calls */
 gdk_export gdk_return BBPaddfarm(const char *dirname, int rolemask);
-gdk_export void BBPresetfarms(void);
 
 /* update interface */
 gdk_export void BBPclear(bat bid);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: cmake-fun - Major improvements:

2019-03-20 Thread Pedro Ferreira
Changeset: 86585ac9f880 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=86585ac9f880
Added Files:
cmake/FindCfitsio.cmake
cmake/FindLZ4.cmake
cmake/FindNetCDF.cmake
cmake/FindProj.cmake
cmake/FindSnappy.cmake
cmake/FindValgrind.cmake
Modified Files:
CMakeLists.txt
clients/mapiclient/CMakeLists.txt
clients/mapilib/CMakeLists.txt
cmake/FindPCRE.cmake
common/stream/CMakeLists.txt
common/utils/CMakeLists.txt
gdk/CMakeLists.txt
monetdb5/mal/CMakeLists.txt
monetdb5/modules/atoms/CMakeLists.txt
monetdb5/modules/mal/CMakeLists.txt
monetdb5/tools/CMakeLists.txt
sql/backends/monet5/CMakeLists.txt
testing/CMakeLists.txt
testing/Mtest.py.in
tools/merovingian/client/CMakeLists.txt
tools/merovingian/daemon/CMakeLists.txt
tools/merovingian/utils/CMakeLists.txt
tools/mserver/CMakeLists.txt
Branch: cmake-fun
Log Message:

Major improvements:

- Pkg-config is no longer required, thus more portability is granted. Instead 
we look optional libraries ourselves.
- Set libraries include dir and library name variables uniform across all 
libraries.
- Throw STATUS messages instead of WARNING messages in many places.
- Fixed LINK_OPTIONS check for multiple runs.


diffs (truncated from 1642 to 300 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,9 +12,7 @@ project(MonetDB C)
 
 set(C_STANDARD_REQUIRED ON)
 set(CMAKE_C_STANDARD 99)
-set(PACKAGE "MonetDB" CACHE STRING "")
-
-find_package(PkgConfig)
+set(PACKAGE "MonetDB" CACHE STRING "MonetDB, SQL queries at light speed")
 
 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" CACHE INTERNAL "Location of 
custom CMake modules.")
 include(CheckCCompilerFlag REQUIRED)
@@ -33,7 +31,6 @@ cmake_policy(SET CMP0075 NEW)
 
 # Save default cmake options in the begining
 set(PREV_CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}")
-set(NEW_LINK_OPTIONS "${LINK_OPTIONS}")
 
 function(MT_clibsToCmake INPUT_INCS OUTPUT_INCS) # Remove -I before the 
include path
string(LENGTH "${INPUT_INCS}" INPUT_INCS_LENGTH)
@@ -106,14 +103,14 @@ else()
 endif()
 
 # modules to use
-set(ENABLE_MAPI "YES" CACHE STRING "Enable MAPI (default=yes)")
+set(ENABLE_MAPI "YES" CACHE STRING "Enable MAPI (default=YES)")
 if(NOT ${ENABLE_MAPI} STREQUAL "NO")
set(HAVE_MAPI ON)
 endif()
 
-set(ENABLE_GDK "YES" CACHE STRING "Enable support for GDK (default=yes)")
+set(ENABLE_GDK "YES" CACHE STRING "Enable support for GDK (default=YES)")
 
-set(ENABLE_MONETDB5 "YES" CACHE STRING "Enable support for MonetDB5 
(default=yes)")
+set(ENABLE_MONETDB5 "YES" CACHE STRING "Enable support for MonetDB5 
(default=YES)")
 if(${ENABLE_GDK} STREQUAL "NO")
if(${ENABLE_MONETDB5} STREQUAL "YES")
message(FATAL_ERROR "MonetDB5 requires GDK.")
@@ -124,7 +121,7 @@ else()
set(HAVE_GDK ON)
 endif()
 
-set(ENABLE_SQL "YES" CACHE STRING "Enable support for MonetDB/SQL 
(default=yes)")
+set(ENABLE_SQL "YES" CACHE STRING "Enable support for MonetDB/SQL 
(default=YES)")
 if(${ENABLE_MONETDB5} STREQUAL "NO")
if(${ENABLE_SQL} STREQUAL "YES")
message(FATAL_ERROR "MonetDB/SQL requires MonetDB5.")
@@ -133,7 +130,7 @@ if(${ENABLE_MONETDB5} STREQUAL "NO")
endif()
 endif()
 
-set(ENABLE_GEOM "AUTO" CACHE STRING "Enable support for geom module 
(default=auto)")
+set(ENABLE_GEOM "AUTO" CACHE STRING "Enable support for geom module 
(default=AUTO)")
 if(${ENABLE_MONETDB5} STREQUAL "NO")
if(${ENABLE_GEOM} STREQUAL "YES")
message(FATAL_ERROR "Geom module requires MonetDB5.")
@@ -142,8 +139,8 @@ if(${ENABLE_MONETDB5} STREQUAL "NO")
endif()
 endif()
 
-set(ENABLE_LIDAR "AUTO" CACHE STRING "Enable support for LiDAR data 
(default=auto)")
-set(ENABLE_SHP "AUTO" CACHE STRING "Enable support for ESRI Shapefiles 
(default=auto)")
+set(ENABLE_LIDAR "AUTO" CACHE STRING "Enable support for LiDAR data 
(default=AUTO)")
+set(ENABLE_SHP "AUTO" CACHE STRING "Enable support for ESRI Shapefiles 
(default=AUTO)")
 if(${ENABLE_GEOM} STREQUAL "NO")
if(${ENABLE_SHP} STREQUAL "YES")
message(FATAL_ERROR "ESRI Shapefile vault requires the geom 
module.")
@@ -154,20 +151,20 @@ else()
set(HAVE_GEOM ON)
 endif()
 
-set(ENABLE_EMBEDDED "NO" CACHE STRING "Enable support for running MonetDB as a 
library (default=no)")
+set(ENABLE_EMBEDDED "NO" CACHE STRING "Enable support for running MonetDB as a 
library (default=NO)")
 if(NOT ${ENABLE_EMBEDDED} STREQUAL "NO")
set(HAVE_EMBEDDED ON)
 endif()
 
-set(ENABLE_CONSOLE "YES" CACHE STRING "Enables direct console on the server 
(involves security risks) (default=yes)")
+set(ENABLE_CONSOLE "YES" CACHE STRING "Enables direct console on the server 
(involves security risks) (default=YES)")
 if(NOT ${ENABLE_CONSOLE} STREQUAL "NO")

MonetDB: subquery - bind free variables when possible (some more...

2019-03-20 Thread Niels Nes
Changeset: 2912e2656631 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2912e2656631
Modified Files:
sql/server/rel_unnest.c
Branch: subquery
Log Message:

bind free variables when possible (some more cases need work)


diffs (123 lines):

diff --git a/sql/server/rel_unnest.c b/sql/server/rel_unnest.c
--- a/sql/server/rel_unnest.c
+++ b/sql/server/rel_unnest.c
@@ -245,44 +245,25 @@ rel_dependent_var(mvc *sql, sql_rel *l, 
return res;
 }
 
-#if 0
-static int
-exps_only_simple_refs(list *exps)
+/*
+ * try to bind any freevar in the expression e
+ */
+static void
+rel_bind_var(mvc *sql, sql_rel *rel, sql_exp *e)
 {
-   int simple = 1;
-   node *n;
-
-   if (!exps || !exps->h)
-   return 1;
-   for (n=exps->h; simple && n; n = n->next) {
-   sql_exp *e = n->data;
-
-   simple &= (e->type == e_column && (!e->l || (!e->rname || 
strcmp(e->l, e->rname) == 0)) &&
-(e->r && (!e->name || strcmp(e->r, e->name) == 0)));
-   }
-   return simple;
-}
+   list *fvs = exp_freevar(sql, e);
 
-static sql_rel *
-rel_remove_project(sql_rel *rel)
-{
-   sql_rel *p = rel, *op = rel;
+   if (fvs) {
+   node *n;
+
+   for(n = fvs->h; n; n=n->next) { 
+   sql_exp *e = n->data;
 
-   while(rel) {
-   if (rel->op == op_project && exps_only_simple_refs(rel->exps)) {
-   if (!p)
-   op = rel->l;
-   else
-   p->l = rel->l;
+   if (e->freevar && (exp_is_atom(e) || 
rel_find_exp(rel,e))) 
+   reset_freevar(e);
}
-   if (!rel->l || is_basetable(rel->op))
-   break;
-   p = rel;
-   rel = rel->l;
}
-   return op;
 }
-#endif 
 
 static sql_rel *
 push_up_project(mvc *sql, sql_rel *rel) 
@@ -339,8 +320,11 @@ push_up_project(mvc *sql, sql_rel *rel)
for (m=r->exps->h; m; m = m->next) {
sql_exp *e = m->data;
 
-   if (!e->freevar || exp_name(e)) /* only skip 
full freevars */
+   if (!e->freevar || exp_name(e)) { /* only skip 
full freevars */
append(n->exps, e);
+   if (exp_has_freevar(e)) 
+   rel_bind_var(sql, rel->l, e);
+   }
}
assert(!r->r);
/* remove old project */
@@ -378,6 +362,8 @@ push_up_select(mvc *sql, sql_rel *rel)
for (n=r->exps->h; n; n = n->next) {
sql_exp *e = n->data;
 
+   if (exp_has_freevar(e)) 
+   rel_bind_var(sql, rel->l, e);
rel_join_add_exp(sql->sa, rel, e);
}
/* remove select */
@@ -423,6 +409,8 @@ push_up_groupby(mvc *sql, sql_rel *rel)
append(e->l=sa_list(sql->sa), col);
set_no_nil(e);
}
+   if (exp_has_freevar(e)) 
+   rel_bind_var(sql, rel->l, e);
}
r->exps = list_merge(r->exps, a, (fdup)NULL);
if (!r->r)
@@ -432,7 +420,7 @@ push_up_groupby(mvc *sql, sql_rel *rel)
 
rel->r = r->l; 
r->l = rel;
-   /* check if a join expression needs to be move above 
the group by (into a select) */
+   /* check if a join expression needs to be moved above 
the group by (into a select) */
sexps = sa_list(sql->sa);
jexps = sa_list(sql->sa);
if (rel->exps) {
@@ -476,8 +464,12 @@ move_join_exps(mvc *sql, sql_rel *j, sql
sql_exp *e = n->data;
 
if (rel_find_exp(rel, e)) {
+   if (exp_has_freevar(e)) 
+   rel_bind_var(sql, rel->l, e);
append(rel->exps, e);
} else {
+   if (exp_has_freevar(e)) 
+   rel_bind_var(sql, j->l, e);
append(j->exps, e);
}
}
@@ -714,8 +706,6 @@ rel_unnest_dependent(mvc *sql, sql_rel *
if (rel_has_freevar(r)){
list *ad;
 
-   //rel->r = r = rel_remove_project(r);
-
if (r && is_simple_project(r->op)) {
rel = push_up_project(sql, rel);

MonetDB: subquery - fixes for complex in cases

2019-03-20 Thread Niels Nes
Changeset: b3a0f40d1b58 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b3a0f40d1b58
Modified Files:
sql/server/rel_rel.c
sql/server/rel_select.c
sql/server/rel_unnest.c
sql/server/rel_unnest.h
sql/test/BugTracker-2009/Tests/count_bug.SF-2604583.stable.out.int128

sql/test/BugTracker-2012/Tests/scalar_subquery_with_alias.Bug-3093.stable.out
Branch: subquery
Log Message:

fixes for complex in cases


diffs (truncated from 1062 to 300 lines):

diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c
--- a/sql/server/rel_rel.c
+++ b/sql/server/rel_rel.c
@@ -566,11 +566,15 @@ rel_label( mvc *sql, sql_rel *r, int all
 
r->exps->ht = NULL;
for (; ne; ne = ne->next) {
-   if (all) {
-   nr = ++sql->label;
-   cnme = number2name(cname, 16, nr);
+   sql_exp *e = ne->data;
+
+   if (!e->freevar) {
+   if (all) {
+   nr = ++sql->label;
+   cnme = number2name(cname, 16, nr);
+   }
+   exp_setname(sql->sa, e, tnme, cnme );
}
-   exp_setname(sql->sa, ne->data, tnme, cnme );
}
}
/* op_projects can have a order by list */
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -2008,6 +2008,200 @@ static sql_exp*
return sql_error(sql, 02, SQLSTATE(42000) "SELECT: no such operator 
'%s'", fname);
 }
 
+static sql_exp *
+rel_in_value_exp(sql_query *query, sql_rel **rel, symbol *sc, int f)
+{  
+   mvc *sql = query->sql;
+   exp_kind ek = {type_value, card_column, FALSE};
+
+   dlist *dl = sc->data.lval;
+   symbol *lo = dl->h->data.sym;
+   dnode *n = dl->h->next;
+   sql_rel *left = *rel, *right = NULL;
+   sql_exp *l = NULL, *r = NULL;
+   int vals_only = 1, l_is_value = 1, l_init = 0, l_used = 0, l_tuple = 0;
+   list *vals = NULL, *pexps = NULL;
+
+   (void)l_tuple;
+
+   /* no input, assume single value */
+   if (!left) {
+   left = *rel = rel_project_exp(sql->sa, exp_atom_bool(sql->sa, 
1));
+   reset_processed(left);
+   }
+   if (left && is_sql_sel(f) && !is_processed(left) && 
is_simple_project(left->op)) {
+   pexps = left->exps;
+   if (left->l) {
+   left = left->l;
+   } else {
+   pexps = sa_list(sql->sa);
+   l_init = 1;
+   }
+   }
+
+   l = rel_value_exp(query, , lo, f, ek);
+   if (!l)
+   return NULL;
+   if (l && exp_has_freevar(l)) {
+   l_is_value=0;
+   }
+   ek.card = card_set;
+
+   if (n->type == type_list) {
+   vals = sa_list(sql->sa);
+   n = n->data.lval->h;
+   for (; n; n = n->next) {
+   sql_rel *z = NULL;
+
+   r = rel_value_exp(query, , n->data.sym, sql_where /* 
ie no result project */, ek);
+   if (z && r) {
+   sql_subaggr *ea = NULL;
+   sql_exp *a, *id;
+   list *exps;
+
+   if (l_init) {
+   l = rel_project_add_exp(sql, left, l);
+   l = exp_ref(sql->sa, l);
+   }
+   exps = rel_projections(sql, left, NULL, 1/*keep 
names */, 1);
+   left = rel_add_identity(sql, left, );
+   id = exp_ref(sql->sa, id);
+   left = rel_crossproduct(sql->sa, left, z, 
is_sql_sel(f)?op_left:op_join);
+   /* TODO only if freevars */
+   if (!l_is_value)
+   set_dependent(left);
+   
+   left = rel_groupby(sql, left, exp2list(sql->sa, 
id)); 
+   left->exps = exps; 
+   /* group by on ? */
+   if (rel_convert_types(sql, , , 1, 
type_equal_no_any) < 0) 
+   return NULL;
+   ea = sql_bind_aggr(sql->sa, 
sql->session->schema, sc->token==SQL_IN?"anyequal":"allnotequal", 
exp_subtype(r));
+   a = exp_aggr1(sql->sa, l, ea, 0, 0, CARD_ATOM, 
0);
+   append(a->l, r);
+   r = rel_groupby_add_aggr(sql, left, a);
+   r = 

MonetDB: cmake-fun - Install Mapprove only on install phase.

2019-03-20 Thread Pedro Ferreira
Changeset: 404941ab08b7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=404941ab08b7
Modified Files:
testing/CMakeLists.txt
Branch: cmake-fun
Log Message:

Install Mapprove only on install phase.


diffs (16 lines):

diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
--- a/testing/CMakeLists.txt
+++ b/testing/CMakeLists.txt
@@ -81,10 +81,6 @@ if(WIN32)
 else()
configure_file(Mlog.in ${CMAKE_CURRENT_BINARY_DIR}/Mlog @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Mlog PERMISSIONS 
${PROGRAM_PERMISSIONS_DEFAULT} DESTINATION ${BINDIR})
-
-   add_custom_target(Mapprove ALL
- COMMAND ${CMAKE_COMMAND} -E 
make_directory ${BINDIR}
- COMMAND ${CMAKE_COMMAND} -E 
create_symlink Mtest.py ${BINDIR}/Mapprove.py
- COMMENT "Creating symlink to 
Mtest.py")
-   add_dependencies(Mdiff Mapprove) # Hack, this will make the 
custom_target "Mapprove" run every time
+   install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E 
make_directory ${BINDIR})")
+   install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E 
create_symlink Mtest.py ${BINDIR}/Mapprove.py)")
 endif()
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: cmake-fun - Merge with default.

2019-03-20 Thread Pedro Ferreira
Changeset: 93efa31bb360 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=93efa31bb360
Added Files:
buildtools/selinux/ChangeLog.Apr2019
sql/test/BugTracker-2019/Tests/r-date.Bug-6674.sql
sql/test/BugTracker-2019/Tests/r-date.Bug-6674.stable.err
sql/test/BugTracker-2019/Tests/r-date.Bug-6674.stable.out
Modified Files:
MonetDB.spec
NT/monetdb_config.h.in
buildtools/ChangeLog.Apr2019
configure.ag
gdk/ChangeLog.Apr2019
gdk/gdk_analytic.h
gdk/gdk_analytic_bounds.c
gdk/gdk_analytic_func.c
gdk/gdk_atomic.h
gdk/gdk_utils.c
monetdb5/mal/mal_dataflow.c
monetdb5/modules/kernel/status.c
sql/test/BugTracker-2019/Tests/All
tools/merovingian/ChangeLog.Apr2019
tools/merovingian/daemon/forkmserver.c
tools/merovingian/utils/properties.h
Branch: cmake-fun
Log Message:

Merge with default.


diffs (truncated from 5098 to 300 lines):

diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -438,6 +438,11 @@
 /* Define if you have the SQLGetPrivateProfileString function */
 #define HAVE_SQLGETPRIVATEPROFILESTRING 1
 
+/* Define to 1 if stdatomic.h conforms to C11. */
+#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1800)
+#define HAVE_STDATOMIC_H 1
+#endif
+
 /* Define to 1 if stdbool.h conforms to C99. */
 #define HAVE_STDBOOL_H 1
 
diff --git a/buildtools/ChangeLog.Apr2019 b/buildtools/ChangeLog.Apr2019
--- a/buildtools/ChangeLog.Apr2019
+++ b/buildtools/ChangeLog.Apr2019
@@ -1,7 +1,13 @@
 # ChangeLog file for buildtools
 # This file is updated with Maddlog
 
+* Tue Mar 19 2019 Sjoerd Mullender 
+- We now use the C11 atomic operations if available, although
+  libatomic_ops is still used if present and not disabled on the configure
+  command line.
+
 * Wed Aug 29 2018 Sjoerd Mullender 
 - We now also build the Python 3 integration packages for Fedora, Debian,
-  and Ubuntu (not for Debian 8 or Ubuntu 14.04 which are too old).
+  Ubuntu, and Windows (not for Debian 8, Ubuntu 14.04, or EPEL 6 and 7
+  which are too old).
 
diff --git a/buildtools/selinux/ChangeLog.Apr2019 
b/buildtools/selinux/ChangeLog.Apr2019
new file mode 100644
--- /dev/null
+++ b/buildtools/selinux/ChangeLog.Apr2019
@@ -0,0 +1,9 @@
+# ChangeLog file for selinux
+# This file is updated with Maddlog
+
+* Tue Mar 19 2019 Sjoerd Mullender 
+- There is one tunable parameter, mserver5_can_read_home, which can
+  be set using "setsebool -P mserver5_can_read_home=true" to allow an
+  mserver5 process started by monetdbd under the control of systemd to
+  read files in users' home directories.
+
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2489,6 +2489,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@%:@else
atomic_uint i;
@%:@endif
+   typedef void *_Atomic volatile aptr;
]],
[[ atomic_store(, 0); ]]
)],
diff --git a/gdk/ChangeLog.Apr2019 b/gdk/ChangeLog.Apr2019
--- a/gdk/ChangeLog.Apr2019
+++ b/gdk/ChangeLog.Apr2019
@@ -1,6 +1,11 @@
 # ChangeLog file for MonetDB
 # This file is updated with Maddlog
 
+* Tue Mar 19 2019 Sjoerd Mullender 
+- During processing, we now try to maintain the smallest and largest
+  values that occur in a BAT.  This information is not saved across
+  server restarts.
+
 * Mon Nov 12 2018 Sjoerd Mullender 
 - Added an extra argument of type `bool' to the atom to string and
   string to atom methods to indicate whether the string is for
diff --git a/gdk/gdk_analytic.h b/gdk/gdk_analytic.h
--- a/gdk/gdk_analytic.h
+++ b/gdk/gdk_analytic.h
@@ -18,19 +18,21 @@
 
 gdk_export gdk_return GDKanalyticaldiff(BAT *r, BAT *b, BAT *p, int tpe);
 
-gdk_export gdk_return GDKanalyticalntile(BAT *r, BAT *b, BAT *p, int tpe, 
const void* restrict ntile);
-gdk_export gdk_return GDKanalyticallag(BAT *r, BAT *b, BAT *p, BUN lag, const 
void* restrict default_value, int tpe);
-gdk_export gdk_return GDKanalyticallead(BAT *r, BAT *b, BAT *p, BUN lead, 
const void* restrict default_value, int tpe);
+gdk_export gdk_return GDKanalyticalntile(BAT *r, BAT *b, BAT *p, int tpe, 
const void *restrict ntile);
+gdk_export gdk_return GDKanalyticallag(BAT *r, BAT *b, BAT *p, BUN lag, const 
void *restrict default_value, int tpe);
+gdk_export gdk_return GDKanalyticallead(BAT *r, BAT *b, BAT *p, BUN lead, 
const void *restrict default_value, int tpe);
 
-gdk_export gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT 
*l, const void* restrict bound,
-   
int tp1, int tp2, int unit, bool preceding, lng first_half);
+gdk_export gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT *l,
+   const void *restrict bound,
+   int tp1, int tp2, int 

MonetDB: cmake-fun - Compiles and installs geom module.

2019-03-20 Thread Pedro Ferreira
Changeset: dc33c128557f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dc33c128557f
Added Files:
geom/CMakeLists.txt
geom/lib/CMakeLists.txt
geom/monetdb5/CMakeLists.txt
geom/sql/CMakeLists.txt
Modified Files:
CMakeLists.txt
sql/backends/monet5/CMakeLists.txt
testing/CMakeLists.txt
Branch: cmake-fun
Log Message:

Compiles and installs geom module.


diffs (115 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2004,9 +2004,9 @@ endif()
 if(HAVE_SQL)
add_subdirectory(sql)
 endif()
-#[[if(HAVE_GEOM)
+if(HAVE_GEOM)
add_subdirectory(geom)
-endif()#]]
+endif()
 add_subdirectory(tools)
 if(HAVE_TESTING)
add_subdirectory(testing)
diff --git a/geom/CMakeLists.txt b/geom/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/geom/CMakeLists.txt
@@ -0,0 +1,13 @@
+#[[
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
+#]]
+
+add_subdirectory(lib)
+if(HAVE_MONETDB5)
+   add_subdirectory(monetdb5)
+endif()
+add_subdirectory(sql)
diff --git a/geom/lib/CMakeLists.txt b/geom/lib/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/geom/lib/CMakeLists.txt
@@ -0,0 +1,12 @@
+#[[
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
+#]]
+
+include_directories(../../common/options ../../common/stream ../../gdk 
${GEOS_INCS} ${PROJ_INCLUDE_DIR})
+
+add_library(geomobj STATIC libgeom.c libgeom.h)
+set_target_properties(geomobj PROPERTIES POSITION_INDEPENDENT_CODE ON)
diff --git a/geom/monetdb5/CMakeLists.txt b/geom/monetdb5/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/geom/monetdb5/CMakeLists.txt
@@ -0,0 +1,18 @@
+#[[
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
+#]]
+
+include_directories(../lib ../../gdk ../../common/stream ../../common/options 
../../monetdb5/mal ${GEOS_INCS}
+   ${PROJ_INCLUDE_DIR})
+
+add_library(geom MODULE geom.h geom.c geomBulk.c geom_upgrade.c)
+target_link_libraries(geom PRIVATE geomobj gdk stream monetdb5 ${GEOS_LIBS} 
${PROJ_LIBRARIES})
+set_target_properties(geom PROPERTIES RUNTIME_OUTPUT_NAME _geom 
LIBRARY_OUTPUT_NAME _geom COMPILE_DEFINITIONS "LIBGEOM")
+
+install(TARGETS geom DESTINATION ${LIBDIR}/monetdb5)
+install(FILES geom.mal DESTINATION ${LIBDIR}/monetdb5)
+install(FILES 30_geom.mal DESTINATION ${LIBDIR}/monetdb5/autoload)
diff --git a/geom/sql/CMakeLists.txt b/geom/sql/CMakeLists.txt
new file mode 100644
--- /dev/null
+++ b/geom/sql/CMakeLists.txt
@@ -0,0 +1,9 @@
+#[[
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
+#]]
+
+install(FILES 40_geom.sql DESTINATION ${LIBDIR}/monetdb5/createdb)
diff --git a/sql/backends/monet5/CMakeLists.txt 
b/sql/backends/monet5/CMakeLists.txt
--- a/sql/backends/monet5/CMakeLists.txt
+++ b/sql/backends/monet5/CMakeLists.txt
@@ -41,6 +41,7 @@ add_library(sql MODULE
sql_fround.c sql_fround_impl.h
sql_orderidx.c sql_orderidx.h
wlr.c wlr.h
+   sql_datetrunc.c
sql_rank.c sql_rank.h)
 target_link_libraries(sql PRIVATE monetdb5 mapi gdk stream 
${OPENSSL_LIBRARIES} PUBLIC sqlserver store batstore sqlcommon)
 set_target_properties(sql PROPERTIES RUNTIME_OUTPUT_NAME _sql 
LIBRARY_OUTPUT_NAME _sql COMPILE_DEFINITIONS "LIBSQL")
diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
--- a/testing/CMakeLists.txt
+++ b/testing/CMakeLists.txt
@@ -82,8 +82,9 @@ else()
configure_file(Mlog.in ${CMAKE_CURRENT_BINARY_DIR}/Mlog @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Mlog PERMISSIONS 
${PROGRAM_PERMISSIONS_DEFAULT} DESTINATION ${BINDIR})
 
-   add_custom_target(Mbindir ALL COMMAND ${CMAKE_COMMAND} -E 
make_directory ${BINDIR})
-   add_custom_target(Mapprove ALL COMMAND ${CMAKE_COMMAND} -E 
create_symlink Mtest.py Mapprove.py
- WORKING_DIRECTORY ${BINDIR} COMMENT 
"Creating symlink to Mtest.py")
-   add_dependencies(Mdiff Mbindir Mapprove) # Hack, this will make the 
custom_target "Mapprove" run every 

MonetDB: default - Renamed macros for atomic pointers, added ATO...

2019-03-20 Thread Sjoerd Mullender
Changeset: 6660692e5c02 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6660692e5c02
Modified Files:
NT/monetdb_config.h.in
configure.ag
gdk/gdk_atomic.h
gdk/gdk_utils.c
monetdb5/mal/mal_dataflow.c
monetdb5/modules/kernel/status.c
Branch: default
Log Message:

Renamed macros for atomic pointers, added ATOMIC_PTR_CAS, use volatile.


diffs (truncated from 366 to 300 lines):

diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -438,6 +438,11 @@
 /* Define if you have the SQLGetPrivateProfileString function */
 #define HAVE_SQLGETPRIVATEPROFILESTRING 1
 
+/* Define to 1 if stdatomic.h conforms to C11. */
+#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1800)
+#define HAVE_STDATOMIC_H 1
+#endif
+
 /* Define to 1 if stdbool.h conforms to C99. */
 #define HAVE_STDBOOL_H 1
 
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2489,6 +2489,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@%:@else
atomic_uint i;
@%:@endif
+   typedef void *_Atomic volatile aptr;
]],
[[ atomic_store(, 0); ]]
)],
diff --git a/gdk/gdk_atomic.h b/gdk/gdk_atomic.h
--- a/gdk/gdk_atomic.h
+++ b/gdk/gdk_atomic.h
@@ -33,12 +33,12 @@
  *
  * Some of these are also available for pointers:
  * ATOMIC_PTR_INIT
- * ATOMIC_GET_PTR
- * ATOMIC_SET_PTR
- * ATOMIC_XCG_PTR
- * To define an atomic pointer, use ATOMIC_PTR_TYPE(type).  This may
- * or may not use the type provided to construct a type that is usable
- * in the above macros.
+ * ATOMIC_PTR_GET
+ * ATOMIC_PTR_SET
+ * ATOMIC_PTR_XCG
+ * ATOMIC_PTR_CAS
+ * To define an atomic pointer, use ATOMIC_PTR_TYPE.  This is a (void *)
+ * pointer that is appropriately adapted for atomic use.
  *
  * In addition, the following operations are defined:
  * ATOMIC_TAS -- test-and-set: set variable to "true" and return old value
@@ -55,30 +55,30 @@
 /* define this if you don't want to use atomic instructions */
 /* #define NO_ATOMIC_INSTRUCTIONS */
 
-#if defined(HAVE_STDATOMIC_H) && !defined(__INTEL_COMPILER) && 
!defined(__STDC_NO_ATOMICS__) && !defined(NO_ATOMIC_INSTRUCTIONS)
+#if defined(HAVE_STDATOMIC_H) && !defined(__STDC_NO_ATOMICS__) && 
!defined(NO_ATOMIC_INSTRUCTIONS)
 
 #include 
 
 #if ATOMIC_LLONG_LOCK_FREE == 2
-typedef atomic_ullong ATOMIC_TYPE;
+typedef volatile atomic_ullong ATOMIC_TYPE;
 typedef unsigned long long ATOMIC_BASE_TYPE;
 #elif ATOMIC_LONG_LOCK_FREE == 2
-typedef atomic_ulong ATOMIC_TYPE;
+typedef volatile atomic_ulong ATOMIC_TYPE;
 typedef unsigned long ATOMIC_BASE_TYPE;
 #elif ATOMIC_INT_LOCK_FREE == 2
-typedef atomic_uint ATOMIC_TYPE;
+typedef volatile atomic_uint ATOMIC_TYPE;
 typedef unsigned int ATOMIC_BASE_TYPE;
 #elif ATOMIC_LLONG_LOCK_FREE == 1
-typedef atomic_ullong ATOMIC_TYPE;
+typedef volatile atomic_ullong ATOMIC_TYPE;
 typedef unsigned long long ATOMIC_BASE_TYPE;
 #elif ATOMIC_LONG_LOCK_FREE == 1
-typedef atomic_ulong ATOMIC_TYPE;
+typedef volatile atomic_ulong ATOMIC_TYPE;
 typedef unsigned long ATOMIC_BASE_TYPE;
 #elif ATOMIC_INT_LOCK_FREE == 1
-typedef atomic_uint ATOMIC_TYPE;
+typedef volatile atomic_uint ATOMIC_TYPE;
 typedef unsigned int ATOMIC_BASE_TYPE;
 #else
-typedef atomic_ullong ATOMIC_TYPE;
+typedef volatile atomic_ullong ATOMIC_TYPE;
 typedef unsigned long long ATOMIC_BASE_TYPE;
 #endif
 
@@ -92,13 +92,19 @@ typedef unsigned long long ATOMIC_BASE_T
 #define ATOMIC_INC(var)(atomic_fetch_add(var, 1) + 1)
 #define ATOMIC_DEC(var)(atomic_fetch_sub(var, 1) - 1)
 
-#define ATOMIC_PTR_TYPE(typ)   _Atomic typ
+#ifdef __INTEL_COMPILER
+typedef volatile atomic_address ATOMIC_PTR_TYPE;
+#else
+typedef void *_Atomic volatile ATOMIC_PTR_TYPE;
+#endif
 #define ATOMIC_PTR_INIT(var, val)  atomic_init(var, val)
-#define ATOMIC_GET_PTR(var)atomic_load(var)
-#define ATOMIC_SET_PTR(var, val)   atomic_store(var, val)
-#define ATOMIC_XCG_PTR(var, val)   atomic_exchange(var, val)
+#define ATOMIC_PTR_VAR_INIT(val)   ATOMIC_VAR_INIT(val)
+#define ATOMIC_PTR_GET(var)atomic_load(var)
+#define ATOMIC_PTR_SET(var, val)   atomic_store(var, (void *) (val))
+#define ATOMIC_PTR_XCG(var, val)   atomic_exchange(var, (void *) (val))
+#define ATOMIC_PTR_CAS(var, exp, des)  atomic_compare_exchange_strong(var, 
exp, (void *) (des))
 
-typedef atomic_flag ATOMIC_FLAG;
+typedef volatile atomic_flag ATOMIC_FLAG;
 /* ATOMIC_FLAG_INIT is already defined by the include file */
 #define ATOMIC_CLEAR(var)  atomic_flag_clear(var)
 #define ATOMIC_TAS(var)atomic_flag_test_and_set(var)
@@ -120,6 +126,8 @@ typedef atomic_flag ATOMIC_FLAG;
  *
  * This does not go for the Intel compiler, so there we use
  * _InterlockedExchangeAdd to load the value of an atomic variable.
+ * There might be a better way, but it's hard to find in the
+ * documentation.
  */
 
 #if 

MonetDB: cmake-fun - Compiles from outside the source directory.

2019-03-20 Thread Pedro Ferreira
Changeset: 66a480606a35 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=66a480606a35
Added Files:
monetdb_config.h.in
Removed Files:
cmake/monetdb_config.h.in
Modified Files:
CMakeLists.txt
clients/mapilib/CMakeLists.txt
common/stream/CMakeLists.txt
gdk/CMakeLists.txt
monetdb5/tools/CMakeLists.txt
testing/CMakeLists.txt
tools/merovingian/daemon/CMakeLists.txt
tools/merovingian/daemon/config/CMakeLists.txt
tools/mserver/CMakeLists.txt
Branch: cmake-fun
Log Message:

Compiles from outside the source directory.


diffs (229 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -510,25 +510,29 @@ set(PYTHON2 "AUTO" CACHE STRING "python2
 set(PYTHON3 "AUTO" CACHE STRING "python3 is installed in DIR")
 message(STATUS "Checking major version of Python interpreter")
 find_program(PYTHON_INTERPRETER python)
-exec_program("${PYTHON_INTERPRETER}" ARGS "-V" OUTPUT_VARIABLE PY_OUPUT_RES 
RETURN_VALUE PY_RETURN_CODE)
-if(PY_RETURN_CODE EQUAL 0 AND PY_OUPUT_RES)
-   string(FIND "${PY_OUPUT_RES}" "Python 2" MAJOR_IS_PYTHON2)
-   string(FIND "${PY_OUPUT_RES}" "Python 3" MAJOR_IS_PYTHON3)
-   if(NOT MAJOR_IS_PYTHON2 EQUAL -1) # Python 2 has precedence
-   set(MAJOR_PYTHON 2)
-   set(HAVE_PYTHON2 YES)
-   set(PY2_OUPUT_RES "${PY_OUPUT_RES}")
-   elseif(NOT MAJOR_IS_PYTHON3 EQUAL -1)
-   set(MAJOR_PYTHON 3)
-   set(HAVE_PYTHON3 YES)
-   set(PY3_OUPUT_RES "${PY_OUPUT_RES}")
-   else()
-   message(FATAL_ERROR "Only python versions 2 and 3 are supported 
by MonetDB")
+if(PYTHON_INTERPRETER)
+   exec_program("${PYTHON_INTERPRETER}" ARGS "-V" OUTPUT_VARIABLE 
PY_OUPUT_RES RETURN_VALUE PY_RETURN_CODE)
+   if(PY_RETURN_CODE EQUAL 0 AND PY_OUPUT_RES)
+   string(FIND "${PY_OUPUT_RES}" "Python 2" MAJOR_IS_PYTHON2)
+   string(FIND "${PY_OUPUT_RES}" "Python 3" MAJOR_IS_PYTHON3)
+   if(NOT MAJOR_IS_PYTHON2 EQUAL -1) # Python 2 has precedence
+   set(MAJOR_PYTHON 2)
+   set(HAVE_PYTHON2 YES)
+   set(PY2_OUPUT_RES "${PY_OUPUT_RES}")
+   elseif(NOT MAJOR_IS_PYTHON3 EQUAL -1)
+   set(MAJOR_PYTHON 3)
+   set(HAVE_PYTHON3 YES)
+   set(PY3_OUPUT_RES "${PY_OUPUT_RES}")
+   else()
+   message(FATAL_ERROR "Only python versions 2 and 3 are 
supported by MonetDB")
+   endif()
+   if(MAJOR_IS_PYTHON2 OR MAJOR_IS_PYTHON3)
+   set(HAVE_PYTHON YES)
+   message(STATUS "Major Python interpreter: 
${MAJOR_PYTHON}")
+   endif()
endif()
-   if(MAJOR_IS_PYTHON2 OR MAJOR_IS_PYTHON3)
-   set(HAVE_PYTHON YES)
-   message(STATUS "Major Python interpreter: ${MAJOR_PYTHON}")
-   endif()
+else()
+   message(WARNING "A python interpreter was not found")
 endif()
 
 if(NOT ${PYTHON2} STREQUAL "NO")
@@ -1984,9 +1988,9 @@ set(builtby "$ENV{USER}@${BUILD_HOST}")
 set(compilercall "${CMAKE_C_COMPILER}${CMAKE_C_FLAGS}")
 set(linkercall "${CMAKE_LINKER}${CMAKE_REQUIRED_FLAGS}")
 
-configure_file(${CMAKE_SOURCE_DIR}/cmake/monetdb_config.h.in 
${CMAKE_SOURCE_DIR}/monetdb_config.h)
-install(FILES monetdb_config.h DESTINATION ${INCLUDEDIR}/monetdb)
-include_directories(${CMAKE_SOURCE_DIR})
+configure_file(monetdb_config.h.in 
${CMAKE_CURRENT_BINARY_DIR}/monetdb_config.h)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/monetdb_config.h DESTINATION 
${INCLUDEDIR}/monetdb)
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
 
 add_subdirectory(buildtools)
 add_subdirectory(common)
diff --git a/clients/mapilib/CMakeLists.txt b/clients/mapilib/CMakeLists.txt
--- a/clients/mapilib/CMakeLists.txt
+++ b/clients/mapilib/CMakeLists.txt
@@ -19,6 +19,6 @@ if(NOT WIN32)
if(SOCKET_LIBRARIES)
set(PKG_SOCKET_LIBS "-l${SOCKET_LIBRARIES}") #TODO fix this
endif()
-   configure_file(monetdb-mapi.pc.in monetdb-mapi.pc @ONLY)
-   install(FILES monetdb-mapi.pc DESTINATION ${PKGCONFIGDIR})
+   configure_file(monetdb-mapi.pc.in 
${CMAKE_CURRENT_BINARY_DIR}/monetdb-mapi.pc @ONLY)
+   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/monetdb-mapi.pc DESTINATION 
${PKGCONFIGDIR})
 endif()
diff --git a/common/stream/CMakeLists.txt b/common/stream/CMakeLists.txt
--- a/common/stream/CMakeLists.txt
+++ b/common/stream/CMakeLists.txt
@@ -43,6 +43,6 @@ if(NOT WIN32)
if(Iconv_LIBRARY AND NOT Iconv_IS_BUILT_IN)
set(PKG_LIBICONV "-l${Iconv_LIBRARY}")
endif()
-   configure_file(monetdb-stream.pc.in monetdb-stream.pc @ONLY)
-   install(FILES monetdb-stream.pc DESTINATION ${PKGCONFIGDIR})
+   configure_file(monetdb-stream.pc.in 

MonetDB: cmake-fun - fix compilation of sql with seperate build ...

2019-03-20 Thread Niels Nes
Changeset: 713ca59c82b8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=713ca59c82b8
Modified Files:
sql/server/CMakeLists.txt
Branch: cmake-fun
Log Message:

fix compilation of sql with seperate build directory


diffs (12 lines):

diff --git a/sql/server/CMakeLists.txt b/sql/server/CMakeLists.txt
--- a/sql/server/CMakeLists.txt
+++ b/sql/server/CMakeLists.txt
@@ -8,7 +8,7 @@
 
 include_directories(. ../include ../common ../storage ../../monetdb5/mal 
../../monetdb5/modules/atoms
../../monetdb5/modules/mal 
../../monetdb5/extras/rapi ../../clients/mapilib ../../common/options 
-   ../../common/stream ../../gdk)
+   ../../common/stream ../../gdk 
${CMAKE_CURRENT_BINARY_DIR})
 
 bison_target(sqlparser sql_parser.y 
${CMAKE_CURRENT_BINARY_DIR}/sql_parser.tab.c
COMPILE_FLAGS "-d -p sql -r all"
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: cmake-fun - Compiles and installs monetdbd.

2019-03-20 Thread Pedro Ferreira
Changeset: b09b2713d405 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b09b2713d405
Added Files:
tools/merovingian/client/CMakeLists.txt
tools/merovingian/daemon/CMakeLists.txt
tools/merovingian/daemon/config/CMakeLists.txt
tools/merovingian/utils/CMakeLists.txt
Modified Files:
CMakeLists.txt
clients/mapiclient/CMakeLists.txt
common/options/CMakeLists.txt
common/stream/CMakeLists.txt
gdk/CMakeLists.txt
monetdb5/mal/CMakeLists.txt
sql/CMakeLists.txt
sql/server/CMakeLists.txt
tools/merovingian/CMakeLists.txt
tools/merovingian/daemon/config/.merovingian_properties.in
tools/merovingian/daemon/config/monetdbd.in
tools/mserver/CMakeLists.txt
Branch: cmake-fun
Log Message:

Compiles and installs monetdbd.


diffs (239 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -188,7 +188,7 @@ if(UNIX OR APPLE) # instalation director
set(LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}")
set(LIBEXECDIR "${CMAKE_INSTALL_FULL_LIBEXECDIR}")
set(LOCALSTATEDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}")
-   set(INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/monetdb")
+   set(INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
set(PKGCONFIGDIR "${LIBDIR}/pkgconfig")
set(SYSCONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}")
set(MANDIR "${CMAKE_INSTALL_FULL_MANDIR}")
@@ -1985,6 +1985,7 @@ set(compilercall "${CMAKE_C_COMPILER}${C
 set(linkercall "${CMAKE_LINKER}${CMAKE_REQUIRED_FLAGS}")
 
 configure_file(${CMAKE_SOURCE_DIR}/cmake/monetdb_config.h.in 
${CMAKE_SOURCE_DIR}/monetdb_config.h)
+install(FILES monetdb_config.h DESTINATION ${INCLUDEDIR}/monetdb)
 include_directories(${CMAKE_SOURCE_DIR})
 
 add_subdirectory(buildtools)
diff --git a/clients/mapiclient/CMakeLists.txt 
b/clients/mapiclient/CMakeLists.txt
--- a/clients/mapiclient/CMakeLists.txt
+++ b/clients/mapiclient/CMakeLists.txt
@@ -36,3 +36,4 @@ target_link_libraries(tomograph PRIVATE 
  ${Iconv_LIBRARY} ${OPENSSL_LIBRARIES})
 
 install(TARGETS mclient msqldump stethoscope tachograph tomograph DESTINATION 
${BINDIR})
+install(FILES mclient.1 msqldump.1 DESTINATION ${DATADIR}/man/man1)
diff --git a/common/options/CMakeLists.txt b/common/options/CMakeLists.txt
--- a/common/options/CMakeLists.txt
+++ b/common/options/CMakeLists.txt
@@ -9,4 +9,4 @@
 add_library(moptions OBJECT monet_options.c monet_options.h monet_getopt.h)
 set_target_properties(moptions PROPERTIES POSITION_INDEPENDENT_CODE ON)
 
-install(FILES monet_options.h DESTINATION ${INCLUDEDIR})
+install(FILES monet_options.h DESTINATION ${INCLUDEDIR}/monetdb)
diff --git a/common/stream/CMakeLists.txt b/common/stream/CMakeLists.txt
--- a/common/stream/CMakeLists.txt
+++ b/common/stream/CMakeLists.txt
@@ -16,7 +16,7 @@ target_include_directories(stream PRIVAT
 set_target_properties(stream PROPERTIES VERSION ${STREAM_VERSION} SOVERSION 
${STREAM_VERSION_MAJOR})
 
 install(TARGETS stream LIBRARY DESTINATION ${LIBDIR})
-install(FILES stream_socket.h stream.h DESTINATION ${INCLUDEDIR})
+install(FILES stream_socket.h stream.h DESTINATION ${INCLUDEDIR}/monetdb)
 
 if(NOT WIN32)
if(CURL_LIBRARY)
diff --git a/gdk/CMakeLists.txt b/gdk/CMakeLists.txt
--- a/gdk/CMakeLists.txt
+++ b/gdk/CMakeLists.txt
@@ -52,7 +52,7 @@ install(FILES
gdk_hash.h
gdk_system.h
gdk_utils.h
-   DESTINATION ${INCLUDEDIR})
+   DESTINATION ${INCLUDEDIR}/monetdb)
 
 if(NOT WIN32)
if(MATH_LIBS)
diff --git a/monetdb5/mal/CMakeLists.txt b/monetdb5/mal/CMakeLists.txt
--- a/monetdb5/mal/CMakeLists.txt
+++ b/monetdb5/mal/CMakeLists.txt
@@ -59,4 +59,4 @@ install(FILES
mal_resolve.h
mal_stack.h
mal_type.h
-   DESTINATION ${INCLUDEDIR})
+   DESTINATION ${INCLUDEDIR}/monetdb)
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -15,3 +15,5 @@ add_subdirectory(scripts)
 #if(WIN32)
 #  add_subdirectory(NT)
 #endif()
+
+install(FILES dump-restore.txt dump-restore.html DESTINATION 
${DATADIR}/doc/MonetDB-SQL)
diff --git a/sql/server/CMakeLists.txt b/sql/server/CMakeLists.txt
--- a/sql/server/CMakeLists.txt
+++ b/sql/server/CMakeLists.txt
@@ -6,7 +6,7 @@
 # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
 #]]
 
-include_directories(../include ../common ../storage ../../monetdb5/mal 
../../monetdb5/modules/atoms 
+include_directories(. ../include ../common ../storage ../../monetdb5/mal 
../../monetdb5/modules/atoms
../../monetdb5/modules/mal 
../../monetdb5/extras/rapi ../../clients/mapilib ../../common/options 
../../common/stream ../../gdk)
 
diff --git a/tools/merovingian/CMakeLists.txt 

MonetDB: Apr2019 - Plug memory leak.

2019-03-20 Thread Sjoerd Mullender
Changeset: aab90a699b6e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aab90a699b6e
Modified Files:
sql/backends/monet5/sql_scenario.c
Branch: Apr2019
Log Message:

Plug memory leak.


diffs (30 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1036,10 +1036,9 @@ SQLparser(Client c)
char *q = NULL;
 
/* clean up old stuff */
-   msg = (char *) c->query;
+   q = (char *) c->query;
c->query = NULL;
-   GDKfree(msg);   /* may be NULL */
-   msg = NULL;
+   GDKfree(q); /* may be NULL */
 
be = (backend *) c->sqlcontext;
if (be == 0) {
@@ -1335,8 +1334,12 @@ SQLparser(Client c)
}
}
 finalize:
-   if (msg)
+   if (msg) {
sqlcleanup(m, 0);
+   q = (char *) c->query;
+   c->query = NULL;
+   GDKfree(q);
+   }
return msg;
 }
 
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Apr2019 - Not really a const pointer.

2019-03-20 Thread Sjoerd Mullender
Changeset: 36d64f2d0cf2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=36d64f2d0cf2
Modified Files:
monetdb5/mal/mal_client.h
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_scenario.c
Branch: Apr2019
Log Message:

Not really a const pointer.


diffs (65 lines):

diff --git a/monetdb5/mal/mal_client.h b/monetdb5/mal/mal_client.h
--- a/monetdb5/mal/mal_client.h
+++ b/monetdb5/mal/mal_client.h
@@ -191,8 +191,8 @@ typedef struct CLIENT {
 
size_t blocksize;
protocol_version protocol;
-   bool filetrans; /* whether the client can read 
files for us */
-   const char *query;  /* string, identify whatever 
we're working on */
+   bool filetrans; /* whether the client can read files 
for us */
+   char *query;/* string, identify whatever we're 
working on */
 } *Client, ClientRec;
 
 mal_export voidMCinit(void);
diff --git a/sql/backends/monet5/sql_execute.c 
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -760,7 +760,7 @@ SQLengineIntern(Client c, backend *be)
 
if (oldlang == 'X') {   /* return directly from X-commands */
sqlcleanup(be->mvc, 0);
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q);
return MAL_SUCCEED;
@@ -782,7 +782,7 @@ SQLengineIntern(Client c, backend *be)
goto cleanup_engine;
}
sqlcleanup(be->mvc, 0);
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q);
return MAL_SUCCEED;
@@ -830,7 +830,7 @@ cleanup_engine:
MSresetInstructions(c->curprg->def, 1);
freeVariables(c, c->curprg->def, NULL, be->vtop);
be->language = oldlang;
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q);
/*
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -1036,7 +1036,7 @@ SQLparser(Client c)
char *q = NULL;
 
/* clean up old stuff */
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q); /* may be NULL */
 
@@ -1336,7 +1336,7 @@ SQLparser(Client c)
 finalize:
if (msg) {
sqlcleanup(m, 0);
-   q = (char *) c->query;
+   q = c->query;
c->query = NULL;
GDKfree(q);
}
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list