Changeset: 6008a2c80dde for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6008a2c80dde
Modified Files:
MonetDB.spec
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
gdk/gdk_select.c
monetdb5/mal/mal_interpreter.c
monetdb5/modules/mal/clients.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_upgrades.c
sql/server/rel_schema.c
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.int128
Branch: default
Log Message:
Merge with Jul2021 branch.
diffs (truncated from 119606 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
@@ -8339,6 +8339,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
@@ -11625,6 +11625,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/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 <[email protected]>
+- A typo that made the SQLSpecialColumns function unusable was fixed.
+
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
program that uses MonetDB as an embeddable library.
+Package: monetdb-embedded-testing
+Architecture: any
+Depends: ${shlibs:Depends},
+ libmonetdbe (= ${source:Version})
+Description: MonetDB embedded testing tools
+ 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 the sample MAPI programs used for testing other
+ MonetDB packages. You probably don't need this, unless you are a
+ developer.
+
Package: monetdb-testing-python
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
diff --git a/debian/libmonetdb-dev.install b/debian/libmonetdb-dev.install
--- a/debian/libmonetdb-dev.install
+++ b/debian/libmonetdb-dev.install
@@ -1,4 +1,5 @@
debian/tmp/usr/lib/x86_64-linux-gnu/libbat.so usr/lib/x86_64-linux-gnu
+debian/tmp/usr/include/monetdb/copybinary.h usr/include/monetdb
debian/tmp/usr/include/monetdb/gdk*.h usr/include/monetdb
debian/tmp/usr/include/monetdb/matomic.h usr/include/monetdb
debian/tmp/usr/include/monetdb/mstring.h usr/include/monetdb
diff --git a/debian/monetdb-embedded-testing.install
b/debian/monetdb-embedded-testing.install
new file mode 100644
--- /dev/null
+++ b/debian/monetdb-embedded-testing.install
@@ -0,0 +1,1 @@
+debian/tmp/usr/bin/example_proxy usr/bin
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -1255,6 +1255,8 @@ BUNappendmulti(BAT *b, const void *value
}
p++;
}
+ if (b->theap)
+ b->theap->dirty |= count > 0;
IMPSdestroy(b); /* no support for inserts in imprints yet */
OIDXdestroy(b);
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -2275,7 +2275,12 @@ decref(bat i, bool logical, bool release
if (lock)
MT_lock_set(&GDKswapLock(i));
if (releaseShare) {
- --BBP_desc(i)->batSharecnt;
+ if (BBP_desc(i)->batSharecnt == 0) {
+ GDKerror("%s: %s does not have any shares.\n", func,
BBPname(i));
+ assert(0);
+ } else {
+ --BBP_desc(i)->batSharecnt;
+ }
if (lock)
MT_lock_unset(&GDKswapLock(i));
return refs;
@@ -3012,7 +3017,7 @@ do_backup(const char *srcdir, const char
/* there is a situation where the move may fail,
* namely if this heap was not supposed to be existing
* before, i.e. after a BATmaterialize on a persistent
- * bat as a workaround, do not complain about move
+ * bat; as a workaround, do not complain about move
* failure if the source file is nonexistent
*/
if (mvret != GDK_SUCCEED && file_exists(h->farmid, srcdir, nme,
ext)) {
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1320,6 +1320,7 @@ logger_switch_bat(BAT *old, BAT *new, co
BBPrename(new->batCacheid, bak) != 0) {
return GDK_FAIL;
}
+ BBPretain(new->batCacheid);
return GDK_SUCCEED;
}
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -42,6 +42,8 @@ virtualize(BAT *bn)
(((bn->ttype == TYPE_void && !is_oid_nil(bn->tseqbase)) ||
bn->ttype == TYPE_oid) &&
bn->tkey && bn->tsorted));
+ assert(BBP_refs(bn->batCacheid) == 1);
+ assert(BBP_lrefs(bn->batCacheid) == 0);
/* since bn has unique and strictly ascending values, we can
* easily check whether the column is dense */
if (bn && bn->ttype == TYPE_oid &&
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -772,10 +772,7 @@ str runMALsequence(Client cntxt, MalBlkP
}
if (ret == MAL_SUCCEED && ii == pci->argc) {
ret = runMALsequence(cntxt, pci->blk,
1, pci->blk->stop, nstk, stk, pci);
- //garbageCollector(cntxt, pci->blk,
nstk, 0);
- for (ii = 0; ii < nstk->stktop; ii++)
- if
(ATOMextern(nstk->stk[ii].vtype))
-
GDKfree(nstk->stk[ii].val.pval);
+ garbageCollector(cntxt, pci->blk, nstk,
0);
arg = q->retc;
for (ii = pci->retc; ii < pci->argc;
ii++,arg++) {
lhs = &nstk->stk[q->argv[arg]];
diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c
--- a/monetdb5/modules/atoms/json.c
+++ b/monetdb5/modules/atoms/json.c
@@ -982,6 +982,10 @@ JSONtoken(JSON *jt, const char *j, const
if (jt->error)
return idx;
+ if (THRhighwater()) {
+ jt->error = createException(MAL, "json.parser", "expression too
complex to parse");
+ return idx;
+ }
skipblancs(j);
switch (*j) {
case '{':
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -998,6 +998,16 @@ bailout:
return msg;
}
+static str
+CLTgetSessionID(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+ (void) mb;
+ (void) stk;
+ (void) pci;
+ *getArgReference_int(stk,pci,0) = cntxt->idx;
+ return MAL_SUCCEED;
+}
+
#include "mel.h"
mel_func clients_init_funcs[] = {
pattern("clients", "setListing", CLTsetListing, false, "Turn on/off echo of
MAL instructions:\n1 - echo input,\n2 - show mal instruction,\n4 - show details
of type resolutoin, \n8 - show binding information.", args(1,2,
arg("",int),arg("flag",int))),
@@ -1050,6 +1060,7 @@ mel_func clients_init_funcs[] = {
pattern("clients", "setPassword", CLTsetPassword, false, "Set the password
for the given user", args(1,3, arg("",void),arg("user",str),arg("pass",str))),
pattern("clients", "checkPermission", CLTcheckPermission, false, "Check
permission for a user, requires hashed password (backendsum)", args(1,3,
arg("",void),arg("usr",str),arg("pw",str))),
pattern("clients", "getUsers", CLTgetUsers, false, "return a BAT with user id
and one with name available in the system", args(2,2,
batarg("",oid),batarg("",str))),
+ pattern("clients", "current_sessionid", CLTgetSessionID, false, "return
current session ID", args(1,1, arg("",int))),
{ .imp=NULL }
};
#include "mal_import.h"
diff --git a/monetdb5/modules/mal/mal_mapi.c b/monetdb5/modules/mal/mal_mapi.c
--- a/monetdb5/modules/mal/mal_mapi.c
+++ b/monetdb5/modules/mal/mal_mapi.c
@@ -1052,6 +1052,9 @@ SERVERdisconnectALL(int *key){
GDKfree(SERVERsessions[i].dbalias);
SERVERsessions[i].dbalias = NULL;
*key = SERVERsessions[i].key;
+ if( SERVERsessions[i].hdl)
+ mapi_close_handle(SERVERsessions[i].hdl);
+ SERVERsessions[i].hdl= NULL;
mapi_disconnect(SERVERsessions[i].mid);
}
@@ -1074,6 +1077,9 @@ SERVERdisconnectWithAlias(int *key, str
GDKfree(SERVERsessions[i].dbalias);
SERVERsessions[i].dbalias = NULL;
*key = SERVERsessions[i].key;
+ if( SERVERsessions[i].hdl)
+
mapi_close_handle(SERVERsessions[i].hdl);
+ SERVERsessions[i].hdl= NULL;
mapi_disconnect(SERVERsessions[i].mid);
break;
}
@@ -1205,6 +1211,9 @@ SERVERdisconnect(void *ret, int *key){
Mapi mid;
(void) ret;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list