[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-checkins
Subject:    MonetDB: pushcands - Merged with default
From:       Pedro_Ferreira <commits+pedro.ferreira=monetdbsolutions.com () mon
Date:       2021-05-27 12:08:17
Message-ID: hg.ad120e92a1cf.1622117297.-6925668066348802013 () monetdb-vm0 ! spin-off ! cwi ! nl
[Download RAW message or body]

Changeset: ad120e92a1cf for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ad120e92a1cf
Modified Files:
	clients/Tests/MAL-signatures.stable.out
	clients/Tests/MAL-signatures.stable.out.int128
	clients/Tests/exports.stable.out
	monetdb5/modules/atoms/batxml.c
	monetdb5/modules/atoms/json.c
	monetdb5/modules/kernel/algebra.c
	monetdb5/modules/kernel/bat5.c
	monetdb5/optimizer/opt_mergetable.c
	monetdb5/optimizer/opt_pushselect.c
	sql/backends/monet5/rel_bin.c
	sql/backends/monet5/sql.c
	sql/backends/monet5/sql_gencode.c
	sql/backends/monet5/sql_statement.c
	sql/backends/monet5/sql_statement.h
	sql/backends/monet5/sql_statistics.c
	sql/common/sql_types.c
	sql/server/rel_dump.c
	sql/server/rel_optimizer.c
	sql/server/rel_updates.c
Branch: pushcands
Log Message:

Merged with default


diffs (truncated from 145977 to 300 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -196,6 +196,7 @@ functionality of MonetDB.
 %files devel
 %defattr(-,root,root)
 %dir %{_includedir}/monetdb
+%{_includedir}/monetdb/copybinary.h
 %{_includedir}/monetdb/gdk*.h
 %{_includedir}/monetdb/matomic.h
 %{_includedir}/monetdb/mstring.h
@@ -628,6 +629,7 @@ This package contains files needed to de
 %package embedded
 Summary: MonetDB as an embedded library
 Group: Applications/Databases
+Requires: MonetDB5-server%{?_isa} = %{version}-%{release}
 
 %description embedded
 MonetDB is a database management system that is developed from a
@@ -636,7 +638,8 @@ automatic index management, extensibilit
 accelerators.  It also has an SQL front end.
 
 This package contains the library to turn MonetDB into an embeddable
-library.  Also see %{name}-embedded-devel to use this in a program.
+library, also known as MonetDBe.  Also see %{name}-embedded-devel to
+use this in a program.
 
 %files embedded
 %{_libdir}/libmonetdbe.so.*
@@ -662,6 +665,24 @@ program that uses MonetDB as an embeddab
 %{_includedir}/monetdb/monetdbe.h
 %{_libdir}/pkgconfig/monetdbe.pc
 
+%package embedded-tests
+Summary: MonetDBe tests package
+Group: Applications/Databases
+Requires: %{name}-embedded%{?_isa} = %{version}-%{release}
+
+%description embedded-tests
+MonetDB is a database management system that is developed from a
+main-memory perspective with use of a fully decomposed storage model,
+automatic index management, extensibility of data types and search
+accelerators.  It also has an SQL front end.
+
+This package contains some test programs using the %{name}-embedded
+package.  You probably don't need this, unless you are a developer.
+
+%files embedded-tests
+%defattr(-,root,root)
+%{_bindir}/example_proxy
+
 %package testing-python
 Summary: MonetDB - Monet Database Management System
 Group: Applications/Databases
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -175,7 +175,8 @@ def main():
     print(r'              <Directory Id="monetdb" Name="monetdb">')
     id = comp(extend, id, 16,
               sorted([r'include\monetdb\{}'.format(x) for x in filter(lambda x: \
(x.startswith('gdk') or x.startswith('monet') or x.startswith('mal') or \
x.startswith('sql')) and x.endswith('.h'), os.listdir(os.path.join(sys.argv[3], \
                'include', 'monetdb')))] +
-                     [r'include\monetdb\mapi.h',
+                     [r'include\monetdb\copybinary.h',
+                      r'include\monetdb\mapi.h',
                       r'include\monetdb\matomic.h',
                       r'include\monetdb\mel.h',
                       r'include\monetdb\mstring.h',
diff --git a/clients/Tests/MAL-signatures.stable.out \
                b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -7037,6 +7037,7 @@ stdout of test 'MAL-signatures` in direc
 [ "clients",	"changePassword",	"pattern clients.changePassword(X_0:str, \
X_1:str):void ",	"CLTchangePassword;",	""	]  [ "clients",	"changeUsername",	"pattern \
clients.changeUsername(X_0:str, X_1:str):void ",	"CLTchangeUsername;",	""	]  [ \
"clients",	"checkPermission",	"pattern clients.checkPermission(X_0:str, X_1:str):void \
",	"CLTcheckPermission;",	""	] +[ "clients",	"current_sessionid",	"pattern \
clients.current_sessionid():int ",	"CLTgetSessionID;",	""	]  [ \
"clients",	"getId",	"pattern clients.getId():int ",	"CLTgetClientId;",	""	]  [ \
"clients",	"getInfo",	"pattern clients.getInfo() (X_0:bat[:str], X_1:bat[:str]) \
",	"CLTInfo;",	""	]  [ "clients",	"getLogins",	"command clients.getLogins() \
                (X_0:bat[:oid], X_1:bat[:str]) ",	"CLTLogin;",	""	]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 \
                b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -9920,6 +9920,7 @@ stdout of test 'MAL-signatures` in direc
 [ "clients",	"changePassword",	"pattern clients.changePassword(X_0:str, \
X_1:str):void ",	"CLTchangePassword;",	""	]  [ "clients",	"changeUsername",	"pattern \
clients.changeUsername(X_0:str, X_1:str):void ",	"CLTchangeUsername;",	""	]  [ \
"clients",	"checkPermission",	"pattern clients.checkPermission(X_0:str, X_1:str):void \
",	"CLTcheckPermission;",	""	] +[ "clients",	"current_sessionid",	"pattern \
clients.current_sessionid():int ",	"CLTgetSessionID;",	""	]  [ \
"clients",	"getId",	"pattern clients.getId():int ",	"CLTgetClientId;",	""	]  [ \
"clients",	"getInfo",	"pattern clients.getInfo() (X_0:bat[:str], X_1:bat[:str]) \
",	"CLTInfo;",	""	]  [ "clients",	"getLogins",	"command clients.getLogins() \
                (X_0:bat[:oid], X_1:bat[:str]) ",	"CLTLogin;",	""	]
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
@@ -206,6 +206,7 @@ BAT *BATunmask(BAT *b);
 BBPrec *BBP[N_BBPINIT];
 gdk_return BBPaddfarm(const char *dirname, uint32_t rolemask, bool logerror);
 void BBPclear(bat bid);
+void BBPcold(bat i);
 BAT *BBPdescriptor(bat b);
 int BBPfix(bat b);
 bat BBPindex(const char *nme);
@@ -542,6 +543,7 @@ gdk_return log_delta(logger *lg, BAT *ui
 gdk_return log_sequence(logger *lg, int seq, lng id);
 gdk_return log_tend(logger *lg);
 gdk_return log_tstart(logger *lg, ulng commit_ts, bool flush);
+gdk_return logger_activate(logger *lg);
 lng logger_changes(logger *lg);
 logger *logger_create(int debug, const char *fn, const char *logdir, int version, \
preversionfix_fptr prefuncp, postversionfix_fptr postfuncp, void *funcdata);  void \
                logger_destroy(logger *lg);
diff --git a/clients/odbc/ChangeLog.Oct2020 b/clients/odbc/ChangeLog.Oct2020
--- a/clients/odbc/ChangeLog.Oct2020
+++ b/clients/odbc/ChangeLog.Oct2020
@@ -1,3 +1,6 @@
 # ChangeLog file for odbc
 # This file is updated with Maddlog
 
+* Fri May  7 2021 Sjoerd Mullender <sjoerd@acm.org>
+- A typo that made the SQLSpecialColumns function unusable was fixed.
+
diff --git a/common/utils/matomic.h b/common/utils/matomic.h
--- a/common/utils/matomic.h
+++ b/common/utils/matomic.h
@@ -87,15 +87,17 @@ typedef unsigned long long ATOMIC_BASE_T
 #endif
 
 #define ATOMIC_INIT(var, val)	atomic_init(var, (ATOMIC_BASE_TYPE) (val))
-#define ATOMIC_DESTROY(var)	((void) 0)
-#define ATOMIC_GET(var)		atomic_load(var)
+#define ATOMIC_DESTROY(var)		((void) 0)
+#define ATOMIC_GET(var)			atomic_load(var)
 #define ATOMIC_SET(var, val)	atomic_store(var, (ATOMIC_BASE_TYPE) (val))
 #define ATOMIC_XCG(var, val)	atomic_exchange(var, (ATOMIC_BASE_TYPE) (val))
 #define ATOMIC_CAS(var, exp, des)	atomic_compare_exchange_strong(var, exp, \
(ATOMIC_BASE_TYPE) (des))  #define ATOMIC_ADD(var, val)	atomic_fetch_add(var, \
(ATOMIC_BASE_TYPE) (val))  #define ATOMIC_SUB(var, val)	atomic_fetch_sub(var, \
                (ATOMIC_BASE_TYPE) (val))
-#define ATOMIC_INC(var)		(atomic_fetch_add(var, 1) + 1)
-#define ATOMIC_DEC(var)		(atomic_fetch_sub(var, 1) - 1)
+#define ATOMIC_INC(var)			(atomic_fetch_add(var, 1) + 1)
+#define ATOMIC_DEC(var)			(atomic_fetch_sub(var, 1) - 1)
+#define ATOMIC_OR(var, val)		atomic_fetch_or(var, (ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_AND(var, val)	atomic_fetch_and(var, (ATOMIC_BASE_TYPE) (val))
 
 #ifdef __INTEL_COMPILER
 typedef volatile atomic_address ATOMIC_PTR_TYPE;
@@ -166,8 +168,10 @@ ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE
 #define ATOMIC_CAS(var, exp, des)	ATOMIC_CAS(var, exp, (ATOMIC_BASE_TYPE) (des))
 #define ATOMIC_ADD(var, val)	_InterlockedExchangeAdd64(var, (ATOMIC_BASE_TYPE) \
(val))  #define ATOMIC_SUB(var, val)	_InterlockedExchangeAdd64(var, \
                -(ATOMIC_BASE_TYPE) (val))
-#define ATOMIC_INC(var)		_InterlockedIncrement64(var)
-#define ATOMIC_DEC(var)		_InterlockedDecrement64(var)
+#define ATOMIC_INC(var)			_InterlockedIncrement64(var)
+#define ATOMIC_DEC(var)			_InterlockedDecrement64(var)
+#define ATOMIC_OR(var, val)		_InterlockedOr64(var, (ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_AND(var, val)	_InterlockedAnd64(var, (ATOMIC_BASE_TYPE) (val))
 
 #else
 
@@ -179,6 +183,23 @@ ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE
 #define ATOMIC_GET(var)			_InlineInterlockedExchangeAdd64(var, 0)
 #define ATOMIC_SET(var, val)	_InlineInterlockedExchange64(var, (ATOMIC_BASE_TYPE) \
(val))  #define ATOMIC_XCG(var, val)	_InlineInterlockedExchange64(var, \
(ATOMIC_BASE_TYPE) (val)) +#define ATOMIC_ADD(var, \
val)	_InlineInterlockedExchangeAdd64(var, (ATOMIC_BASE_TYPE) (val)) +#define \
ATOMIC_SUB(var, val)	_InlineInterlockedExchangeAdd64(var, -(ATOMIC_BASE_TYPE) (val)) \
+#define ATOMIC_INC(var)			_InlineInterlockedIncrement64(var) +#define \
ATOMIC_DEC(var)			_InlineInterlockedDecrement64(var) +#define ATOMIC_OR(var, \
val)		_InlineInterlockedOr64(var, (ATOMIC_BASE_TYPE) (val)) +#define ATOMIC_AND(var, \
val)	_InlineInterlockedAnd64(var, (ATOMIC_BASE_TYPE) (val)) +#else
+#define ATOMIC_GET(var)			_InterlockedExchangeAdd64(var, 0)
+#define ATOMIC_SET(var, val)	_InterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_XCG(var, val)	_InterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_ADD(var, val)	_InterlockedExchangeAdd64(var, (ATOMIC_BASE_TYPE) \
(val)) +#define ATOMIC_SUB(var, val)	_InterlockedExchangeAdd64(var, \
-(ATOMIC_BASE_TYPE) (val)) +#define ATOMIC_INC(var)			_InterlockedIncrement64(var)
+#define ATOMIC_DEC(var)			_InterlockedDecrement64(var)
+#define ATOMIC_OR(var, val)		_InterlockedOr64(var, (ATOMIC_BASE_TYPE) (val))
+#define ATOMIC_AND(var, val)	_InterlockedAnd64(var, (ATOMIC_BASE_TYPE) (val))
+#endif
 static inline bool
 ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE_TYPE *exp, ATOMIC_BASE_TYPE des)
 {
@@ -190,30 +211,6 @@ ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE
 	return false;
 }
 #define ATOMIC_CAS(var, exp, des)	ATOMIC_CAS(var, exp, (ATOMIC_BASE_TYPE) (des))
