MonetDB: jitudf - Smaller decimals in tests for non-hge systems.
Changeset: 6ebfa942608f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6ebfa942608f Modified Files: sql/backends/monet5/UDF/capi/Tests/capi11.sql Branch: jitudf Log Message: Smaller decimals in tests for non-hge systems. diffs (12 lines): diff --git a/sql/backends/monet5/UDF/capi/Tests/capi11.sql b/sql/backends/monet5/UDF/capi/Tests/capi11.sql --- a/sql/backends/monet5/UDF/capi/Tests/capi11.sql +++ b/sql/backends/monet5/UDF/capi/Tests/capi11.sql @@ -21,7 +21,7 @@ CREATE FUNCTION capi11(inp DECIMAL) RETU } }; -CREATE TABLE decimals(d DECIMAL(20,3)); +CREATE TABLE decimals(d DECIMAL(18,3)); INSERT INTO decimals VALUES (10.3), (10.5), (NULL), (10.7); SELECT capi11(d) FROM decimals; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: jitudf - Make non-deterministic tests deterministic.
Changeset: f277a120089d for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f277a120089d Modified Files: sql/backends/monet5/UDF/capi/Tests/capi03.sql sql/backends/monet5/UDF/capi/Tests/capi03.stable.err sql/backends/monet5/UDF/capi/Tests/capi03.stable.out sql/backends/monet5/UDF/capi/Tests/capi04.sql sql/backends/monet5/UDF/capi/Tests/capi04.stable.err sql/backends/monet5/UDF/capi/Tests/capi10.sql sql/backends/monet5/UDF/capi/Tests/capi10.stable.err Branch: jitudf Log Message: Make non-deterministic tests deterministic. diffs (152 lines): diff --git a/sql/backends/monet5/UDF/capi/Tests/capi03.sql b/sql/backends/monet5/UDF/capi/Tests/capi03.sql --- a/sql/backends/monet5/UDF/capi/Tests/capi03.sql +++ b/sql/backends/monet5/UDF/capi/Tests/capi03.sql @@ -50,37 +50,3 @@ INSERT INTO integers VALUES (1), (2), (3 SELECT capi03(i) FROM integers; ROLLBACK; - -START TRANSACTION; - -# Modify input data -CREATE FUNCTION capi03(inp INTEGER) RETURNS INTEGER LANGUAGE C { -size_t i; -inp.data[0] = 10; -result->initialize(result, inp.count); -for(i = 0; i < inp.count; i++) { -result->data[i] = inp.data[i] * 2; -} -}; - -CREATE TABLE integers(i INTEGER); -INSERT INTO integers VALUES (1), (2), (3), (4), (5); - -SELECT capi03(i) FROM integers; - -ROLLBACK; - -START TRANSACTION; - -# Trigger a segfault -CREATE FUNCTION capi03(inp INTEGER) RETURNS INTEGER LANGUAGE C { -int x = *((int*)NULL); -}; - -CREATE TABLE integers(i INTEGER); -INSERT INTO integers VALUES (1), (2), (3), (4), (5); - -SELECT capi03(i) FROM integers; - -ROLLBACK; - diff --git a/sql/backends/monet5/UDF/capi/Tests/capi03.stable.err b/sql/backends/monet5/UDF/capi/Tests/capi03.stable.err --- a/sql/backends/monet5/UDF/capi/Tests/capi03.stable.err +++ b/sql/backends/monet5/UDF/capi/Tests/capi03.stable.err @@ -36,12 +36,6 @@ ERROR = !No data returned. MAPI = (monetdb) /var/tmp/mtest-2836/.s.monetdb.35915 QUERY = SELECT capi03(i) FROM integers; ERROR = !Something went wrong! -MAPI = (monetdb) /var/tmp/mtest-25067/.s.monetdb.39212 -QUERY = SELECT capi03(i) FROM integers; -ERROR = !Attempting to write to the input or triggered a segfault/bus error -MAPI = (monetdb) /var/tmp/mtest-25067/.s.monetdb.39212 -QUERY = SELECT capi03(i) FROM integers; -ERROR = !Attempting to write to the input or triggered a segfault/bus error # 17:24:55 > # 17:24:55 > "Done." diff --git a/sql/backends/monet5/UDF/capi/Tests/capi03.stable.out b/sql/backends/monet5/UDF/capi/Tests/capi03.stable.out --- a/sql/backends/monet5/UDF/capi/Tests/capi03.stable.out +++ b/sql/backends/monet5/UDF/capi/Tests/capi03.stable.out @@ -87,26 +87,6 @@ Ready. #INSERT INTO integers VALUES (1), (2), (3), (4), (5); [ 5] #ROLLBACK; -#START TRANSACTION; -#CREATE FUNCTION capi03(inp INTEGER) RETURNS INTEGER LANGUAGE C { -# inp.data[0] = 10; -# result->initialize(result, inp.count); -# for(size_t i = 0; i < inp.count; i++) { -# result->data[i] = inp.data[i] * 2; -# } -#}; -#CREATE TABLE integers(i INTEGER); -#INSERT INTO integers VALUES (1), (2), (3), (4), (5); -[ 5] -#ROLLBACK; -#START TRANSACTION; -#CREATE FUNCTION capi03(inp INTEGER) RETURNS INTEGER LANGUAGE C { -# int x = *((int*)NULL); -#}; -#CREATE TABLE integers(i INTEGER); -#INSERT INTO integers VALUES (1), (2), (3), (4), (5); -[ 5] -#ROLLBACK; # 17:24:55 > # 17:24:55 > "Done." diff --git a/sql/backends/monet5/UDF/capi/Tests/capi04.sql b/sql/backends/monet5/UDF/capi/Tests/capi04.sql --- a/sql/backends/monet5/UDF/capi/Tests/capi04.sql +++ b/sql/backends/monet5/UDF/capi/Tests/capi04.sql @@ -25,16 +25,6 @@ SELECT capi04(i) FROM strings; DROP FUNCTION capi04; -# try to modify one of the input strings -CREATE FUNCTION capi04(inp STRING) RETURNS STRING LANGUAGE C { -size_t i; -result->initialize(result, inp.count); -for(i = 0; i < inp.count; i++) { -result->data[i][0] = 'h'; -} -}; - -SELECT capi04(i) FROM strings; ROLLBACK; START TRANSACTION; diff --git a/sql/backends/monet5/UDF/capi/Tests/capi04.stable.err b/sql/backends/monet5/UDF/capi/Tests/capi04.stable.err --- a/sql/backends/monet5/UDF/capi/Tests/capi04.stable.err +++ b/sql/backends/monet5/UDF/capi/Tests/capi04.stable.err @@ -27,9 +27,6 @@ stderr of test 'capi04` in directory 'sq # 15:50:30 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-20003" "--port=32751" # 15:50:30 > -MAPI = (monetdb) /var/tmp/mtest-20003/.s.monetdb.32751 -QUERY = SELECT capi04(i) FROM strings; -ERROR = !Attempting to write to the input or triggered a segfault/bus error # 15:50:31 > # 15:50:31 > "Done." diff --git a/sql/backends/monet5/UDF/capi/Tests/capi10.sql b/sql/backends/monet5/UDF/capi/Tests/capi10.sql --- a/sql/backends/monet5/UDF/capi/Tests/capi10.sql +++ b/sql/backends/monet5/UDF/capi/Tests/capi10.sql @@ -31,15 +31,4 @@ SELECT capi10(i) FROM blobs; DROP FUNCTION capi10;
MonetDB: jitudf - Merge with default.
Changeset: b375ba69e94c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b375ba69e94c Added Files: sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.err.Windows sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.out.Windows sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.sql sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.sql sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.err sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.out sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.sql sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.err sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.out sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.err sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.out Modified Files: NT/mkgeomwxs.py NT/mkodbcwxs.py NT/mksqlwxs.py buildtools/conf/monetdb.ico clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/dump.c clients/mapiclient/mclient.c clients/mapiclient/mhelp.c clients/mapiclient/mhelp.h clients/mapiclient/tomograph.c clients/odbc/driver/SQLColumnPrivileges.c clients/odbc/driver/SQLColumns.c clients/odbc/driver/SQLExecute.c clients/odbc/driver/SQLSpecialColumns.c gdk/gdk_bbp.c gdk/gdk_join.c gdk/gdk_logger.c gdk/gdk_private.h gdk/gdk_search.c gdk/gdk_select.c geom/monetdb5/geom_upgrade.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_parser.c monetdb5/modules/mal/00_language_hge.mal monetdb5/modules/mal/manifold.c monetdb5/modules/mal/manifold.h monetdb5/optimizer/Tests/inline06.stable.out monetdb5/optimizer/opt_costModel.c monetdb5/optimizer/opt_dataflow.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_multiplex.c monetdb5/optimizer/opt_support.c sql/backends/monet5/Tests/pyapi19.stable.err sql/backends/monet5/Tests/pyapi19.stable.out sql/backends/monet5/Tests/pyapi25.stable.err sql/backends/monet5/Tests/pyapi25.stable.err.Windows sql/backends/monet5/Tests/pyapi25.stable.out sql/backends/monet5/Tests/pyapi29.stable.err sql/backends/monet5/Tests/pyapi29.stable.out sql/backends/monet5/UDF/pyapi/connection.c sql/backends/monet5/UDF/pyapi/pyapi.c sql/backends/monet5/UDF/pyapi/pyapi.mal sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.stable.err sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.stable.out sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.stable.err sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.stable.out sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.stable.err sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.stable.out sql/backends/monet5/UDF/pyapi3/pyapi3.mal sql/backends/monet5/sql_assert.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_statistics.c sql/backends/monet5/sql_upgrades.c sql/common/sql_types.c sql/storage/store.c sql/test/BugTracker-2010/Tests/count-and-not.Bug-2663.stable.out sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out sql/test/BugTracker-2010/Tests/not-in-union-except-union.Bug-2577.stable.out sql/test/BugTracker-2017/Tests/All sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.sql sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128 sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/check.stable.out sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128 sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/check.stable.out sql/test/emptydb-up
MonetDB: jitudf - Approve exports.
Changeset: 55bdba4efc8f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=55bdba4efc8f Modified Files: clients/Tests/exports.stable.out Branch: jitudf Log Message: Approve exports. diffs (37 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1446,6 +1446,8 @@ str MTIMEepilogue(void *ret); str MTIMEepoch2int(int *res, const timestamp *ts); str MTIMEepoch2lng(lng *res, const timestamp *ts); str MTIMEepoch_bulk(bat *ret, bat *bid); +void MTIMEfromdate(date n, int *d, int *m, int *y); +void MTIMEfromtime(daytime n, int *hour, int *min, int *sec, int *msec); str MTIMElocal_timezone(lng *res); str MTIMEmonth_from_str(int *ret, const char *const *month); str MTIMEmonth_to_str(str *ret, const int *month); @@ -1514,6 +1516,8 @@ str MTIMEtimestamp_to_str(str *s, const str MTIMEtimestamp_year(int *ret, const timestamp *t); str MTIMEtimestamplng(timestamp *ret, const lng *sec); str MTIMEtimezone(tzone *z, const char *const *name); +date MTIMEtodate(int day, int month, int year); +daytime MTIMEtotime(int hour, int min, int sec, int msec); str MTIMEtzone_create(tzone *ret, const int *minutes); str MTIMEtzone_create_dst(tzone *ret, const int *minutes, const rule *start, const rule *end); str MTIMEtzone_create_lng(tzone *ret, const lng *minutes); @@ -1954,6 +1958,7 @@ void batBeforeCall(ValPtr v, ValPtr bak) str batRef; str batalgebraRef; str batcalcRef; +str batcapiRef; str batmalRef; str batmmathRef; str batmtimeRef; @@ -1982,6 +1987,7 @@ str bstream_read_wrapwrap(int *res, Bstr str calcRef; str callMAL(Client cntxt, MalBlkPtr mb, MalStkPtr *glb, ValPtr argv[], char debug); int callString(Client c, str s, int listing); +str capiRef; str catalogRef; str catchKernelException(Client cntxt, str ret); void chkDeclarations(stream *out, MalBlkPtr mb); ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: jitudf - Solaris fix.
Changeset: b6d92a2fee99 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b6d92a2fee99 Modified Files: sql/backends/monet5/UDF/capi/capi.c Branch: jitudf Log Message: Solaris fix. diffs (12 lines): diff --git a/sql/backends/monet5/UDF/capi/capi.c b/sql/backends/monet5/UDF/capi/capi.c --- a/sql/backends/monet5/UDF/capi/capi.c +++ b/sql/backends/monet5/UDF/capi/capi.c @@ -401,7 +401,7 @@ static str CUDFeval(Client cntxt, MalBlk size_t volatile input_count = 0; void ** volatile outputs = NULL; size_t volatile output_count = 0; - BAT **input_bats = NULL; + BAT ** volatile input_bats = NULL; mprotected_region *regions = NULL, *region_iter = NULL; lng initial_output_count = -1; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: jitudf - Fix memory leak in non-grouped aggregate.
Changeset: 7412c6606722 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7412c6606722 Modified Files: sql/backends/monet5/UDF/capi/capi.c Branch: jitudf Log Message: Fix memory leak in non-grouped aggregate. diffs (35 lines): diff --git a/sql/backends/monet5/UDF/capi/capi.c b/sql/backends/monet5/UDF/capi/capi.c --- a/sql/backends/monet5/UDF/capi/capi.c +++ b/sql/backends/monet5/UDF/capi/capi.c @@ -246,6 +246,15 @@ static void *wrapped_GDK_malloc_nojump(s return add_allocated_region(ptr); } +static void *wrapped_GDK_zalloc_nojump(size_t size) +{ + void *ptr = GDKzalloc(size + sizeof(allocated_region)); + if (!ptr) { + return NULL; + } + return add_allocated_region(ptr); +} + #define GENERATE_BASE_HEADERS(type, tpename) \ static int tpename##_is_null(type value); \ static void tpename##_initialize(struct cudf_data_struct_##tpename *self, \ @@ -1132,9 +1141,13 @@ static str CUDFeval(Client cntxt, MalBlk if (non_grouped_aggregate) { GENERATE_BAT_INPUT_BASE(oid); bat_data->count = input_size; + bat_data->null_value = oid_nil; bat_data->data = - GDKzalloc(bat_data->count * sizeof(bat_data->null_value)); - bat_data->null_value = oid_nil; + wrapped_GDK_zalloc_nojump(bat_data->count * sizeof(bat_data->null_value)); + if (!bat_data->data) { + msg = createException(MAL, "cudf.eval", MAL_MALLOC_FAIL); + goto wrapup; + } } argnode = sqlfun ? sqlfun->res->h : NULL; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: data-vaults - Merge with default
Changeset: bd366cf395c6 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bd366cf395c6 Added Files: sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.err.Windows sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.out.Windows sql/test/BugTracker-2017/Tests/coalesc-limit.Bug-6316.stable.err sql/test/BugTracker-2017/Tests/coalesc-limit.Bug-6316.stable.out sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.sql sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.sql sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.sql sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.err sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.out sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.sql sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.err sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.out sql/test/BugTracker-2017/Tests/exist-bigint-missing.Bug-6315.stable.err sql/test/BugTracker-2017/Tests/exist-bigint-missing.Bug-6315.stable.out sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.err sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.out sql/test/BugTracker-2017/Tests/lateral02.Bug-6314.stable.err sql/test/BugTracker-2017/Tests/lateral02.Bug-6314.stable.out sql/test/BugTracker-2017/Tests/limit.bug-6322.sql sql/test/BugTracker-2017/Tests/limit_clause.Bug-6312.stable.err sql/test/BugTracker-2017/Tests/limit_clause.Bug-6312.stable.out sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.stable.err sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.stable.out sql/test/BugTracker-2017/Tests/simplify_math.Bug-6324.sql sql/test/BugTracker-2017/Tests/simplify_math.Bug-6324.stable.err sql/test/BugTracker-2017/Tests/simplify_math.Bug-6324.stable.out sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.sql sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.err sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.out sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.out sql/test/Tests/ifexists-views.sql sql/test/Tests/ifexists-views.stable.err sql/test/Tests/ifexists-views.stable.out sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.err sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.out Modified Files: .hgtags MonetDB.spec NT/mkgeomwxs.py NT/mkodbcwxs.py NT/mksqlwxs.py buildtools/conf/monetdb.ico clients/ChangeLog.Dec2016 clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 clients/Tests/exports.stable.out clients/mapiclient/dump.c clients/mapiclient/mclient.c clients/mapiclient/mhelp.c clients/mapiclient/mhelp.h clients/mapiclient/tomograph.c clients/odbc/driver/SQLColumnPrivileges.c clients/odbc/driver/SQLColumns.c clients/odbc/driver/SQLExecute.c clients/odbc/driver/SQLSpecialColumns.c clients/odbc/driver/SQLTables.c common/stream/stream.c debian/changelog gdk/gdk_atoms.c gdk/gdk_bat.c gdk/gdk_bbp.c gdk/gdk_heap.c gdk/gdk_join.c gdk/gdk_logger.c gdk/gdk_private.h gdk/gdk_search.c gdk/gdk_select.c gdk/gdk_utils.c geom/monetdb5/geom_upgrade.c libversions monetdb5/mal/mal_debugger.c monetdb5/mal/mal_instruction.c monetdb5/mal/mal_instruction.h monetdb5/mal/mal_parser.c monetdb5/modules/kernel/status.c monetdb5/modules/mal/00_language_hge.mal monetdb5/modules/mal/bbp.c monetdb5/modules/mal/clients.c monetdb5/modules/mal/inspect.c monetdb5/modules/mal/manifold.c monetdb5/modules/mal/manifold.h monetdb5/modules/mal/mdb.c monetdb5/optimizer/Tests/inline06.stable.out monetdb5/optimizer/opt_costModel.c monetdb5/optimizer/opt_dataflow.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_multiplex
MonetDB: default - Merge with Jul2017 branch.
Changeset: b4de79f8108f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b4de79f8108f Modified Files: monetdb5/optimizer/opt_mergetable.c sql/server/rel_exp.c sql/server/rel_exp.h sql/server/rel_optimizer.c sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err Branch: default Log Message: Merge with Jul2017 branch. diffs (truncated from 304 to 300 lines): diff --git a/monetdb5/optimizer/opt_mergetable.c b/monetdb5/optimizer/opt_mergetable.c --- a/monetdb5/optimizer/opt_mergetable.c +++ b/monetdb5/optimizer/opt_mergetable.c @@ -112,8 +112,13 @@ mat_add_var(matlist_t *ml, InstrPtr q, I dst->pm = parentmat; dst->packed = 0; dst->pushed = pushed; - if (ml->vars[var] < 0) + if (ml->vars[var] < 0 || dst->type != mat_ext) { + if (ml->vars[var] >= 0) { + ml->v[ml->vars[var]].packed = 1; + ml->v[ml->vars[var]].pushed = 1; + } ml->vars[var] = ml->top; + } ++ml->top; } diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -1300,6 +1300,19 @@ exp_is_zero(mvc *sql, sql_exp *e) } int +exp_is_not_null(mvc *sql, sql_exp *e) +{ + if (e->type == e_atom) { + if (e->l) { + return !(atom_null(e->l)); + } else if(sql->emode == m_normal && sql->argc > e->flag && EC_COMPUTE(exp_subtype(e)->type->eclass)) { + return !atom_null(sql->args[e->flag]); + } + } + return 0; +} + +int exp_is_atom( sql_exp *e ) { switch (e->type) { diff --git a/sql/server/rel_exp.h b/sql/server/rel_exp.h --- a/sql/server/rel_exp.h +++ b/sql/server/rel_exp.h @@ -119,6 +119,7 @@ extern int exp_is_correlation(sql_exp *e extern int exp_is_join_exp(sql_exp *e); extern int exp_is_atom(sql_exp *e); extern int exp_is_zero(mvc *sql, sql_exp *e); +extern int exp_is_not_null(mvc *sql, sql_exp *e); extern int exps_are_atoms(list *exps); extern int exp_has_func(sql_exp *e); extern int exp_unsafe(sql_exp *e); 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 @@ -2695,13 +2695,13 @@ exp_simplify_math( mvc *sql, sql_exp *e, sql_exp *le = l->h->data; sql_exp *re = l->h->next->data; /* 0*a = 0 */ - if (exp_is_atom(le) && exp_is_zero(sql, le)) { + if (exp_is_atom(le) && exp_is_zero(sql, le) && exp_is_not_null(sql, re)) { (*changes)++; exp_setname(sql->sa, le, exp_relname(e), exp_name(e)); return le; } /* a*0 = 0 */ - if (exp_is_atom(re) && exp_is_zero(sql, re)) { + if (exp_is_atom(re) && exp_is_zero(sql, re) && exp_is_not_null(sql, le)) { (*changes)++; exp_setname(sql->sa, re, exp_relname(e), exp_name(e)); return re; diff --git a/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out b/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out --- a/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out +++ b/sql/test/BugTracker-2010/Tests/limit_in_prepare.Bug-2552.stable.out @@ -108,7 +108,7 @@ Ready. % sys.tbls,sys.tbls, sys.tbls, sys.tbls, sys.tbls, sys.tbls, sys.tbls, sys.tbls # table_name % name,schema_id, query, type, system, commit_action, readonly, temporary # name % varchar, int,varchar,smallint, boolean, smallint, boolean,smallint # type -% 12, 4, 379,1, 5, 1, 5, 1 # length +% 12, 4, 169,1, 5, 1, 5, 1 # length [ "schemas", 2000, NULL, 0, true, 0, false, 0 ] [ "types", 2000, NULL, 0, true, 0, false, 0 ] [ "functions", 2000, NULL, 0, true, 0, false, 0 ] diff --git a/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err b/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err --- a/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err +++ b/sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err @@
MonetDB: Jul2017 - We no longer need updatecodes.py.
Changeset: 8c6080e3b54d for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8c6080e3b54d Removed Files: NT/updatecodes.py Branch: Jul2017 Log Message: We no longer need updatecodes.py. diffs (43 lines): diff --git a/NT/updatecodes.py b/NT/updatecodes.py deleted file mode 100755 --- a/NT/updatecodes.py +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/python - -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V. - -import subprocess -import re - -prcdre = re.compile('"ProductCode" = "8:{(.*)}"') -pacdre = re.compile('"PackageCode" = "8:{(.*)}"') - -def update(f): -p = subprocess.Popen(['uuidgen'], stdout = subprocess.PIPE, - universal_newlines = True) -u, e = p.communicate() -productcode = u.strip('\n').upper() -p = subprocess.Popen(['uuidgen'], stdout = subprocess.PIPE, - universal_newlines = True) -u, e = p.communicate() -packagecode = u.strip('\n').upper() -fp = open(f) -data = fp.read() -fp.close() -repl = '"ProductCode" = "8:{%s}"' % productcode -data = prcdre.sub(repl, data) -repl = '"PackageCode" = "8:{%s}"' % packagecode -data = pacdre.sub(repl, data) -fp = open(f, 'w') -fp.write(data) -fp.close() - -if __name__ == '__main__': -import sys -for f in sys.argv[1:]: -update(f) ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: timetrails - Added 'START CONTINUOUS PROCEDURE qname', ...
Changeset: 6bd0c0fd359a for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6bd0c0fd359a Modified Files: sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_cquery.c sql/backends/monet5/sql_cquery.h sql/backends/monet5/sqlcatalog.mal sql/include/sql_catalog.h sql/server/rel_psm.c sql/server/rel_semantic.c sql/server/sql_mvc.c sql/server/sql_mvc.h sql/server/sql_parser.h sql/server/sql_parser.y sql/server/sql_scan.c sql/storage/sql_storage.h sql/storage/store.c Branch: timetrails Log Message: Added 'START CONTINUOUS PROCEDURE qname', 'INTERRUPT CONTINUOUS PROCEDURE qname' and 'HALT CONTINUOUS PROCEDURE qname' SQL statements. For now we use INTERRUPT and HALT instead of PAUSE and STOP respectively, because these words are used in the system functions sys.pause and sys.stop diffs (truncated from 912 to 300 lines): diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c --- a/sql/backends/monet5/sql_cat.c +++ b/sql/backends/monet5/sql_cat.c @@ -24,6 +24,7 @@ #include "opt_prelude.h" #include "querylog.h" #include "mal_builder.h" +#include "mal_client.h" #include "mal_debugger.h" #include @@ -48,7 +49,7 @@ static char * SaveArgReference(MalStkPtr stk, InstrPtr pci, int arg) { char *val = *getArgReference_str(stk, pci, arg); - + if (val && strcmp(val, str_nil) == 0) val = NULL; return val; @@ -712,36 +713,58 @@ continuous_procedure(mvc *sql, char *sna { sql_schema *s = NULL; char *F; + Client cntxt; + str petrinetResponse = MAL_SUCCEED; switch (action) { case START_CONTINUOUS_PROCEDURE: F = "START CONTINUOUS PROCEDURE"; break; - case PAUSE_CONTINUOUS_PROCEDURE: - F = "PAUSE CONTINUOUS PROCEDURE"; + case INTERRUPT_CONTINUOUS_PROCEDURE: + F = "INTERRUPT CONTINUOUS PROCEDURE"; break; - case STOP_CONTINUOUS_PROCEDURE: - F = "STOP CONTINUOUS PROCEDURE"; + case HALT_CONTINUOUS_PROCEDURE: + F = "HALT CONTINUOUS PROCEDURE"; break; } if (sname && !(s = mvc_bind_schema(sql, sname))) - return sql_message("3F000!%s CONTINUOUS PROCEDURE: no such schema '%s'", F, sname); + return sql_message("3F000!%s: no such schema '%s'", F, sname); if (!s) s = cur_schema(sql); if (fid >= 0) { node *n = find_sql_func_node(s, fid); if (n) { sql_func *func = n->data; - if (!mvc_schema_privs(sql, s)) { - return sql_message("%s: access denied for %s to schema ;'%s'", F, stack_get_string(sql, "current_user"), s->base.name); + return sql_message("3F000!%s: access denied for %s to schema ;'%s'", F, stack_get_string(sql, "current_user"), s->base.name); } - - mvc_continuous_procedure(sql, s, func, action); + switch (action) { + case START_CONTINUOUS_PROCEDURE: { + if(!CQlocate(sname, cpname)) { //if the continuous procedure is not registered in the catalog then we register it + cntxt = MCgetClient(sql->clientid); + petrinetResponse = CQregisterInternal(cntxt, sname, cpname); + } + if(!petrinetResponse) { + petrinetResponse = CQresumeInternal(sname, cpname); + } + } + break; + case INTERRUPT_CONTINUOUS_PROCEDURE: + petrinetResponse = CQpauseInternal(sname, cpname); + break; + case HALT_CONTINUOUS_PROCEDURE: + petrinetResponse = CQderegisterInternal(sname, cpname); + break; + } + if(petrinetResponse) { + return sql_message("3F000!%s: internal error: %s", F, petrinetResponse); + } else { + mvc_continuous_procedure(sql, s, func); + } } } else { - return sql_message("3F000!%s CONTINUOUS PROCEDURE: could not find continuous procedure %s in the c
MonetDB: timetrails - Drop continuous procedures
Changeset: 70ccd3d3f174 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=70ccd3d3f174 Modified Files: sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_cquery.c sql/server/sql_parser.y Branch: timetrails Log Message: Drop continuous procedures diffs (100 lines): diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c --- a/sql/backends/monet5/sql_cat.c +++ b/sql/backends/monet5/sql_cat.c @@ -448,7 +448,7 @@ static str drop_func(mvc *sql, char *sname, char *name, int fid, int type, int action) { sql_schema *s = NULL; - char *F, *f; + char *F, *f, *err; char *KF = type == F_FILT ? "FILTER " : type == F_UNION ? "UNION " : ""; char *kf = type == F_FILT ? "filter " : type == F_UNION ? "union " : ""; @@ -484,6 +484,13 @@ drop_func(mvc *sql, char *sname, char *n } if (!action && mvc_check_dependency(sql, func->base.id, !IS_PROC(func) ? FUNC_DEPENDENCY : PROC_DEPENDENCY, NULL)) return sql_message("DROP %s%s: there are database objects dependent on %s%s %s;", KF, F, kf, f, func->base.name); + //if it is a continuous procedure we must remove it first from the Petrinet + if(type == F_CONTINUOUS_PROCEDURE && CQlocate(sname, func->base.name)) { + err = CQderegisterInternal(sname, func->base.name); + if(err) { + return sql_message("DROP %s%s: internal error on %s%s %s: %s", KF, F, kf, f, func->base.name, err); + } + } mvc_drop_func(sql, s, func, action); } @@ -502,6 +509,13 @@ drop_func(mvc *sql, char *sname, char *n list_destroy(list_func); return sql_message("DROP %s%s: there are database objects dependent on %s%s %s;", KF, F, kf, f, func->base.name); } + //if it is a continuous procedure we must remove it first from the Petrinet + if(type == F_CONTINUOUS_PROCEDURE && CQlocate(sname, func->base.name)) { + err = CQderegisterInternal(sname, func->base.name); + if(err) { + return sql_message("DROP %s%s: internal error on %s%s %s: %s", KF, F, kf, f, func->base.name, err); + } + } } mvc_drop_all_func(sql, s, list_func, action); list_destroy(list_func); diff --git a/sql/backends/monet5/sql_cquery.c b/sql/backends/monet5/sql_cquery.c --- a/sql/backends/monet5/sql_cquery.c +++ b/sql/backends/monet5/sql_cquery.c @@ -703,7 +703,7 @@ CQderegisterInternal(str modnme, str fcn idx = CQlocate(modnme, fcnnme); if( idx == pnettop) - throw(SQL,"cquery.deregister","Continuous query %s.%s not accessible\n",modnme,fcnnme); + throw(SQL,"cquery.deregister","Continuous procedure %s.%s not accessible\n",modnme,fcnnme); return CQderegisterInternalRanges(idx, idx+1); } diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y --- a/sql/server/sql_parser.y +++ b/sql/server/sql_parser.y @@ -1973,14 +1973,13 @@ func_def: append_int(f, $1); $$ = _symbol_create_list( SQL_CREATE_FUNC, f ); } | create_or_replace CONTINUOUS PROCEDURE qname - '(' opt_paramlist ')' routine_body { dlist *f = L(); append_list(f, $4);/* continuous query name */ - append_list(f, $6);/* no parameters for now :( */ + append_list(f, NULL); /* no parameters */ append_symbol(f, NULL);/* no result */ append_list(f, NULL); /* no external name */ - append_list(f, $8);/* continuous query body */ + append_list(f, $5);/* continuous query body */ append_int(f, F_CONTINUOUS_PROCEDURE); /* continuous query identifier */ append_int(f, FUNC_LANG_SQL); /* for now only SQL */ append_int(f, $1); /* create or replace feature */ @@ -2453,6 +2452,12 @@ routine_designator: append_list(l, $3 ); append_int(l, F_PROC ); $$ = l; } + | CONTINUOUS PROCEDURE qname + { dlist *l = L(); + append_list(l, $3 ); + append_list(l, NULL ); + append_int(l, F_CONTIN