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

Reply via email to