-#define ATOMIC_ADD(var, val)	_InlineInterlockedExchangeAdd64(var, (ATOMIC_BASE_TYPE) \
                (val))
-#define ATOMIC_SUB(var, val)	_InlineInterlockedExchangeAdd64(var, \
                -(ATOMIC_BASE_TYPE) (val))
-#define ATOMIC_INC(var)		_InlineInterlockedIncrement64(var)
-#define ATOMIC_DEC(var)		_InlineInterlockedDecrement64(var)
-#else
-#define ATOMIC_GET(var)			_InterlockedExchangeAdd64(var, 0)
-#define ATOMIC_SET(var, val)	_InterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val))
-#define ATOMIC_XCG(var, val)	_InterlockedExchange64(var, (ATOMIC_BASE_TYPE) (val))
-static inline bool
-ATOMIC_CAS(ATOMIC_TYPE *var, ATOMIC_BASE_TYPE *exp, ATOMIC_BASE_TYPE des)
-{
-	ATOMIC_BASE_TYPE old;
-	old = _InterlockedCompareExchange64(var, des, *exp);
-	if (old == *exp)
-		return true;
-	*exp = old;
-	return false;
-}
-#define ATOMIC_CAS(var, exp, des)	ATOMIC_CAS(var, exp, (ATOMIC_BASE_TYPE) (des))
-#define ATOMIC_ADD(var, val)	_InterlockedExchangeAdd64(var, (ATOMIC_BASE_TYPE) \
                (val))
