[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