Changeset: fe0346d0a13f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fe0346d0a13f
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_exp.c
sql/server/rel_optimize_proj.c
sql/server/rel_select.c
sql/server/rel_unnest.c
sql/test/miscellaneous/Tests/simple_plans.test
Branch: balanced_union
Log Message:
Merges default
diffs (truncated from 2573 to 300 lines):
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -48,7 +48,12 @@ jobs:
ref: ${{ github.ref }}
- name: install pymonetdb cryptography
- run: pip3 install pymonetdb cryptography
+ run: pip3 install --user --upgrade pymonetdb cryptography
+ if: runner.os != 'macOS'
+
+ - name: install pymonetdb cryptography
+ run: pip3 install --user --break-system-packages --upgrade pymonetdb
cryptography
+ if: runner.os == 'macOS'
- name: make MonetDB on linux
run: |
@@ -83,7 +88,23 @@ jobs:
-DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison \
-DCMAKE_SUMMARY=ON
make install -j3
- if: runner.os == 'macOS'
+ if: runner.os == 'macOS' && runner.arch == 'x64'
+
+ - name: make MonetDB on macos
+ run: |
+ mkdir build
+ cd build
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX=$HOME/MDB \
+ -DPY3INTEGRATION=OFF \
+ -DRINTEGRATION=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DASSERT=OFF \
+ -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
+ -DBISON_EXECUTABLE=/opt/homebrew/opt/bison/bin/bison \
+ -DCMAKE_SUMMARY=ON
+ make install -j3
+ if: runner.os == 'macOS' && runner.arch == 'arm64'
- name: choco packages
run: |
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -825,3 +825,4 @@ dcc8c702e685a4faf21ccf663028d1bc3d1165d1
dcc8c702e685a4faf21ccf663028d1bc3d1165d1 Dec2023_SP1_release
d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_7
d656785f49ee62c19705722aa6b7c171904c64d5 Dec2023_SP2_release
+9a694c41042503a22d6c92aeab5bc4ca1912b62e Dec2023_9
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -91,7 +91,7 @@ Group: Applications/Databases
License: MPL-2.0
URL: https://www.monetdb.org/
BugURL: https://github.com/MonetDB/MonetDB/issues
-Source:
https://www.monetdb.org/downloads/sources/Dec2023-SP2/%{name}-%{version}.tar.bz2
+Source:
https://www.monetdb.org/downloads/sources/Dec2023-SP3/%{name}-%{version}.tar.bz2
# The Fedora packaging document says we need systemd-rpm-macros for
# the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7
@@ -916,6 +916,25 @@ fi
%endif
%changelog
+* Thu May 02 2024 Sjoerd Mullender <[email protected]> - 11.49.9-20240502
+- Rebuilt.
+- GH#7422: Aggregate functions with variadic arguments
+- GH#7472: MonetDB server crashes in `tail_type`
+- GH#7473: MonetDB server crashes in `SQLunionfunc`
+- GH#7478: MonetDB server crashes in `exp_equal`
+- GH#7496: Query on view fails to produce a resultset. Assertion triggered
+ in rel2bin_select.
+- GH#7499: create schema + set schema inside a transaction that is rolled
+ back causes the connection to be aborted
+- GH#7501: files remain in backup causing problems at restart
+- GH#7503: MonetDB server crashes using `WHEN MATCHED THEN UPDATE`
+- GH#7504: possible deadlock when a bat is made persistent when it is also
+ getting unloaded
+- GH#7506: MonetDB Dec2023-SP2 crashes at `rel_value_exp2`
+- GH#7507: BBPextend: ERROR: trying to extend BAT pool beyond the limit
+ (163840000)
+- GH#7508: MonetDB Dec2023-SP2 crashes at `exp_ref`
+
* Tue Apr 09 2024 Sjoerd Mullender <[email protected]> - 11.49.7-20240409
- Rebuilt.
- GH#7469: Crash when using `CONTAINS`
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -1777,6 +1777,11 @@ mapi_new(msettings *settings)
Mapi mid;
static ATOMIC_TYPE index = ATOMIC_VAR_INIT(0);
+ if (!ATOMIC_TAS(&mapi_initialized)) {
+ if (mnstr_init() < 0)
+ return NULL;
+ }
+
mid = malloc(sizeof(*mid));
if (mid == NULL)
return NULL;
@@ -1885,11 +1890,6 @@ mapi_mapiuri(const char *url, const char
{
Mapi mid;
- if (!ATOMIC_TAS(&mapi_initialized)) {
- if (mnstr_init() < 0)
- return NULL;
- }
-
mid = mapi_new(NULL);
if (mid == NULL)
return NULL;
@@ -1944,11 +1944,6 @@ mapi_mapi(const char *host, int port, co
{
Mapi mid;
- if (!ATOMIC_TAS(&mapi_initialized)) {
- if (mnstr_init() < 0)
- return NULL;
- }
-
mid = mapi_new(NULL);
if (mid == NULL)
return NULL;
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -44,19 +44,19 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M
# common/options and common/utils)
set(GDK_VERSION_MAJOR "28")
set(GDK_VERSION_MINOR "1")
-set(GDK_VERSION_PATCH "2")
+set(GDK_VERSION_PATCH "3")
set(GDK_VERSION
"${GDK_VERSION_MAJOR}.${GDK_VERSION_MINOR}.${GDK_VERSION_PATCH}")
# version of the MAPI library (subdirectory clients/mapilib)
set(MAPI_VERSION_MAJOR "26")
set(MAPI_VERSION_MINOR "2")
-set(MAPI_VERSION_PATCH "1")
+set(MAPI_VERSION_PATCH "2")
set(MAPI_VERSION
"${MAPI_VERSION_MAJOR}.${MAPI_VERSION_MINOR}.${MAPI_VERSION_PATCH}")
# version of the MONETDB5 library (subdirectory monetdb5, not including extras
or sql)
set(MONETDB5_VERSION_MAJOR "35")
set(MONETDB5_VERSION_MINOR "0")
-set(MONETDB5_VERSION_PATCH "3")
+set(MONETDB5_VERSION_PATCH "4")
set(MONETDB5_VERSION
"${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_MINOR}.${MONETDB5_VERSION_PATCH}")
# version of the MONETDBE library (subdirectory tools/monetdbe)
@@ -74,5 +74,5 @@ set(STREAM_VERSION "${STREAM_VERSION_MAJ
# version of the SQL library (subdirectory sql)
set(SQL_VERSION_MAJOR "14")
set(SQL_VERSION_MINOR "1")
-set(SQL_VERSION_PATCH "3")
+set(SQL_VERSION_PATCH "4")
set(SQL_VERSION
"${SQL_VERSION_MAJOR}.${SQL_VERSION_MINOR}.${SQL_VERSION_PATCH}")
diff --git a/common/utils/GenerateVersionHeader.cmake
b/common/utils/GenerateVersionHeader.cmake
--- a/common/utils/GenerateVersionHeader.cmake
+++ b/common/utils/GenerateVersionHeader.cmake
@@ -18,34 +18,34 @@ elseif(EXISTS "${DIR}/.hg")
find_package(Hg)
if(HG_FOUND)
message("hg found: ${HG_EXECUTABLE}")
+ execute_process(COMMAND "${HG_EXECUTABLE}" "id" "-i" WORKING_DIRECTORY
"${DIR}" RESULT_VARIABLE HG_RETURN_CODE
+ OUTPUT_VARIABLE HG_OUPUT_RES OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(HG_RETURN_CODE EQUAL 0 AND HG_OUPUT_RES)
+ set(MERCURIAL_ID "${HG_OUPUT_RES}")
+ else()
+ message(WARNING "Failed to find mercurial ID")
+ set(MERCURIAL_ID "Unknown")
+ endif()
else()
message(WARNING "Failed to find mercurial")
set(MERCURIAL_ID "Unknown")
endif()
- execute_process(COMMAND "${HG_EXECUTABLE}" "id" "-i" WORKING_DIRECTORY
"${DIR}" RESULT_VARIABLE HG_RETURN_CODE
- OUTPUT_VARIABLE HG_OUPUT_RES OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(HG_RETURN_CODE EQUAL 0 AND HG_OUPUT_RES)
- set(MERCURIAL_ID "${HG_OUPUT_RES}")
- else()
- message(WARNING "Failed to find mercurial ID")
- set(MERCURIAL_ID "Unknown")
- endif()
elseif(EXISTS "${DIR}/.git")
find_package(Git)
if(GIT_FOUND)
message("git found: ${GIT_EXECUTABLE}")
+ execute_process(COMMAND "${GIT_EXECUTABLE}" "rev-parse" "--short" "HEAD"
WORKING_DIRECTORY "${DIR}"
+ RESULT_VARIABLE GIT_RETURN_CODE OUTPUT_VARIABLE GIT_OUPUT_RES
OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(GIT_RETURN_CODE EQUAL 0 AND GIT_OUPUT_RES)
+ set(MERCURIAL_ID "${GIT_OUPUT_RES}")
+ else()
+ message(WARNING "Failed to find git ID")
+ set(MERCURIAL_ID "Unknown")
+ endif()
else()
message(WARNING "Failed to find git")
set(MERCURIAL_ID "Unknown")
endif()
- execute_process(COMMAND "${GIT_EXECUTABLE}" "rev-parse" "--short" "HEAD"
WORKING_DIRECTORY "${DIR}"
- RESULT_VARIABLE GIT_RETURN_CODE OUTPUT_VARIABLE GIT_OUPUT_RES
OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(GIT_RETURN_CODE EQUAL 0 AND GIT_OUPUT_RES)
- set(MERCURIAL_ID "${GIT_OUPUT_RES}")
- else()
- message(WARNING "Failed to find git ID")
- set(MERCURIAL_ID "Unknown")
- endif()
else()
set(MERCURIAL_ID "Unknown")
endif()
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,25 @@
+monetdb (11.49.9) unstable; urgency=low
+
+ * Rebuilt.
+ * GH#7422: Aggregate functions with variadic arguments
+ * GH#7472: MonetDB server crashes in `tail_type`
+ * GH#7473: MonetDB server crashes in `SQLunionfunc`
+ * GH#7478: MonetDB server crashes in `exp_equal`
+ * GH#7496: Query on view fails to produce a resultset. Assertion triggered
+ in rel2bin_select.
+ * GH#7499: create schema + set schema inside a transaction that is rolled
+ back causes the connection to be aborted
+ * GH#7501: files remain in backup causing problems at restart
+ * GH#7503: MonetDB server crashes using `WHEN MATCHED THEN UPDATE`
+ * GH#7504: possible deadlock when a bat is made persistent when it is also
+ getting unloaded
+ * GH#7506: MonetDB Dec2023-SP2 crashes at `rel_value_exp2`
+ * GH#7507: BBPextend: ERROR: trying to extend BAT pool beyond the limit
+ (163840000)
+ * GH#7508: MonetDB Dec2023-SP2 crashes at `exp_ref`
+
+ -- Sjoerd Mullender <[email protected]> Thu, 02 May 2024 12:35:52 +0200
+
monetdb (11.49.7) unstable; urgency=low
* Rebuilt.
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -2550,6 +2550,7 @@ BATmode(BAT *b, bool transient)
BATiter bi = bat_iterator(b);
bool mustrelease = false;
+ bool mustretain = false;
bat bid = b->batCacheid;
if (transient != bi.transient) {
@@ -2564,16 +2565,20 @@ BATmode(BAT *b, bool transient)
}
}
- /* persistent BATs get a logical reference */
+ /* we need to delay the calls to BBPretain and
+ * BBPrelease until after we have released our reference
+ * to the heaps (i.e. until after bat_iterator_end),
+ * because in either case, BBPfree can be called (either
+ * directly here or in BBPtrim) which waits for the heap
+ * reference to come down. BBPretain calls incref which
+ * waits until the trim that is waiting for us is done,
+ * so that causes deadlock, and BBPrelease can call
+ * BBPfree which causes deadlock with a single thread */
if (!transient) {
- BBPretain(bid);
+ /* persistent BATs get a logical reference */
+ mustretain = true;
} else if (!bi.transient) {
- /* we need to delay the release because if there
- * is no fix and the bat is loaded, BBPrelease
- * can call BBPfree which calls BATfree which
- * may hang while waiting for the heap reference
- * that we have because of the BAT iterator to
- * come down, in other words, deadlock */
+ /* transient BATs loose their logical reference */
mustrelease = true;
}
MT_lock_set(&GDKswapLock(bid));
@@ -2605,8 +2610,10 @@ BATmode(BAT *b, bool transient)
MT_lock_unset(&GDKswapLock(bid));
}
bat_iterator_end(&bi);
- /* release after bat_iterator_end because of refs to heaps */
- if (mustrelease)
+ /* retain/release after bat_iterator_end because of refs to heaps */
+ if (mustretain)
+ BBPretain(bid);
+ else if (mustrelease)
BBPrelease(bid);
return GDK_SUCCEED;
}
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1711,6 +1711,9 @@ BBPjson_upgrade(json_storage_conversion
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]