-#define ATOMIC_SUB(var, val)	_InterlockedExchangeAdd64(var, -(ATOMIC_BASE_TYPE) \
                (val))
-#define ATOMIC_INC(var)		_InterlockedIncrement64(var)
-#define ATOMIC_DEC(var)		_InterlockedDecrement64(var)
-#endif
 
 #endif
 
@@ -259,14 +256,16 @@ typedef volatile int ATOMIC_TYPE;
 #define ATOMIC_INIT(var, val)	(*(var) = (val))
 #define ATOMIC_DESTROY(var)	((void) 0)
 
-#define ATOMIC_GET(var)		__atomic_load_n(var, __ATOMIC_SEQ_CST)
+#define ATOMIC_GET(var)			__atomic_load_n(var, __ATOMIC_SEQ_CST)
 #define ATOMIC_SET(var, val)	__atomic_store_n(var, (ATOMIC_BASE_TYPE) (val), \
__ATOMIC_SEQ_CST)  #define ATOMIC_XCG(var, val)	__atomic_exchange_n(var, \
(ATOMIC_BASE_TYPE) (val), __ATOMIC_SEQ_CST)  #define ATOMIC_CAS(var, exp, \
des)	__atomic_compare_exchange_n(var, exp, (ATOMIC_BASE_TYPE) (des), false, \
__ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)  #define ATOMIC_ADD(var, \
val)	__atomic_fetch_add(var, (ATOMIC_BASE_TYPE) (val), __ATOMIC_SEQ_CST)  #define \
ATOMIC_SUB(var, val)	__atomic_fetch_sub(var, (ATOMIC_BASE_TYPE) (val), \
                __ATOMIC_SEQ_CST)
