MonetDB: default - Use correct MAL module.
Changeset: 4a6a877396f4 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4a6a877396f4 Modified Files: geom/monetdb5/geom.mal Branch: default Log Message: Use correct MAL module. diffs (17 lines): diff --git a/geom/monetdb5/geom.mal b/geom/monetdb5/geom.mal --- a/geom/monetdb5/geom.mal +++ b/geom/monetdb5/geom.mal @@ -666,11 +666,11 @@ comment "Returns the number of geometrie command NumRings(w:bat[:wkb], exterior:int) :bat[:int] address wkbNumRings_bat comment "Returns the number of interior rings+exterior on the first polygon of the geometry"; function NumInteriorRings(w:bat[:wkb]) :bat[:int]; - x := geom.NumRings(w, 0); + x := batgeom.NumRings(w, 0); return x; end NumInteriorRings; function NRings(w:bat[:wkb]) :bat[:int]; - x := geom.NumRings(w, 1); + x := batgeom.NumRings(w, 1); return x; end NRings; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Dec2016 - fixed bug 6254, ie make sure we push left out...
Changeset: b6bb4fb088f2 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b6bb4fb088f2 Modified Files: sql/server/rel_optimizer.c sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out Branch: Dec2016 Log Message: fixed bug 6254, ie make sure we push left outer down if allowed. fixed problem in apply renames, only rename on the side which may have a conflict (ie uses the apply relation/expressions). diffs (110 lines): 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 @@ -8149,7 +8149,8 @@ rel_find_conflicts(mvc *sql, sql_rel *re case op_project: if (rel->l) exps_find_conflicts(sql, rel->exps, exps, conflicts); - rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); + if (rel->l && rel_uses_exps(rel->l, exps)) + rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); /* if project produces given names, then we have a conflict */ if (rel->l) exps_mark_conflicts(sql, rel->exps, conflicts, 0); @@ -8173,7 +8174,7 @@ rel_find_conflicts(mvc *sql, sql_rel *re case op_union: case op_inter: - case op_except: + case op_except: exps_find_conflicts(sql, rel->exps, exps, conflicts); rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); if (!is_semi(rel->op)) @@ -8358,7 +8359,7 @@ rel_apply_rewrite(int *changes, mvc *sql return l; } } - if (rel->flag == APPLY_LOJ && (r->op == op_select || is_join(r->op))) { + if (rel->flag == APPLY_LOJ && ((r->op == op_select && exps_uses_exps(r->exps, rel->exps)) || is_join(r->op))) { sql_rel *nr, *ns; nr = rel_project(sql->sa, rel_dup(r), diff --git a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out --- a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out +++ b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out @@ -23,13 +23,68 @@ stdout of test 'crash_correlated_subquer Ready. # SQL catalog created, loading sql scripts once -# 14:28:48 > -# 14:28:48 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-6451" "--port=33692" -# 14:28:48 > +# 10:01:40 > +# 10:01:40 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-24581" "--port=30412" +# 10:01:40 > +#CREATE VIEW sys.view_stats AS +#SELECT s.name AS schema_nm, s.id AS schema_id, t.name AS table_nm, t.id AS table_id, t.system AS is_system_view +#, (SELECT CAST(COUNT(*) as int) FROM sys.columns c WHERE c.table_id = t.id) AS "# columns" +# FROM sys.tables t JOIN sys.schemas s ON t.schema_id = s.id +#WHERE query IS NOT NULL +#; --ORDER BY s.name, t.name; +#SELECT * FROM sys.view_stats; +% .view_stats, .view_stats,.view_stats,.view_stats,.view_stats, .view_stats # table_name +% schema_nm, schema_id, table_nm, table_id, is_system_view, "# columns" # name +% varchar, int,varchar,int,boolean,int # type +% 3, 4, 17, 4, 5, 2 # length +[ "sys", 2000, "tables", 5956, true, 9 ] +[ "sys", 2000, "columns", 5966, true, 10 ] +[ "sys", 2000, "users",5988, true, 3 ] +[ "sys", 2000, "querylog_catalog", 6221, true, 8 ] +[ "sys", 2000, "querylog_calls", 6232, true, 9 ] +[ "sys", 2000, "querylog_history", 6250, true, 16 ] +[ "sys", 2000, "tracelog", 6289, true, 13 ] +[ "sys", 2000, "sessions", 6432, true, 6 ] +[ "sys", 2000, "optimizers", 6499, true, 3 ] +[ "sys", 2000, "environment", 6507, true, 2 ] +[ "sys", 2000, "queue",6557, true, 8 ] +[ "sys", 2000, "rejects", 6587, true, 4 ] +[ "sys", 2000, "geometry_columns", 6914, true, 7 ] +[ "sys", 2000, "storage", 7743, true, 17 ] +[ "sys", 2000, "storagemodel", 7875, true, 13 ] +[ "sys", 2000, "tablestoragemodel",7885, true, 8 ] +[ "sys", 2000, "view_stats", 8548, false, 6 ] +#SELECT * FROM sys.view_stats WHERE is_system_view; +% .view_stats, .view_stats,.view_stats,.view_stats,.view_stats, .view_stats # table_name +% schema_nm, schema_id, table_nm, table_id, is_system_view, "# columns" # name +% varchar, int,varchar,int,boolean,int # type
MonetDB: Dec2016 - Missing semicolons.
Changeset: 4a70be7270f4 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4a70be7270f4 Modified Files: geom/monetdb5/geom.mal Branch: Dec2016 Log Message: Missing semicolons. diffs (21 lines): diff --git a/geom/monetdb5/geom.mal b/geom/monetdb5/geom.mal --- a/geom/monetdb5/geom.mal +++ b/geom/monetdb5/geom.mal @@ -158,7 +158,7 @@ comment "Returns the number of interior function NumInteriorRings(w:wkb) :int; x := NumRings(w, 0); return x; -end NumInteriorRings +end NumInteriorRings; function NRings(w:wkb) :int; x := NumRings(w, 1); return x; @@ -668,7 +668,7 @@ comment "Returns the number of interior function NumInteriorRings(w:bat[:wkb]) :bat[:int]; x := NumRings(w, 0); return x; -end NumInteriorRings +end NumInteriorRings; function NRings(w:bat[:wkb]) :bat[:int]; x := NumRings(w, 1); return x; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - Merge with Dec2016 branch.
Changeset: 9d9a7c26dd06 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9d9a7c26dd06 Added Files: sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out Modified Files: geom/monetdb5/geom.mal sql/server/rel_optimizer.c sql/test/BugTracker-2017/Tests/All sql/test/orderidx/Tests/oidx_all_types.sql sql/test/orderidx/Tests/oidx_all_types.stable.out Branch: default Log Message: Merge with Dec2016 branch. diffs (261 lines): 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 @@ -8149,7 +8149,8 @@ rel_find_conflicts(mvc *sql, sql_rel *re case op_project: if (rel->l) exps_find_conflicts(sql, rel->exps, exps, conflicts); - rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); + if (rel->l && rel_uses_exps(rel->l, exps)) + rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); /* if project produces given names, then we have a conflict */ if (rel->l) exps_mark_conflicts(sql, rel->exps, conflicts, 0); @@ -8173,7 +8174,7 @@ rel_find_conflicts(mvc *sql, sql_rel *re case op_union: case op_inter: - case op_except: + case op_except: exps_find_conflicts(sql, rel->exps, exps, conflicts); rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); if (!is_semi(rel->op)) @@ -8358,7 +8359,7 @@ rel_apply_rewrite(int *changes, mvc *sql return l; } } - if (rel->flag == APPLY_LOJ && (r->op == op_select || is_join(r->op))) { + if (rel->flag == APPLY_LOJ && ((r->op == op_select && exps_uses_exps(r->exps, rel->exps)) || is_join(r->op))) { sql_rel *nr, *ns; nr = rel_project(sql->sa, rel_dup(r), diff --git a/sql/test/BugTracker-2017/Tests/All b/sql/test/BugTracker-2017/Tests/All --- a/sql/test/BugTracker-2017/Tests/All +++ b/sql/test/BugTracker-2017/Tests/All @@ -39,3 +39,4 @@ modulo.Bug-6225 one-plus-nil.Bug-6243 with-alias-bug.6246 crash_after_oidx_on_sys_statistics.Bug-6251 +crash_correlated_subqueries_in_select.Bug-6254 diff --git a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql @@ -0,0 +1,16 @@ +CREATE VIEW sys.view_stats AS +SELECT s.name AS schema_nm, s.id AS schema_id, t.name AS table_nm, t.id AS table_id, t.system AS is_system_view +, (SELECT CAST(COUNT(*) as int) FROM sys.columns c WHERE c.table_id = t.id) AS "# columns" + FROM sys.tables t JOIN sys.schemas s ON t.schema_id = s.id +WHERE query IS NOT NULL +; --ORDER BY s.name, t.name; + +SELECT * FROM sys.view_stats; +-- prints worrying output in console +SELECT * FROM sys.view_stats WHERE is_system_view; +-- crash +SELECT * FROM sys.view_stats WHERE NOT is_system_view; +-- crash + +DROP VIEW sys.view_stats; + diff --git a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err @@ -0,0 +1,36 @@ +stderr of test 'crash_correlated_subqueries_in_select.Bug-6254` in directory 'sql/test/BugTracker-2017` itself: + + +# 14:28:48 > +# 14:28:48 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33692" "--set" "mapi_usock=/var/tmp/mtest-6451/.s.monetdb.33692" "--set" "monet_prompt=" "--forcemito" "--dbpath=/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_test_BugTracker-2017" "--set" "embedded_r=yes" "--set" "embedded_py=true" +# 14:28:48 > + +# builtin opt gdk_dbpath = /export/scratch2/dinther/INSTALL/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 5 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 33692 +# cmdline opt mapi_usock = /var/tmp/mtest-6451/.s.monetdb.33692 +# cmdline opt monet_prompt = +# cmdline opt gdk_dbpath = /export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_t
MonetDB: default - Correctly apply aliasing for LIMIT in subquer...
Changeset: ddfb1de0af03 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ddfb1de0af03 Modified Files: sql/server/rel_rel.c sql/server/rel_select.c Branch: default Log Message: Correctly apply aliasing for LIMIT in subqueries. diffs (35 lines): diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c --- a/sql/server/rel_rel.c +++ b/sql/server/rel_rel.c @@ -274,7 +274,8 @@ rel_bind_column2( mvc *sql, sql_rel *rel is_sort(rel) || is_semi(rel->op) || is_apply(rel->op) || - is_select(rel->op)) { + is_select(rel->op) || + is_topn(rel->op)) { if (rel->l) return rel_bind_column2(sql, rel->l, tname, cname, f); } diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -227,8 +227,16 @@ rel_table_optname(mvc *sql, sql_rel *sq, } } if (!columnrefs && sq->exps) { - node *ne = sq->exps->h; - + node *ne; + if (is_topn(sq->op)) { + // if the current node is a LIMIT statement + // we perform the alias on the underlying projection + assert(sq->l); + assert(is_project(((sql_rel*)sq->l)->op)); + ne = ((sql_rel*)sq->l)->exps->h; + } else { + ne = sq->exps->h; + } for (; ne; ne = ne->next) { sql_exp *e = ne->data; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - Approve actually correct output for subquerie...
Changeset: 5112dd6f6f35 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5112dd6f6f35 Modified Files: sql/test/Tests/subqueries.stable.out Branch: default Log Message: Approve actually correct output for subqueries test now that aliasing works properly. diffs (30 lines): diff --git a/sql/test/Tests/subqueries.stable.out b/sql/test/Tests/subqueries.stable.out --- a/sql/test/Tests/subqueries.stable.out +++ b/sql/test/Tests/subqueries.stable.out @@ -64,7 +64,7 @@ Ready. #INSERT INTO _subqueries VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); [ 10 ] #SELECT * FROM (SELECT * FROM _subqueries LIMIT 5) AS result; -% sys._subqueries # table_name +% sys.result # table_name % i # name % int # type % 1 # length @@ -74,7 +74,7 @@ Ready. [ 3] [ 4] #SELECT * FROM (SELECT * FROM _subqueries ORDER BY i DESC LIMIT 5) AS result; -% sys._subqueries # table_name +% sys.result # table_name % i # name % int # type % 1 # length @@ -84,7 +84,7 @@ Ready. [ 6] [ 5] #SELECT * FROM (SELECT * FROM _subqueries ORDER BY i DESC LIMIT 5 OFFSET 2) AS result; -% sys._subqueries # table_name +% sys.result # table_name % i # name % int # type % 1 # length ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: iot - Merged with default
Changeset: 5933599e4ad6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5933599e4ad6 Added Files: sql/backends/monet5/Tests/pyloader06.stable.out.Windows sql/backends/monet5/Tests/pyloader07.stable.out.Windows sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.SQL.bat sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.SQL.sh sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.stable.err sql/jdbc/tests/Tests/BugResultSetMetaData_Bug_6183.stable.out sql/test/BugTracker-2016/Tests/groupby_on_column_expression.Bug-3832.sql sql/test/BugTracker-2016/Tests/groupby_on_column_expression.Bug-3832.stable.err sql/test/BugTracker-2016/Tests/groupby_on_column_expression.Bug-3832.stable.out sql/test/BugTracker-2017/Tests/cast_boolean_to_string.Bug-6110.sql sql/test/BugTracker-2017/Tests/cast_boolean_to_string.Bug-6110.stable.err sql/test/BugTracker-2017/Tests/cast_boolean_to_string.Bug-6110.stable.out sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.sql sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.stable.err sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.stable.out sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out sql/test/BugTracker-2017/Tests/create_view_order_by.Bug-3465.sql sql/test/BugTracker-2017/Tests/create_view_order_by.Bug-3465.stable.err sql/test/BugTracker-2017/Tests/create_view_order_by.Bug-3465.stable.out sql/test/BugTracker-2017/Tests/insert_self_ref_FK.Bug-6131.sql sql/test/BugTracker-2017/Tests/insert_self_ref_FK.Bug-6131.stable.err sql/test/BugTracker-2017/Tests/insert_self_ref_FK.Bug-6131.stable.out sql/test/BugTracker-2017/Tests/modulo.Bug-6225.sql sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.err sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.out sql/test/BugTracker-2017/Tests/one-plus-nil.Bug-6243.sql sql/test/BugTracker-2017/Tests/one-plus-nil.Bug-6243.stable.err sql/test/BugTracker-2017/Tests/one-plus-nil.Bug-6243.stable.out sql/test/BugTracker-2017/Tests/unknown_col_in_order_by.Bug-3535.sql sql/test/BugTracker-2017/Tests/unknown_col_in_order_by.Bug-3535.stable.err sql/test/BugTracker-2017/Tests/unknown_col_in_order_by.Bug-3535.stable.out sql/test/BugTracker-2017/Tests/with-alias-bug.6246.sql sql/test/BugTracker-2017/Tests/with-alias-bug.6246.stable.err sql/test/BugTracker-2017/Tests/with-alias-bug.6246.stable.out sql/test/orderidx/Tests/oidx_all_types.sql sql/test/orderidx/Tests/oidx_all_types.stable.err sql/test/orderidx/Tests/oidx_all_types.stable.out sql/test/orderidx/Tests/oidx_hge_type.sql sql/test/orderidx/Tests/oidx_hge_type.stable.err sql/test/orderidx/Tests/oidx_hge_type.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/dump.SQL.py.src sql/test/testdb-upgrade-chain-hge/Tests/upgrade.SQL.py.src sql/test/testdb-upgrade-chain/Tests/dump.SQL.py.src sql/test/testdb-upgrade-chain/Tests/upgrade.SQL.py.src sql/test/testdb-upgrade-hge/Tests/dump.SQL.py.src sql/test/testdb-upgrade-hge/Tests/upgrade.SQL.py.src sql/test/testdb-upgrade/Tests/dump.SQL.py.src Removed Files: monetdb5/optimizer/opt_statistics.c monetdb5/optimizer/opt_statistics.h sql/test/testdb-upgrade-chain-hge/Tests/dump.SQL.py sql/test/testdb-upgrade-chain-hge/Tests/upgrade.SQL.py sql/test/testdb-upgrade-chain/Tests/dump.SQL.py sql/test/testdb-upgrade-chain/Tests/upgrade.SQL.py sql/test/testdb-upgrade-hge/Tests/dump.SQL.py sql/test/testdb-upgrade-hge/Tests/upgrade.SQL.py sql/test/testdb-upgrade/Tests/dump.SQL.py Modified Files: .hgtags MonetDB.spec NT/installer32/MonetDB-ODBC-Installer.vdproj NT/installer32/MonetDB5-Geom-Module.vdproj NT/installer32/MonetDB5-SQL-Installer.vdproj NT/installer64/MonetDB-ODBC-Installer.vdproj NT/installer64/MonetDB5-Geom-Module.vdproj NT/installer64/MonetDB5-SQL-Installer.vdproj NT/monetdb_config.h.in NT/rules.msc clients/R/Tests/All clients/R/Tests/copy_into_fwf.stable.out clients/R/Tests/dbapply.stable.out clients/R/Tests/dbi.R clients/R/Tests/dbi.stable.out clients/R/Tests/deps-test.R clients/R/Tests/dplyr-flights.R clients/R/Tests/dplyr-flights.stable.out clients/R/Tests/dplyr.R clients/R/Tests/dplyr.stable.err clients/R/Tests/dplyr.sta
MonetDB: data-vaults - Merge with default
Changeset: 2b675ba267c7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2b675ba267c7 Added Files: sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.sql sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.stable.err sql/test/BugTracker-2017/Tests/crash_after_oidx_on_sys_statistics.Bug-6251.stable.out sql/test/BugTracker-2017/Tests/one-plus-nil.Bug-6243.sql sql/test/BugTracker-2017/Tests/one-plus-nil.Bug-6243.stable.err sql/test/BugTracker-2017/Tests/one-plus-nil.Bug-6243.stable.out sql/test/BugTracker-2017/Tests/with-alias-bug.6246.sql sql/test/BugTracker-2017/Tests/with-alias-bug.6246.stable.err sql/test/BugTracker-2017/Tests/with-alias-bug.6246.stable.out sql/test/orderidx/Tests/oidx_all_types.sql sql/test/orderidx/Tests/oidx_all_types.stable.err sql/test/orderidx/Tests/oidx_all_types.stable.out sql/test/orderidx/Tests/oidx_hge_type.sql sql/test/orderidx/Tests/oidx_hge_type.stable.err sql/test/orderidx/Tests/oidx_hge_type.stable.out.int128 Modified Files: .hgtags MonetDB.spec clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out debian/changelog gdk/gdk_calc.c gdk/gdk_heap.c gdk/gdk_logger.c gdk/gdk_utils.c geom/monetdb5/geom.c geom/monetdb5/geom.mal geom/monetdb5/geom_upgrade.c libversions monetdb5/extras/rapi/converters.c.h monetdb5/extras/rapi/rapi.c monetdb5/mal/mal_authorize.c monetdb5/mal/mal_builder.c monetdb5/mal/mal_client.c monetdb5/mal/mal_dataflow.c monetdb5/mal/mal_errors.h monetdb5/mal/mal_exception.c monetdb5/mal/mal_import.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_session.c monetdb5/modules/atoms/blob.c monetdb5/modules/atoms/blob.mal monetdb5/modules/atoms/mtime.c monetdb5/modules/atoms/url.c monetdb5/modules/atoms/uuid.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/batstr.c monetdb5/modules/kernel/status.c monetdb5/modules/mal/batExtensions.c monetdb5/modules/mal/bbp.c monetdb5/modules/mal/clients.c monetdb5/modules/mal/inspect.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/mat.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/oltp.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/querylog.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/sysmon.c monetdb5/modules/mal/tablet.c monetdb5/modules/mal/tokenizer.c monetdb5/modules/mal/txtsim.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_macro.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_mitosis.c monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_support.c monetdb5/optimizer/opt_wrapper.c monetdb5/scheduler/srvpool.c sql/backends/monet5/LSST/lsst.c sql/backends/monet5/Tests/pyloader04.stable.err sql/backends/monet5/UDF/cudf/udf.c sql/backends/monet5/UDF/pyapi/connection.c sql/backends/monet5/UDF/pyapi/connection.h sql/backends/monet5/UDF/pyapi/conversion.c sql/backends/monet5/UDF/pyapi/conversion.h sql/backends/monet5/UDF/pyapi/convert_loops.h sql/backends/monet5/UDF/pyapi/emit.c sql/backends/monet5/UDF/pyapi/emit.h sql/backends/monet5/UDF/pyapi/formatinput.c sql/backends/monet5/UDF/pyapi/formatinput.h sql/backends/monet5/UDF/pyapi/pyapi.c sql/backends/monet5/UDF/pyapi/pyapi.h sql/backends/monet5/UDF/pyapi/pyheader.h sql/backends/monet5/UDF/pyapi/pyloader.c sql/backends/monet5/UDF/pyapi/pytypes.c sql/backends/monet5/UDF/pyapi/pytypes.h sql/backends/monet5/UDF/pyapi/type_conversion.c sql/backends/monet5/UDF/pyapi/type_conversion.h sql/backends/monet5/UDF/pyapi/undef.h sql/backends/monet5/UDF/pyapi/unicode.c sql/backends/monet5/UDF/pyapi/unicode.h sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_optimizer.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/sql_user.c sql/backends/monet5/vaults/bam/bam_globals.h sql/backends/monet5/vaults/bam/bam_loader.c sql/backends/monet5/vaults/fits/fits.c sql/backends/monet5/vaults/lidar/lidar.c sql/benchmarks/tpc
MonetDB: data-vaults - Merge with default
Changeset: ab1c7a9bdeb7 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ab1c7a9bdeb7 Added Files: sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out Modified Files: geom/monetdb5/geom.mal sql/server/rel_optimizer.c sql/test/BugTracker-2017/Tests/All sql/test/orderidx/Tests/oidx_all_types.sql sql/test/orderidx/Tests/oidx_all_types.stable.out Branch: data-vaults Log Message: Merge with default diffs (278 lines): diff --git a/geom/monetdb5/geom.mal b/geom/monetdb5/geom.mal --- a/geom/monetdb5/geom.mal +++ b/geom/monetdb5/geom.mal @@ -666,11 +666,11 @@ comment "Returns the number of geometrie command NumRings(w:bat[:wkb], exterior:int) :bat[:int] address wkbNumRings_bat comment "Returns the number of interior rings+exterior on the first polygon of the geometry"; function NumInteriorRings(w:bat[:wkb]) :bat[:int]; - x := geom.NumRings(w, 0); + x := batgeom.NumRings(w, 0); return x; end NumInteriorRings; function NRings(w:bat[:wkb]) :bat[:int]; - x := geom.NumRings(w, 1); + x := batgeom.NumRings(w, 1); return x; end NRings; 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 @@ -8149,7 +8149,8 @@ rel_find_conflicts(mvc *sql, sql_rel *re case op_project: if (rel->l) exps_find_conflicts(sql, rel->exps, exps, conflicts); - rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); + if (rel->l && rel_uses_exps(rel->l, exps)) + rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); /* if project produces given names, then we have a conflict */ if (rel->l) exps_mark_conflicts(sql, rel->exps, conflicts, 0); @@ -8173,7 +8174,7 @@ rel_find_conflicts(mvc *sql, sql_rel *re case op_union: case op_inter: - case op_except: + case op_except: exps_find_conflicts(sql, rel->exps, exps, conflicts); rel->l = rel_find_conflicts(sql, rel->l, exps, conflicts); if (!is_semi(rel->op)) @@ -8358,7 +8359,7 @@ rel_apply_rewrite(int *changes, mvc *sql return l; } } - if (rel->flag == APPLY_LOJ && (r->op == op_select || is_join(r->op))) { + if (rel->flag == APPLY_LOJ && ((r->op == op_select && exps_uses_exps(r->exps, rel->exps)) || is_join(r->op))) { sql_rel *nr, *ns; nr = rel_project(sql->sa, rel_dup(r), diff --git a/sql/test/BugTracker-2017/Tests/All b/sql/test/BugTracker-2017/Tests/All --- a/sql/test/BugTracker-2017/Tests/All +++ b/sql/test/BugTracker-2017/Tests/All @@ -39,3 +39,4 @@ modulo.Bug-6225 one-plus-nil.Bug-6243 with-alias-bug.6246 crash_after_oidx_on_sys_statistics.Bug-6251 +crash_correlated_subqueries_in_select.Bug-6254 diff --git a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.sql @@ -0,0 +1,16 @@ +CREATE VIEW sys.view_stats AS +SELECT s.name AS schema_nm, s.id AS schema_id, t.name AS table_nm, t.id AS table_id, t.system AS is_system_view +, (SELECT CAST(COUNT(*) as int) FROM sys.columns c WHERE c.table_id = t.id) AS "# columns" + FROM sys.tables t JOIN sys.schemas s ON t.schema_id = s.id +WHERE query IS NOT NULL +; --ORDER BY s.name, t.name; + +SELECT * FROM sys.view_stats; +-- prints worrying output in console +SELECT * FROM sys.view_stats WHERE is_system_view; +-- crash +SELECT * FROM sys.view_stats WHERE NOT is_system_view; +-- crash + +DROP VIEW sys.view_stats; + diff --git a/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.err @@ -0,0 +1,36 @@ +stderr of test 'crash_correlated_subqueries_in_select.Bug-6254` in directory 'sql/test/BugTracker-2017` itself: + + +# 14:28:48 > +# 14:28:48 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=33692" "--set" "mapi_usock=/var/tmp/mtest-6451/.s.monetdb.33692" "--set" "monet_prompt=" "--forcemito" "--dbpath=/export/scratch2/dinther/INSTALL/var/MonetDB/mTests_sql_test_BugTracker-2017" "--set" "embedded_r=yes" "--set" "embedded_py=true" +# 14:28:48 > + +# builtin opt gdk_db
MonetDB: default - add some protection against missing statements
Changeset: aa675cc447d9 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aa675cc447d9 Modified Files: monetdb5/optimizer/opt_pushselect.c Branch: default Log Message: add some protection against missing statements diffs (12 lines): diff --git a/monetdb5/optimizer/opt_pushselect.c b/monetdb5/optimizer/opt_pushselect.c --- a/monetdb5/optimizer/opt_pushselect.c +++ b/monetdb5/optimizer/opt_pushselect.c @@ -481,7 +481,7 @@ OPTpushselectImplementation(Client cntxt if (isSlice(p) && p->retc == 1) { int var = getArg(p, 1); InstrPtr q = old[vars[var]]; - if (getModuleId(q) == sqlRef && getFunctionId(q) == projectdeltaRef) { + if (q && getModuleId(q) == sqlRef && getFunctionId(q) == projectdeltaRef) { InstrPtr r = copyInstruction(p); InstrPtr s = copyInstruction(q); ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: default - More defensive code.
Changeset: 813ff78d8a15 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=813ff78d8a15 Modified Files: monetdb5/optimizer/opt_pushselect.c Branch: default Log Message: More defensive code. diffs (17 lines): diff --git a/monetdb5/optimizer/opt_pushselect.c b/monetdb5/optimizer/opt_pushselect.c --- a/monetdb5/optimizer/opt_pushselect.c +++ b/monetdb5/optimizer/opt_pushselect.c @@ -545,11 +545,11 @@ OPTpushselectImplementation(Client cntxt int var = getArg(p, 1); InstrPtr q = old[vars[var]]; - if (q->token == ASSIGNsymbol) { + if (q && q->token == ASSIGNsymbol) { var = getArg(q, 1); q = old[vars[var]]; } - if (getModuleId(q) == sqlRef && getFunctionId(q) == deltaRef) { + if (q && getModuleId(q) == sqlRef && getFunctionId(q) == deltaRef) { InstrPtr r = copyInstruction(p); InstrPtr s = copyInstruction(p); InstrPtr t = copyInstruction(p); ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list