Changeset: cbbc353850a5 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cbbc353850a5
Modified Files:
sql/server/rel_optimizer.c
Branch: setjoins
Log Message:
merged with default
diffs (219 lines):
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,7 +88,7 @@ monetdb_configure_misc()
# Some custom target will need these setting.
include(monetdb-custom-targets)
-if(NOT ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+if(NOT ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" AND NOT
${CPACK_PACKAGING_INSTALL_PREFIX} STREQUAL "/")
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
diff --git a/buildtools/conf/CMakeLists.txt b/buildtools/conf/CMakeLists.txt
--- a/buildtools/conf/CMakeLists.txt
+++ b/buildtools/conf/CMakeLists.txt
@@ -20,7 +20,8 @@ if(DEVELOPMENT AND NOT WIN32)
install(FILES
Maddlog
PERMISSIONS ${PROGRAM_PERMISSIONS_DEFAULT}
- DESTINATION ${CMAKE_INSTALL_BINDIR})
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
+ COMPONENT buildtools)
endif()
# vim: set ts=2:sw=2:et
diff --git a/cmake/monetdb-rpm-packages.cmake b/cmake/monetdb-rpm-packages.cmake
--- a/cmake/monetdb-rpm-packages.cmake
+++ b/cmake/monetdb-rpm-packages.cmake
@@ -24,13 +24,12 @@ set(CPACK_RPM_PACKAGE_RELOCATABLE OFF)
set(CPACK_RPM_monetdb_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
set(CPACK_RPM_monetdb_FILE_NAME
"${CPACK_RPM_monetdb_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
-set(CPACK_RPM_monetdb_PACKAGE_SUGGESTS "%{name}-client%{?_isa} =
%{version}-%{release}")
+#set(CPACK_RPM_monetdb_PACKAGE_SUGGESTS "%{name}-client%{?_isa} =
%{version}-%{release}")
set(CPACK_RPM_monetdbdev_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-devel")
set(CPACK_RPM_monetdbdev_FILE_NAME
"${CPACK_RPM_monetdbdev_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_monetdbdev_PACKAGE_SUMMARY "MonetDB development files")
-set(CPACK_RPM_monetdbdev_PACKAGE_REQUIRES
- "%{name}%{?_isa} = %{version}-%{release}, %{name}-stream-devel%{?_isa} =
%{version}-%{release}")
+set(CPACK_RPM_monetdbdev_PACKAGE_REQUIRES "%{name}%{?_isa} =
%{version}-%{release}, %{name}-stream-devel%{?_isa} = %{version}-%{release}")
set(CPACK_RPM_stream_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-stream")
set(CPACK_RPM_stream_FILE_NAME
"${CPACK_RPM_stream_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
@@ -58,7 +57,7 @@ set(CPACK_RPM_odbc_PACKAGE_REQUIRES "%{n
set(CPACK_RPM_odbc_PACKAGE_REQUIRES_POST "unixODBC")
set(CPACK_RPM_odbc_PACKAGE_REQUIRES_POSTUN "unixODBC")
-set(CPACK_RPM_clienttest_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-client-test")
+set(CPACK_RPM_clienttest_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-client-tests")
set(CPACK_RPM_clienttest_FILE_NAME
"${CPACK_RPM_clienttest_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_clienttest_PACKAGE_SUMMARY "MonetDB Client tests package")
set(CPACK_RPM_clienttest_PACKAGE_REQUIRES "MonetDB5-server%{?_isa} =
%{version}-%{release}, %{name}-client%{?_isa} = %{version}-%{release},
%{name}-client-odbc%{?_isa} = %{version}-%{release},
%{name}-SQL-server5%{?_isa} = %{version}-%{release}, python3-pymonetdb >=
1.0.6")
@@ -72,44 +71,59 @@ set(CPACK_RPM_geom_PACKAGE_REQUIRES "Mon
set(CPACK_RPM_rapi_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-R")
set(CPACK_RPM_rapi_FILE_NAME
"${CPACK_RPM_rapi_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_rapi_PACKAGE_SUMMARY "Integration of MonetDB and R, allowing use
of R from within SQL")
-set(CPACK_RPM_rapi_PACKAGE_REQUIRES "MonetDB-SQL-server5%{?_isa} =
%{version}-%{release}")
+set(CPACK_RPM_rapi_PACKAGE_REQUIRES "%{name}-SQL-server5%{?_isa} =
%{version}-%{release}")
set(CPACK_RPM_pyapi3_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-python3")
set(CPACK_RPM_pyapi3_FILE_NAME
"${CPACK_RPM_pyapi3_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_pyapi3_PACKAGE_SUMMARY "Integration of MonetDB and Python,
allowing use of Python from within SQL")
-set(CPACK_RPM_pyapi3_PACKAGE_REQUIRES "MonetDB-SQL-server5%{?_isa} =
%{version}-%{release}")
+set(CPACK_RPM_pyapi3_PACKAGE_REQUIRES "%{name}-SQL-server5%{?_isa} =
%{version}-%{release}")
set(CPACK_RPM_fits_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-cfitsio")
set(CPACK_RPM_fits_FILE_NAME
"${CPACK_RPM_fits_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_fits_PACKAGE_SUMMARY "MonetDB: Add on module that provides
support for FITS files")
-set(CPACK_RPM_fits_PACKAGE_REQUIRES "MonetDB-SQL-server5%{?_isa} =
%{version}-%{release}")
+set(CPACK_RPM_fits_PACKAGE_REQUIRES "%{name}-SQL-server5%{?_isa} =
%{version}-%{release}")
-set(CPACK_RPM_server_PACKAGE_NAME "MonetDB5-server")
+set(CPACK_RPM_server_PACKAGE_NAME "${CMAKE_PROJECT_NAME}5-server")
set(CPACK_RPM_server_FILE_NAME
"${CPACK_RPM_server_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_server_PACKAGE_SUMMARY "MonetDB - Monet Database Management
System")
set(CPACK_RPM_server_PACKAGE_REQUIRES "%{name}-client%{?_isa} =
%{version}-%{release}")
set(CPACK_RPM_server_PACKAGE_RECOMMENDS "%{name}-SQL-server5%{?_isa} =
%{version}-%{release}")
-set(CPACK_RPM_server_PACKAGE_SUGGESTS "%{name}-client%{?_isa} =
%{version}-%{release}")
+#set(CPACK_RPM_server_PACKAGE_SUGGESTS "%{name}-client%{?_isa} =
%{version}-%{release}")
set(CPACK_RPM_server_PACKAGE_CONFLICTS "python-pymonetdb < 1.0.6")
# TODO: check for rhel
set(CPACK_RPM_server_PACKAGE_REQUIRES_PRE "shadow-utils, systemd")
-set(CPACK_RPM_serverdev_PACKAGE_NAME "MonetDB5-server-devel")
+set(CPACK_RPM_serverdev_PACKAGE_NAME "${CMAKE_PROJECT_NAME}5-server-devel")
set(CPACK_RPM_serverdev_FILE_NAME
"${CPACK_RPM_serverdev_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_serverdev_PACKAGE_SUMMARY "MonetDB development files")
set(CPACK_RPM_serverdev_PACKAGE_REQUIRES "MonetDB5-server%{?_isa} =
%{version}-%{release}, %{name}-devel%{?_isa} = %{version}-%{release}")
+set(CPACK_RPM_embedded_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-embedded")
+set(CPACK_RPM_embedded_FILE_NAME
"${CPACK_RPM_embedded_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
+set(CPACK_RPM_embedded_PACKAGE_SUMMARY "MonetDBe - Monet Embedded Database
Management System")
+set(CPACK_RPM_embedded_PACKAGE_REQUIRES "%{name}-SQL-server5%{?_isa} =
%{version}-%{release}")
+
+set(CPACK_RPM_embeddeddev_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-embedded-devel")
+set(CPACK_RPM_embeddeddev_FILE_NAME
"${CPACK_RPM_embeddeddev_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
+set(CPACK_RPM_embeddeddev_PACKAGE_SUMMARY "MonetDBe development files")
+set(CPACK_RPM_embeddeddev_PACKAGE_REQUIRES "MonetDB-embedded%{?_isa} =
%{version}-%{release}, %{name}-devel%{?_isa} = %{version}-%{release}")
+
+set(CPACK_RPM_mbeddedtest_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-embedded-tests")
+set(CPACK_RPM_mbeddedtest_FILE_NAME
"${CPACK_RPM_mbeddedtest_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
+set(CPACK_RPM_mbeddedtest_PACKAGE_SUMMARY "MonetDBe test files")
+set(CPACK_RPM_mbeddedtest_PACKAGE_REQUIRES "%{name}-embedded%{?_isa} =
%{version}-%{release}")
+
set(CPACK_RPM_sql_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-SQL-server5")
set(CPACK_RPM_sql_FILE_NAME
"${CPACK_RPM_sql_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
set(CPACK_RPM_sql_PACKAGE_SUMMARY "MonetDB5 SQL server modules")
set(CPACK_RPM_sql_PACKAGE_REQUIRES_PRE "MonetDB5-server%{?_isa} =
%{version}-%{release}")
-set(CPACK_RPM_sql_PACKAGE_SUGGESTS "%{name}-client%{?_isa} =
%{version}-%{release}")
+#set(CPACK_RPM_sql_PACKAGE_SUGGESTS "%{name}-client%{?_isa} =
%{version}-%{release}")
# TODO: systemd_requires?
set(CPACK_RPM_testing_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-testing")
set(CPACK_RPM_testing_FILE_NAME
"${CPACK_RPM_testing_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
-set(CPACK_RPM_TESTING_PACKAGE_SUMMARY "MonetDB - Monet Database Management
System")
+set(CPACK_RPM_testing_PACKAGE_SUMMARY "MonetDB - Monet Database Management
System")
set(CPACK_RPM_pytesting_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-testing-python")
set(CPACK_RPM_pytesting_FILE_NAME
"${CPACK_RPM_pytesting_PACKAGE_NAME}-${MONETDB_VERSION}.rpm")
diff --git a/ctest/tools/monetdbe/CMakeLists.txt
b/ctest/tools/monetdbe/CMakeLists.txt
--- a/ctest/tools/monetdbe/CMakeLists.txt
+++ b/ctest/tools/monetdbe/CMakeLists.txt
@@ -101,5 +101,6 @@ endif()
if (TESTING)
install(TARGETS
example_proxy
- DESTINATION ${CMAKE_INSTALL_BINDIR})
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
+ COMPONENT mbeddedtest)
endif()
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -4326,19 +4326,18 @@ gen_push_groupby_down(mvc *sql, sql_rel
gbe = sa_list(sql->sa);
/* push groupby to right, group on join exps */
if (j->exps) for (n = j->exps->h; n; n = n->next) {
- sql_exp *ce = n->data, *e;
+ sql_exp *ce = n->data, *l = ce->l, *r = ce->r, *e;
/* get left/right hand of e_cmp */
assert(ce->type == e_cmp);
- if (ce->flag != cmp_equal)
+ if (ce->flag == cmp_equal && is_alias(l->type) &&
is_alias(r->type) &&
+ (((e = rel_find_exp(cr, l)) && rel_find_exp(cl,
r)) ||
+ ((e = rel_find_exp(cr, r)) && rel_find_exp(cl,
l)))) {
+ e = exp_ref(sql, e);
+ list_append(gbe, e);
+ } else {
return rel;
- e = rel_find_exp(cr, ce->l);
- if (!e)
- e = rel_find_exp(cr, ce->r);
- if (!e)
- return rel;
- e = exp_ref(sql, e);
- list_append(gbe, e);
+ }
}
if (!left)
cr = j->r = rel_groupby(sql, cr, gbe);
diff --git a/sql/test/SQLancer/Tests/sqlancer17.test
b/sql/test/SQLancer/Tests/sqlancer17.test
--- a/sql/test/SQLancer/Tests/sqlancer17.test
+++ b/sql/test/SQLancer/Tests/sqlancer17.test
@@ -502,3 +502,9 @@ query T nosort
VALUES (CASE WHEN 5 = ANY(SELECT -1) THEN 2 END)
----
NULL
+
+query I nosort
+SELECT 1 FROM (SELECT 1, TRUE) vx(vc0, vc2) INNER JOIN (SELECT 1) AS sub0(c0)
+ON vx.vc0 <= ALL(SELECT 1) OR vx.vc2 WHERE 0.5 < ALL(SELECT 0.6 WHERE vx.vc2)
+----
+1
diff --git a/tools/monetdbe/CMakeLists.txt b/tools/monetdbe/CMakeLists.txt
--- a/tools/monetdbe/CMakeLists.txt
+++ b/tools/monetdbe/CMakeLists.txt
@@ -34,7 +34,7 @@ target_include_directories(monetdbe
$<TARGET_PROPERTY:sqlserver,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:sqlcommon,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:sqlstorage,INTERFACE_INCLUDE_DIRECTORIES>
- $<TARGET_PROPERTY:optimizer,INTERFACE_INCLUDE_DIRECTORIES>
+ $<TARGET_PROPERTY:optimizer,INTERFACE_INCLUDE_DIRECTORIES>
${CMAKE_SOURCE_DIR}/clients/mapiclient
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
@@ -73,7 +73,7 @@ if (NOT WIN32)
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/monetdbe.pc
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
- COMPONENT serverdev)
+ COMPONENT embeddeddev)
endif()
install(TARGETS
@@ -83,17 +83,17 @@ install(TARGETS
DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY
DESTINATION ${CMAKE_INSTALL_LIBDIR}
- COMPONENT server
- NAMELINK_COMPONENT serverdev
+ COMPONENT embedded
+ NAMELINK_COMPONENT embeddeddev
ARCHIVE
DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/monetdb
- COMPONENT server
+ COMPONENT embedded
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(EXPORT monetdbeTargets
FILE monetdbeTargets.cmake
NAMESPACE MonetDB::
DESTINATION ${EXPORT_TARGET_PATH}
- COMPONENT serverdev)
+ COMPONENT embeddeddev)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list