-#define ATOMIC_INC(var)		__atomic_add_fetch(var, 1, __ATOMIC_SEQ_CST)
-#define ATOMIC_DEC(var)		__atomic_sub_fetch(var, 1, __ATOMIC_SEQ_CST)
+#define ATOMIC_INC(var)			__atomic_add_fetch(var, 1, __ATOMIC_SEQ_CST)
+#define ATOMIC_DEC(var)			__atomic_sub_fetch(var, 1, __ATOMIC_SEQ_CST)
+#define ATOMIC_OR(var, val)		__atomic_fetch_or(var, (ATOMIC_BASE_TYPE) (val), \
__ATOMIC_SEQ_CST) +#define ATOMIC_AND(var, val)	__atomic_fetch_and(var, \
(ATOMIC_BASE_TYPE) (val), __ATOMIC_SEQ_CST)  
 typedef void *volatile ATOMIC_PTR_TYPE;
 #define ATOMIC_PTR_INIT(var, val)	(*(var) = (val))
@@ -397,6 +396,30 @@ ATOMIC_DEC(ATOMIC_TYPE *var)
 	return new;
 }
 
+static inline ATOMIC_BASE_TYPE
+ATOMIC_OR(ATOMIC_TYPE *var, ATOMIC_BASE_TYPE val)
+{
+	ATOMIC_BASE_TYPE old;
+	pthread_mutex_lock(&var->lck);
+	old = var->val;
+	var->val |= val;
+	pthread_mutex_unlock(&var->lck);
+	return old;
+}
+#define ATOMIC_OR(var, val)	ATOMIC_OR(var, (ATOMIC_BASE_TYPE) (val))
+
+static inline ATOMIC_BASE_TYPE
+ATOMIC_AND(ATOMIC_TYPE *var, ATOMIC_BASE_TYPE val)
+{
+	ATOMIC_BASE_TYPE old;
+	pthread_mutex_lock(&var->lck);
+	old = var->val;
+	var->val &= val;
+	pthread_mutex_unlock(&var->lck);
+	return old;
+}
+#define ATOMIC_AND(var, val)	ATOMIC_AND(var, (ATOMIC_BASE_TYPE) (val))
+
 typedef struct {
 	void *val;
 	pthread_mutex_t lck;
diff --git a/common/utils/mstring.h b/common/utils/mstring.h
--- a/common/utils/mstring.h
+++ b/common/utils/mstring.h
@@ -29,7 +29,10 @@ strcpy_len(char *restrict dst, const cha
 			if ((dst[i] = src[i]) == 0)
 				return i;
 		}
-		dst[n - 1] = 0;
+		/* for correctness, the decrement isn't needed (just assigning 0
+		 * to dst[n-1] would be sufficient), but to work around a too
+		 * strict GNU C compiler, we do need it */
+		dst[--n] = 0;
 /* in some versions of GCC (at least gcc (Ubuntu 7.5.0-3ubuntu1~18.04)
  * 7.5.0), the error just can't be turned off when using
  * --enable-strict, so we just use the (more) expensive way of getting the
diff --git a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -265,6 +265,7 @@ Description: Integration of MonetDB and 
 Package: libmonetdbe1
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
+ monetdb5-server (= ${source:Version})
 Description: MonetDB as an embedded library
  MonetDB is a database management system that is developed from a
  main-memory perspective with use of a fully decomposed storage model,
@@ -277,7 +278,8 @@ Description: MonetDB as an embedded libr
 Package: libmonetdbe-dev
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends},
- libmonetdbe1, libmonetdb-dev
+ libmonetdbe1 (= ${source:Version}),
+ libmonetdb-dev (= ${source:Version})
 Description: MonetDB development files
  MonetDB is a database management system that is developed from a
  main-memory perspective with use of a fully decomposed storage model,
@@ -287,6 +289,20 @@ Description: MonetDB development files
  This package contains the library and include files to create a
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic