Changeset: 9ebca595f8a4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9ebca595f8a4
Modified Files:
        buildtools/selinux/monetdb.te
        geom/BugTracker/Tests/X_crash.SF-1971632.stable.out
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/vaults/bam/Tests/mergetable.stable.out
        sql/benchmarks/nobench/Tests/nobench.stable.out
        sql/benchmarks/ssbm/Tests/check1.stable.out
        sql/benchmarks/ssbm/Tests/load.stable.out
        sql/benchmarks/tpcds/Tests/check0.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/check1.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/check2.stable.out
        sql/benchmarks/tpch/LOCKED/Tests/load.stable.out
        sql/benchmarks/tpch/Tests/check1.stable.out
        sql/benchmarks/tpch/Tests/load.stable.out
        sql/server/rel_optimizer.c
        sql/test/ADT2006/Tests/benesamo.stable.out
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/cross_product.SF-1122802.stable.out
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/multiple_select_on_view.SF-935639.stable.out
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/singleton_view.SF-933573.stable.out
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/slow_counting_1.SF-923709.stable.out
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/slow_counting_2.SF-923709.stable.out
        
sql/test/BugDay_2005-12-19_2.9.3/Tests/delete_cascade.SF-1296395.stable.out
        sql/test/BugTracker-2008/Tests/copy-count.SF-2485215.stable.out
        sql/test/BugTracker-2009/Tests/AVG_ReturnsNoLines.SF-2596084.stable.out
        
sql/test/BugTracker-2009/Tests/double_count_limit_bug.SF-2862146.stable.out
        
sql/test/BugTracker-2009/Tests/parallel_bulk-load.SF-2771052.test.stable.out
        
sql/test/BugTracker-2009/Tests/updating_non-loaded_columns.SF-2864313_KO-1.stable.out
        
sql/test/BugTracker-2009/Tests/updating_non-loaded_columns.SF-2864313_KO-2.stable.out
        
sql/test/BugTracker-2009/Tests/updating_non-loaded_columns.SF-2864313_KO-3.stable.out
        
sql/test/BugTracker-2009/Tests/updating_non-loaded_columns.SF-2864313_OK-0.stable.out
        
sql/test/BugTracker-2009/Tests/updating_non-loaded_columns.SF-2864313_OK-4.stable.out
        sql/test/BugTracker-2010/Tests/predicate_in_select.Bug-2535.stable.out
        sql/test/BugTracker-2011/Tests/delete-large-table.Bug-2882.stable.out
        
sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.stable.out
        
sql/test/BugTracker-2012/Tests/many-columns-truncated.Bug-3161.stable.out
        sql/test/BugTracker-2014/Tests/aggr-with-limit.Bug-3498.stable.out
        sql/test/BugTracker-2015/Tests/convert-to-bit.Bug-3719.stable.out
        sql/test/BugTracker-2015/Tests/copy_into.Bug-3813.stable.out
        sql/test/BugTracker-2015/Tests/long_insert.Bug-3845.stable.out
        
sql/test/BugTracker-2016/Tests/DISTINCT_with_correlated_scalar_subquery_crashes_mserver.Bug-3920.stable.out
        sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
        
sql/test/BugTracker-2016/Tests/nested-subquery-in-select.Bug-6125.stable.out
        
sql/test/BugTracker-2016/Tests/wrong-nonil-property-with-copy-binary-into.Bug-3937.stable.out
        sql/test/BugTracker-2017/Tests/complicated_logic.Bug-105.stable.out
        
sql/test/BugTracker-2017/Tests/crash_on_count_div_count.Bug-6201.stable.out
        
sql/test/BugTracker-2017/Tests/sqlitelogictest-select-in-column.Bug-6490.stable.out
        
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.out
        sql/test/BugTracker-2018/Tests/copy-into-doubled.Bug-6666.stable.out
        sql/test/BugTracker-2018/Tests/truncate_bam_tables.Bug-6543.stable.out
        sql/test/BugTracker-2018/Tests/truncate_empty_table.Bug-6544.stable.out
        sql/test/BugTracker-2018/Tests/truncate_geom_tables.Bug-6543.stable.out
        
sql/test/BugTracker-2018/Tests/truncate_sys_netcdf_tables.Bug-6543.stable.out
        sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.stable.out
        sql/test/BugTracker-2018/Tests/truncate_tmp_tables.Bug-6543.stable.out
        sql/test/BugTracker/Tests/auto_increment.SF-1834820.stable.out
        sql/test/BugTracker/Tests/crash_on_delete.SF-1639108.stable.out
        sql/test/BugTracker/Tests/insert_not_exists.SF-1380287.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        sql/test/BugTracker/Tests/large_prepare_2.SF-1363729.stable.out
        sql/test/BugTracker/Tests/proc_insert_into.SF-1958572.stable.out
        sql/test/BugTracker/Tests/with_only_once.SF-1720293.stable.out
        sql/test/BugTracker/Tests/with_row_number.SF-1898089.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-prologue.stable.out
        sql/test/Skyserver/Tests/Skyserver.stable.out
        sql/test/Skyserver/bugs/Tests/load_dbobjects.stable.out
        sql/test/Skyserver/bugs/Tests/load_objmask.stable.out
        sql/test/Tests/count.stable.out
        sql/test/Tests/median_stdev.stable.out
        sql/test/Tests/rank.stable.out
        sql/test/Tests/truncate-statements.stable.out
        sql/test/Users/Tests/copyinto.stable.out
        sql/test/VOC/Tests/VOC.stable.out
        sql/test/bugs/Tests/distinct_count.stable.out
        sql/test/bugs/Tests/in_or_bug.stable.out
        sql/test/bugs/Tests/insert_delete-bug-sf-904025.stable.out
        sql/test/bugs/Tests/rangejoin_optimize_bug.stable.out
        
sql/test/bugs/Tests/select_constant_from_where_1=1-bug-sf-1019529.stable.out
        sql/test/copy/Tests/format_date.stable.out
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/merge-partitions/Tests/mergepart00.stable.out
        sql/test/merge-partitions/Tests/mergepart01.stable.out
        sql/test/merge-partitions/Tests/mergepart02.stable.out
        sql/test/merge-partitions/Tests/mergepart03.stable.out
        sql/test/merge-partitions/Tests/mergepart04.stable.out
        sql/test/merge-partitions/Tests/mergepart16.stable.out
        sql/test/pg_regress/Tests/random.stable.out
        sql/test/pg_regress/Tests/vacuum.stable.out
        sql/test/pg_regress/Tests/without_oid.stable.out
Branch: default
Log Message:

merged with Apr2019


diffs (truncated from 3776 to 300 lines):

diff --git a/buildtools/selinux/monetdb.te b/buildtools/selinux/monetdb.te
--- a/buildtools/selinux/monetdb.te
+++ b/buildtools/selinux/monetdb.te
@@ -1,4 +1,4 @@
-policy_module(monetdb, 0.4)
+policy_module(monetdb, 0.5)
 # The above line declares that this file is a SELinux policy file. Its
 # name is monetdb, so the file should be saved as monetdb.te
 
@@ -13,7 +13,7 @@ require {
        class fifo_file { getattr read write };
        class file { entrypoint execute getattr manage_file_perms map open read 
};
        class netlink_selinux_socket create_socket_perms;
-       class process { rlimitinh siginh signal transition };
+       class process { rlimitinh siginh signal sigterm sigkill transition };
        class tcp_socket create_stream_socket_perms;
        class udp_socket create_stream_socket_perms;
        class unix_dgram_socket create_socket_perms;
@@ -39,6 +39,9 @@ allow monetdbd_t mserver5_exec_t:file { 
 allow mserver5_t mserver5_exec_t:file { entrypoint read execute };
 type_transition monetdbd_t mserver5_exec_t:process mserver5_t;
 
+# monetdbd must be allowed to kill the server it started
+allow monetdbd_t mserver5_t:process { sigterm sigkill };
+
 # declare a type for the systemd unit file (monetdbd.service)
 type monetdbd_unit_file_t;
 systemd_unit_file(monetdbd_unit_file_t)
@@ -120,6 +123,7 @@ manage_sock_files_pattern(mserver5_t, ms
 allow mserver5_t monetdbd_t:fifo_file { read write getattr };
 allow mserver5_t monetdbd_t:unix_stream_socket { read write getopt shutdown };
 allow mserver5_t var_t:dir { read };
+allow monetdbd_t var_t:dir { read };
 gen_tunable(mserver5_can_read_home, false)
 tunable_policy(`mserver5_can_read_home', `
     userdom_search_user_home_dirs(mserver5_t)
diff --git a/geom/BugTracker/Tests/X_crash.SF-1971632.stable.out 
b/geom/BugTracker/Tests/X_crash.SF-1971632.stable.out
--- a/geom/BugTracker/Tests/X_crash.SF-1971632.stable.out
+++ b/geom/BugTracker/Tests/X_crash.SF-1971632.stable.out
@@ -29,7 +29,7 @@ Ready.
 [ 1    ]
 [ 1    ]
 #select count(*) from geoms;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -683,6 +683,17 @@ exp_bin(backend *be, sql_exp *e, stmt *l
                                as = grp;
                        } else if (left) {
                                as = bin_first_column(be, left);
+                               /* small optimization, ie use candidates 
directly on count(*) */
+                               if (!need_distinct(e) && !ext && 
!need_no_nil(e) && as) { 
+                                       /* skip alias statements */
+                                       while (as->type == st_alias)
+                                               as = as->op1;
+                                       /* use candidate */
+                                       if (as && as->type == st_join && 
as->flag == cmp_project) {
+                                               if (as->op1 && (as->op1->type 
!= st_result || as->op1->op1->type != st_group)) /* exclude a subquery with 
select distinct under the count */
+                                                       as = as->op1;
+                                       }
+                               }
                        } else {
                                /* create dummy single value in a column */
                                as = stmt_atom_lng(be, 0);
diff --git a/sql/backends/monet5/vaults/bam/Tests/mergetable.stable.out 
b/sql/backends/monet5/vaults/bam/Tests/mergetable.stable.out
--- a/sql/backends/monet5/vaults/bam/Tests/mergetable.stable.out
+++ b/sql/backends/monet5/vaults/bam/Tests/mergetable.stable.out
@@ -71,7 +71,7 @@ Ready.
 #      "qual"           STRING            NOT NULL,
 #ALTER TABLE alignments ADD TABLE alignments_1;
 #SELECT COUNT(*) FROM alignments;
-% bam.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 2 # length
diff --git a/sql/benchmarks/nobench/Tests/nobench.stable.out 
b/sql/benchmarks/nobench/Tests/nobench.stable.out
--- a/sql/benchmarks/nobench/Tests/nobench.stable.out
+++ b/sql/benchmarks/nobench/Tests/nobench.stable.out
@@ -57,7 +57,7 @@ Ready.
 #{"nested_obj": {"num": 4, "str": "GBRDCMBQ"}, "dyn2": true, "dyn1": 9, 
"nested_arr": ["especially"], "str2": "GBRDCMBQ", "str1": "GBRDCMBQGE======", 
"sparse_093": "GBRDCMBQGE======", "thousandth": 9, "sparse_090": 
"GBRDCMBQGE======", "sparse_091": "GBRDCMBQGE======", "sparse_092": 
"GBRDCMBQGE======", "num": 9, "bool": true, "sparse_095": "GBRDCMBQGE======", 
"sparse_096": "GBRDCMBQGE======", "sparse_097": "GBRDCMBQGE======", 
"sparse_098": "GBRDCMBQGE======", "sparse_094": "GBRDCMBQGE======", 
"sparse_099": "GBRDCMBQGE======"},
 [ 10   ]
 #select count(*) from bench10;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 2 # length
diff --git a/sql/benchmarks/ssbm/Tests/check1.stable.out 
b/sql/benchmarks/ssbm/Tests/check1.stable.out
--- a/sql/benchmarks/ssbm/Tests/check1.stable.out
+++ b/sql/benchmarks/ssbm/Tests/check1.stable.out
@@ -24,31 +24,31 @@ Ready.
 # 17:32:49 >  
 
 #select count(*) from DWDATE;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 4 # length
 [ 2556 ]
 #select count(*) from SUPPLIER;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 3 # length
 [ 100  ]
 #select count(*) from CUSTOMER;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 3 # length
 [ 300  ]
 #select count(*) from PART;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 4 # length
 [ 2000 ]
 #select count(*) from LINEORDER;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 5 # length
diff --git a/sql/benchmarks/ssbm/Tests/load.stable.out 
b/sql/benchmarks/ssbm/Tests/load.stable.out
--- a/sql/benchmarks/ssbm/Tests/load.stable.out
+++ b/sql/benchmarks/ssbm/Tests/load.stable.out
@@ -36,31 +36,31 @@ Ready.
 [ 60175        ]
 #COMMIT;
 #select count(*) from DWDATE;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 4 # length
 [ 2556 ]
 #select count(*) from SUPPLIER;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 3 # length
 [ 100  ]
 #select count(*) from CUSTOMER;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 3 # length
 [ 300  ]
 #select count(*) from PART;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 4 # length
 [ 2000 ]
 #select count(*) from LINEORDER;
-% sys.L4 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 5 # length
diff --git a/sql/benchmarks/tpcds/Tests/check0.stable.out 
b/sql/benchmarks/tpcds/Tests/check0.stable.out
--- a/sql/benchmarks/tpcds/Tests/check0.stable.out
+++ b/sql/benchmarks/tpcds/Tests/check0.stable.out
@@ -26,151 +26,151 @@ Ready.
 
 #start transaction;
 #select count(*) from dbgen_version;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from customer_address;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from customer_demographics;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from date_dim;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from warehouse;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from ship_mode;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from time_dim;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from reason;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from income_band;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from item;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from store;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from call_center;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from customer;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from web_site;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from store_returns;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from household_demographics;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from web_page;
-% sys.L3 # table_name
+% .L3 # table_name
 % L3 # name
 % bigint # type
 % 1 # length
 [ 0    ]
 #select count(*) from promotion;
-% sys.L3 # table_name
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to