monetdb-java: default - compile_mcl depends on driver (MonetVers...
Changeset: e74154a1d4b2 for monetdb-java URL: https://dev.monetdb.org/hg/monetdb-java/rev/e74154a1d4b2 Modified Files: build.xml Branch: default Log Message: compile_mcl depends on driver (MonetVersion.java). diffs (12 lines): diff --git a/build.xml b/build.xml --- a/build.xml +++ b/build.xml @@ -175,7 +175,7 @@ Copyright 1997 - July 2008 CWI. - +
MonetDB: Dec2023 - Approve upgrade after release.
Changeset: edbb31389fcf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/edbb31389fcf Modified Files: sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.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/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 Branch: Dec2023 Log Message: Approve upgrade after release. diffs (192 lines): diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 --- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 +++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 @@ -1,11 +0,0 @@ -Running database upgrade commands: -delete from sys.dependencies where (id, depend_id) in (select c.id, f.id from sys.functions f, sys._tables t, sys._columns c, sys.dependencies d where c.table_id = t.id and f.id = d.depend_id and c.id = d.id and f.schema_id = 2000 and t.schema_id = 2000 and (f.name, t.name, c.name) in (values ('describe_columns', '_columns', 'storage'), ('describe_function', 'function_languages', 'language_name'), ('describe_function', 'function_types', 'function_type_name'), ('describe_function', 'functions', 'func'), ('describe_function', 'functions', 'mod'), ('describe_function', 'functions', 'semantics'), ('describe_function', 'functions', 'side_effect'), ('describe_function', 'functions', 'system'), ('describe_function', 'functions', 'vararg'), ('describe_function', 'functions', 'varres'), ('describe_function', 'schemas', 'authorization'), ('describe_function', 'schemas', 'owner'), ('describe_function', 'schemas', 'system'), ('describe_table', '_tables', 'access'), ('describe_table', '_tables', 'commit_action'), ('describe_table', '_tables', 'system'))); -delete from sys.dependencies where (id, depend_id) in (select c.id, v.id from sys._tables v, sys._tables t, sys._columns c, sys.dependencies d where c.table_id = t.id and v.id = d.depend_id and c.id = d.id and v.schema_id = 2000 and t.schema_id = 2000 and (v.name, t.name, c.name) in (values ('dependency_columns_on_indexes', '_columns', 'name'), ('dependency_columns_on_indexes', '_columns', 'number'), ('dependency_columns_on_indexes', '_columns', 'storage'), ('dependency_columns_on_indexes', '_columns', 'table_id'), ('dependency_columns_on_indexes', '_columns', 'type_digits'), ('dependency_columns_on_indexes', 'keys', 'id'), ('dependency_columns_on_indexes', 'triggers', 'name'), ('dependency_columns_on_indexes', 'triggers', 'orientation'), ('dependency_columns_on_indexes', 'triggers', 'table_id'), ('dependency_columns_on_indexes', 'triggers', 'time'), ('dependency_columns_on_keys', '_columns', 'name'), ('dependency_columns_on_keys', '_columns', 'table_id'), ('dependency_columns_on_ke ys', '_columns', 'type'), ('dependency_columns_on_keys', '_columns', 'type_digits'), ('dependency_columns_on_keys', '_columns', 'type_scale'), ('dependency_columns_on_keys', 'triggers', 'name'), ('dependency_columns_on_keys', 'triggers', 'orientation'), ('dependency_columns_on_keys', 'triggers', 'table_id'), ('dependency_columns_on_keys', 'triggers', 'time'), ('dependency_columns_on_triggers', 'keys', 'name'), ('dependency_columns_on_triggers', 'keys', 'rkey'), ('dependency_columns_on_triggers', 'keys', 'type'), ('dependency_functions_on_triggers', 'keys', 'action'), ('dependency_functions_on_triggers', 'keys', 'name'), ('dependency_functions_on_triggers', 'keys', 'rkey'), ('dependency_functions_on_triggers', 'keys', 'type'), ('dependency_keys_on_foreignkeys', '_columns', 'default'), ('dependency_keys_on_foreignkeys', '_columns', 'name'), ('dependency_keys_on_foreignkeys', '_columns', 'table_id'), ('dependency_keys_on_foreignkeys', '_columns', 'type'), ('dependency_keys_on_foreignke ys', '_columns', 'type_digits'), ('dependency_keys_on_foreignkeys', '_columns', 'type_scale'), ('dependency_tables_on_foreignkeys', '_columns', 'default'), ('dependency_tables_on_foreignkeys', '_columns', 'name'), ('dependency_tables_on_foreignkeys', '_columns', 'table_id'), ('dependency_tables_on_foreignkeys', '_columns', 'type'), ('dependency_tables_on_foreignkeys', '_columns', 'type_digits'), ('dependency_tables_on_foreignkeys', '_columns', 'type_scale'), ('dependency_tables_on_indexes', '_columns', 'name'), ('dependency_tables_on_index
MonetDB: Dec2023 - Compatibility with Numpy 2.0.
Changeset: fd7498241c4a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/fd7498241c4a Modified Files: sql/backends/monet5/UDF/pyapi3/conversion3.c Branch: Dec2023 Log Message: Compatibility with Numpy 2.0. diffs (32 lines): diff --git a/sql/backends/monet5/UDF/pyapi3/conversion3.c b/sql/backends/monet5/UDF/pyapi3/conversion3.c --- a/sql/backends/monet5/UDF/pyapi3/conversion3.c +++ b/sql/backends/monet5/UDF/pyapi3/conversion3.c @@ -787,6 +787,10 @@ wrapup: return NULL; } +#ifndef NUMPY_CORE_INCLUDE_NUMPY_NPY_2_COMPAT_H_ +#define PyDataType_ELSIZE(x) (x)->elsize +#endif + str PyObject_GetReturnValues(PyObject *obj, PyReturn *ret) { @@ -802,7 +806,7 @@ PyObject_GetReturnValues(PyObject *obj, } ret->result_type = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->type_num; // We read the result type from the resulting array - ret->memory_size = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->elsize; + ret->memory_size = PyDataType_ELSIZE(PyArray_DESCR((PyArrayObject *)ret->numpy_array)); ret->count = PyArray_DIMS((PyArrayObject *)ret->numpy_array)[0]; ret->array_data = PyArray_DATA((PyArrayObject *)ret->numpy_array); ret->mask_data = NULL; @@ -891,7 +895,7 @@ PyObject_PreprocessObject(PyObject *pRes ret->array_data = PyArray_DATA((PyArrayObject *)ret->numpy_array); if (ret->numpy_mask != NULL) ret->mask_data = PyArray_DATA((PyArrayObject *)ret->numpy_mask); - ret->memory_size = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->elsize; + ret->memory_size = PyDataType_ELSIZE(PyArray_DESCR((PyArrayObject *)ret->numpy_array)); } else { msg = PyObject_GetReturnValues(pColO, ret); Py_DECREF(pColO); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Work around deprecation warning in Python 3.12.
Changeset: 3468258b9dc5 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3468258b9dc5 Modified Files: sql/test/Tests/hot_snapshot.py Branch: Dec2023 Log Message: Work around deprecation warning in Python 3.12. In 3.12 we need a "filter" argument, but before that argument didn't exist. Wonderful design, NOT. diffs (18 lines): diff --git a/sql/test/Tests/hot_snapshot.py b/sql/test/Tests/hot_snapshot.py --- a/sql/test/Tests/hot_snapshot.py +++ b/sql/test/Tests/hot_snapshot.py @@ -110,7 +110,13 @@ def test_snapshot(z_extension, expected_ # and extract the tar file with tarfile.open(fileobj=f) as tar: -tar.extractall(dbfarm) +try: +tar.extraction_filter +except AttributeError: +# pre 3.12 Python +tar.extractall(dbfarm) +else: +tar.extractall(dbfarm, filter='data') f.close() # and restart the server ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Aug2024 - Merge with Dec2023 branch.
Changeset: 8bc7ea1b710e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/8bc7ea1b710e Modified Files: .hgtags sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.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/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 Branch: Aug2024 Log Message: Merge with Dec2023 branch. diffs (truncated from 310 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -829,3 +829,4 @@ 9a694c41042503a22d6c92aeab5bc4ca1912b62e 9a694c41042503a22d6c92aeab5bc4ca1912b62e Dec2023_SP3_release e1e9e22bf3d734dc50b56151c657a57c18f56561 Aug2024_root cde7d8f7c99540a8c95856df052a9f123b0c1643 Dec2023_11 +cde7d8f7c99540a8c95856df052a9f123b0c1643 Dec2023_SP4_release diff --git a/sql/backends/monet5/UDF/pyapi3/conversion3.c b/sql/backends/monet5/UDF/pyapi3/conversion3.c --- a/sql/backends/monet5/UDF/pyapi3/conversion3.c +++ b/sql/backends/monet5/UDF/pyapi3/conversion3.c @@ -787,6 +787,10 @@ wrapup: return NULL; } +#ifndef NUMPY_CORE_INCLUDE_NUMPY_NPY_2_COMPAT_H_ +#define PyDataType_ELSIZE(x) (x)->elsize +#endif + str PyObject_GetReturnValues(PyObject *obj, PyReturn *ret) { @@ -802,7 +806,7 @@ PyObject_GetReturnValues(PyObject *obj, } ret->result_type = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->type_num; // We read the result type from the resulting array - ret->memory_size = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->elsize; + ret->memory_size = PyDataType_ELSIZE(PyArray_DESCR((PyArrayObject *)ret->numpy_array)); ret->count = PyArray_DIMS((PyArrayObject *)ret->numpy_array)[0]; ret->array_data = PyArray_DATA((PyArrayObject *)ret->numpy_array); ret->mask_data = NULL; @@ -891,7 +895,7 @@ PyObject_PreprocessObject(PyObject *pRes ret->array_data = PyArray_DATA((PyArrayObject *)ret->numpy_array); if (ret->numpy_mask != NULL) ret->mask_data = PyArray_DATA((PyArrayObject *)ret->numpy_mask); - ret->memory_size = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->elsize; + ret->memory_size = PyDataType_ELSIZE(PyArray_DESCR((PyArrayObject *)ret->numpy_array)); } else { msg = PyObject_GetReturnValues(pColO, ret); Py_DECREF(pColO); diff --git a/sql/test/Tests/hot_snapshot.py b/sql/test/Tests/hot_snapshot.py --- a/sql/test/Tests/hot_snapshot.py +++ b/sql/test/Tests/hot_snapshot.py @@ -110,7 +110,13 @@ def test_snapshot(z_extension, expected_ # and extract the tar file with tarfile.open(fileobj=f) as tar: -tar.extractall(dbfarm) +try: +tar.extraction_filter +except AttributeError: +# pre 3.12 Python +tar.extractall(dbfarm) +else: +tar.extractall(dbfarm, filter='data') f.close() # and restart the server diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 --- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 +++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 @@ -1,17 +1,6 @@ Running database upgrade commands to update system tables. Running database upgrade commands: -delete from sys.dependencies where (id, depend_id) in (select c.id, f.id from sys.functions f, sys._tables t, sys._columns c, sys.dependencies d where c.table_id = t.id and f.id = d.depend_id and c.id = d.id and f.schema_id = 2000 and t.schema_id = 2000 and (f.name, t.name, c.name) in (values ('describe_columns', '_columns', 'storage'), ('describe_function', 'function_languages', 'language_name'), ('describe_function', 'function_types', 'function_type_name'), ('describe_function', 'functions', 'func'), ('describe_function', 'functions', 'mod'), ('describe_function', 'functions', 'semantics'), ('describe_function', 'functions', 'side_effect'), ('describe_function', 'functions', 'system'), ('describe_function', 'functions', 'vararg'), ('describe_function', 'functions', 'varres'), ('describe_function', 'schemas', 'authorization'), ('describe_function', 'schemas', 'owner'), ('describe_function', 'sche
MonetDB: default - Merge with Aug2024 branch.
Changeset: 3a168604378c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3a168604378c Modified Files: sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.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/upgrade.stable.out.int128 sql/test/emptydb-upgrade/Tests/upgrade.stable.out sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade/Tests/upgrade.stable.out sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 Branch: default Log Message: Merge with Aug2024 branch. diffs (truncated from 322 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -829,3 +829,4 @@ 9a694c41042503a22d6c92aeab5bc4ca1912b62e 9a694c41042503a22d6c92aeab5bc4ca1912b62e Dec2023_SP3_release e1e9e22bf3d734dc50b56151c657a57c18f56561 Aug2024_root cde7d8f7c99540a8c95856df052a9f123b0c1643 Dec2023_11 +cde7d8f7c99540a8c95856df052a9f123b0c1643 Dec2023_SP4_release diff --git a/sql/ChangeLog.Aug2024 b/sql/ChangeLog.Aug2024 --- a/sql/ChangeLog.Aug2024 +++ b/sql/ChangeLog.Aug2024 @@ -8,6 +8,8 @@ * Wed May 29 2024 Joeri van Ruth - Extended view sys.sessions and function sys.sessions() with new columns: language, peer, hostname, application, client, clientpid and remark. +- All users now have SELECT privilege on view sys.sessions, but non-admin + users only see their own sessions. - Added procedure sys.setclientinfo(property string, value string) to allow the client application to set a specific client info property. - Added system table sys.clientinfo_properties that lists the supported diff --git a/sql/backends/monet5/UDF/pyapi3/conversion3.c b/sql/backends/monet5/UDF/pyapi3/conversion3.c --- a/sql/backends/monet5/UDF/pyapi3/conversion3.c +++ b/sql/backends/monet5/UDF/pyapi3/conversion3.c @@ -787,6 +787,10 @@ wrapup: return NULL; } +#ifndef NUMPY_CORE_INCLUDE_NUMPY_NPY_2_COMPAT_H_ +#define PyDataType_ELSIZE(x) (x)->elsize +#endif + str PyObject_GetReturnValues(PyObject *obj, PyReturn *ret) { @@ -802,7 +806,7 @@ PyObject_GetReturnValues(PyObject *obj, } ret->result_type = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->type_num; // We read the result type from the resulting array - ret->memory_size = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->elsize; + ret->memory_size = PyDataType_ELSIZE(PyArray_DESCR((PyArrayObject *)ret->numpy_array)); ret->count = PyArray_DIMS((PyArrayObject *)ret->numpy_array)[0]; ret->array_data = PyArray_DATA((PyArrayObject *)ret->numpy_array); ret->mask_data = NULL; @@ -891,7 +895,7 @@ PyObject_PreprocessObject(PyObject *pRes ret->array_data = PyArray_DATA((PyArrayObject *)ret->numpy_array); if (ret->numpy_mask != NULL) ret->mask_data = PyArray_DATA((PyArrayObject *)ret->numpy_mask); - ret->memory_size = PyArray_DESCR((PyArrayObject *)ret->numpy_array)->elsize; + ret->memory_size = PyDataType_ELSIZE(PyArray_DESCR((PyArrayObject *)ret->numpy_array)); } else { msg = PyObject_GetReturnValues(pColO, ret); Py_DECREF(pColO); diff --git a/sql/test/Tests/hot_snapshot.py b/sql/test/Tests/hot_snapshot.py --- a/sql/test/Tests/hot_snapshot.py +++ b/sql/test/Tests/hot_snapshot.py @@ -110,7 +110,13 @@ def test_snapshot(z_extension, expected_ # and extract the tar file with tarfile.open(fileobj=f) as tar: -tar.extractall(dbfarm) +try: +tar.extraction_filter +except AttributeError: +# pre 3.12 Python +tar.extractall(dbfarm) +else: +tar.extractall(dbfarm, filter='data') f.close() # and restart the server diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 --- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 +++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 @@ -1,17 +1,6 @@ Running database upgrade commands to update system tables. Running database upgrade commands: -delete from sys.dependencies where (id, depend_id) in (select c.id, f.id from sys.functions f, sys._tables t, sys._columns c, sys.dependencies d where c.table_id = t.id and f.id = d.depend_id and c.id = d.id and f.schema_id = 2000 and t.schema_id = 2000 and (f.name, t.name, c.name) in (value
MonetDB: Aug2024 - some more multiplex inlining, fixes bug #7272
Changeset: 9d0472b171f1 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/9d0472b171f1 Modified Files: clients/Tests/exports.stable.out monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_remap.c Branch: Aug2024 Log Message: some more multiplex inlining, fixes bug #7272 diffs (101 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 @@ -1065,6 +1065,7 @@ const char *likeRef; const char *likejoinRef; const char *likeselectRef; const char *likeuselectRef; +const char *lngRef; str loadLibrary(const char *modulename, int flag); char *locate_file(const char *basename, const char *ext, bit recurse); const char *lockRef; diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c --- a/monetdb5/optimizer/opt_prelude.c +++ b/monetdb5/optimizer/opt_prelude.c @@ -149,6 +149,7 @@ const char *leftjoinRef; const char *likejoinRef; const char *likeRef; const char *likeselectRef; +const char *lngRef; const char *lockRef; const char *lookupRef; const char *malRef; @@ -409,6 +410,7 @@ optimizerInit(void) likejoinRef = putName("likejoin"); likeRef = putName("like"); likeselectRef = putName("likeselect"); + lngRef = putName("lng"); lockRef = putName("lock"); lookupRef = putName("lookup"); malRef = putName("mal"); diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h --- a/monetdb5/optimizer/opt_prelude.h +++ b/monetdb5/optimizer/opt_prelude.h @@ -147,6 +147,7 @@ mal_export const char *likejoinRef; mal_export const char *likeRef; mal_export const char *likeselectRef; mal_export const char *likeuselectRef; +mal_export const char *lngRef; mal_export const char *lockRef; mal_export const char *lookupRef; mal_export const char *malRef; diff --git a/monetdb5/optimizer/opt_remap.c b/monetdb5/optimizer/opt_remap.c --- a/monetdb5/optimizer/opt_remap.c +++ b/monetdb5/optimizer/opt_remap.c @@ -21,6 +21,21 @@ #include "opt_inline.h" #include "opt_multiplex.h" +static InstrPtr +pushNilAt(MalBlkPtr mb, InstrPtr p, int pos) +{ +int i; + +p = pushNilBat(mb, p); /* push at end */ +if (mb->errors == NULL) { + int arg = getArg(p, p->argc - 1); +for (i = p->argc - 1; i > pos; i--) +getArg(p, i) = getArg(p, i - 1); +getArg(p, pos) = arg; +} +return p; +} + static int OPTremapDirect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, int idx, Module scope) @@ -261,11 +276,16 @@ OPTmultiplexInline(Client cntxt, MalBlkP q->typeresolved = false; if (q->retc == 1 && ((getModuleId(q) == batcalcRef - && (getFunctionId(q) == mulRef - || getFunctionId(q) == divRef - || getFunctionId(q) == plusRef - || getFunctionId(q) == minusRef - || getFunctionId(q) == modRef)) + && ( getFunctionId(q) == mulRef + || getFunctionId(q) == divRef + || getFunctionId(q) == plusRef + || getFunctionId(q) == minusRef + || getFunctionId(q) == modRef + || (q->argc > 3 && ( + getFunctionId(q) == intRef + || getFunctionId(q) == lngRef + || getFunctionId(q) == hgeRef)) +)) || getModuleId(q) == batmtimeRef || getModuleId(q) == batstrRef)) { if (q->argc == 3 && @@ -292,6 +312,12 @@ OPTmultiplexInline(Client cntxt, MalBlkP if (isaBatType(getArgType(mq, q, 2))) q = pushNilBat(mq, q); q = pushArgument(mq, q, a); + } else if (q->argc == 5 && getModuleId(q) == batcalcRef) { /* decimal casts */ + int
MonetDB: default - merged with Aug2024
Changeset: 2cc06379d80e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/2cc06379d80e Modified Files: clients/Tests/exports.stable.out Branch: default Log Message: merged with Aug2024 diffs (101 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 @@ -1065,6 +1065,7 @@ const char *likeRef; const char *likejoinRef; const char *likeselectRef; const char *likeuselectRef; +const char *lngRef; str loadLibrary(const char *modulename, int flag); char *locate_file(const char *basename, const char *ext, bit recurse); const char *lockRef; diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c --- a/monetdb5/optimizer/opt_prelude.c +++ b/monetdb5/optimizer/opt_prelude.c @@ -149,6 +149,7 @@ const char *leftjoinRef; const char *likejoinRef; const char *likeRef; const char *likeselectRef; +const char *lngRef; const char *lockRef; const char *lookupRef; const char *malRef; @@ -409,6 +410,7 @@ optimizerInit(void) likejoinRef = putName("likejoin"); likeRef = putName("like"); likeselectRef = putName("likeselect"); + lngRef = putName("lng"); lockRef = putName("lock"); lookupRef = putName("lookup"); malRef = putName("mal"); diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h --- a/monetdb5/optimizer/opt_prelude.h +++ b/monetdb5/optimizer/opt_prelude.h @@ -147,6 +147,7 @@ mal_export const char *likejoinRef; mal_export const char *likeRef; mal_export const char *likeselectRef; mal_export const char *likeuselectRef; +mal_export const char *lngRef; mal_export const char *lockRef; mal_export const char *lookupRef; mal_export const char *malRef; diff --git a/monetdb5/optimizer/opt_remap.c b/monetdb5/optimizer/opt_remap.c --- a/monetdb5/optimizer/opt_remap.c +++ b/monetdb5/optimizer/opt_remap.c @@ -21,6 +21,21 @@ #include "opt_inline.h" #include "opt_multiplex.h" +static InstrPtr +pushNilAt(MalBlkPtr mb, InstrPtr p, int pos) +{ +int i; + +p = pushNilBat(mb, p); /* push at end */ +if (mb->errors == NULL) { + int arg = getArg(p, p->argc - 1); +for (i = p->argc - 1; i > pos; i--) +getArg(p, i) = getArg(p, i - 1); +getArg(p, pos) = arg; +} +return p; +} + static int OPTremapDirect(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, int idx, Module scope) @@ -261,11 +276,16 @@ OPTmultiplexInline(Client cntxt, MalBlkP q->typeresolved = false; if (q->retc == 1 && ((getModuleId(q) == batcalcRef - && (getFunctionId(q) == mulRef - || getFunctionId(q) == divRef - || getFunctionId(q) == plusRef - || getFunctionId(q) == minusRef - || getFunctionId(q) == modRef)) + && ( getFunctionId(q) == mulRef + || getFunctionId(q) == divRef + || getFunctionId(q) == plusRef + || getFunctionId(q) == minusRef + || getFunctionId(q) == modRef + || (q->argc > 3 && ( + getFunctionId(q) == intRef + || getFunctionId(q) == lngRef + || getFunctionId(q) == hgeRef)) +)) || getModuleId(q) == batmtimeRef || getModuleId(q) == batstrRef)) { if (q->argc == 3 && @@ -292,6 +312,12 @@ OPTmultiplexInline(Client cntxt, MalBlkP if (isaBatType(getArgType(mq, q, 2))) q = pushNilBat(mq, q); q = pushArgument(mq, q, a); + } else if (q->argc == 5 && getModuleId(q) == batcalcRef) { /* decimal casts */ + int pos = 3; + if (isaBatType(getArgType(mq, q, 1))) +
MonetDB: Dec2023 - Move client context printing to SQL layer.
Changeset: 73891dff281c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/73891dff281c Modified Files: monetdb5/mal/mal.c monetdb5/mal/mal_client.c monetdb5/mal/mal_private.h sql/backends/monet5/sql_scenario.c Branch: Dec2023 Log Message: Move client context printing to SQL layer. We can now print whether a context has an open transaction. We also print the name of the client thread responsible for the context. diffs (135 lines): diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c --- a/monetdb5/mal/mal.c +++ b/monetdb5/mal/mal.c @@ -53,12 +53,6 @@ mal_version(void) return MONETDB5_VERSION; } -static void -MALprintinfo(void) -{ - MCprintinfo(); -} - /* * Initialization of the MAL context */ @@ -99,8 +93,6 @@ mal_init(char *modules[], bool embedded, return -1; initNamespace(); - GDKprintinforegister(MALprintinfo); - err = malBootstrap(modules, embedded, initpasswd); if (err !=MAL_SUCCEED) { mal_client_reset(); diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c --- a/monetdb5/mal/mal_client.c +++ b/monetdb5/mal/mal_client.c @@ -587,36 +587,3 @@ MCvalid(Client tc) MT_lock_unset(&mal_contextLock); return 0; } - -void -MCprintinfo(void) -{ - int nrun = 0, nfinish = 0, nblock = 0; - - MT_lock_set(&mal_contextLock); - for (Client c = mal_clients; c < mal_clients + MAL_MAXCLIENTS; c++) { - switch (c->mode) { - case RUNCLIENT: - /* running */ - nrun++; - if (c->idle) - printf("client %d, user %s, using %"PRIu64" bytes of transient space, idle since %s", c->idx, c->username, (uint64_t) ATOMIC_GET(&c->qryctx.datasize), ctime(&c->idle)); - else - printf("client %d, user %s, using %"PRIu64" bytes of transient space\n", c->idx, c->username, (uint64_t) ATOMIC_GET(&c->qryctx.datasize)); - break; - case FINISHCLIENT: - /* finishing */ - nfinish++; - break; - case BLOCKCLIENT: - /* blocked */ - nblock++; - break; - case FREECLIENT: - break; - } - } - MT_lock_unset(&mal_contextLock); - printf("%d active clients, %d finishing clients, %d blocked clients\n", - nrun, nfinish, nblock); -} diff --git a/monetdb5/mal/mal_private.h b/monetdb5/mal/mal_private.h --- a/monetdb5/mal/mal_private.h +++ b/monetdb5/mal/mal_private.h @@ -80,6 +80,3 @@ void mal_runtime_reset(void) char *dupError(const char *err) __attribute__((__visibility__("hidden"), __returns_nonnull__)); - -void MCprintinfo(void) - __attribute__((__visibility__("hidden"))); diff --git a/sql/backends/monet5/sql_scenario.c b/sql/backends/monet5/sql_scenario.c --- a/sql/backends/monet5/sql_scenario.c +++ b/sql/backends/monet5/sql_scenario.c @@ -87,10 +87,55 @@ static MT_Lock sql_contextLock = MT_LOCK static str SQLinit(Client c, const char *initpasswd); static str master_password = NULL; +#include "mal.h" +#include "mal_client.h" + +static void +CLIENTprintinfo(void) +{ + int nrun = 0, nfinish = 0, nblock = 0; + char buf[32]; + char tbuf[64]; + struct tm tm; + + MT_lock_set(&mal_contextLock); + for (Client c = mal_clients; c < mal_clients + MAL_MAXCLIENTS; c++) { + switch (c->mode) { + case RUNCLIENT: + /* running */ + nrun++; + if (c->qryctx.maxmem) + snprintf(buf, sizeof(buf), " (max %"PRIu64")", (uint64_t) c->qryctx.maxmem); + else + buf[0] = 0; + if (c->idle) { + localtime_r(&c->idle, &tm); + strftime(tbuf, sizeof(tbuf), ", idle since %F %H:%M:%S%z", &tm); + } else + tbuf[0] = 0; + printf("client %d, user %s, thread %s, using %"PRIu64" bytes of transient space%s%s%s\n", c->idx, c->username, c->mythread ? c->mythread : "?", (uint64_t) ATOMIC_GET(&c->qryctx.datasize), buf, tbuf, c->sqlcontext && ((backend *) c->sqlcontext)->mvc && ((backend *) c->sqlcontext)->mvc->session && ((backend *) c->sqlcontext)->mvc->session->tr && ((backend *) c->sqlcontext)->mvc->session->tr->active ? ", active transaction" : ""); + break; + case FINISHCLIENT: + /* finishing */ + nfinish++; + break; + case BLOCKCLIENT: + /* blocked */ +
MonetDB: Dec2023 - Keep the lock a bit longer so that values don...
Changeset: 3d0f45933e8a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3d0f45933e8a Modified Files: tools/merovingian/daemon/forkmserver.c Branch: Dec2023 Log Message: Keep the lock a bit longer so that values don't get changed while we're (not) looking. diffs (71 lines): diff --git a/tools/merovingian/daemon/forkmserver.c b/tools/merovingian/daemon/forkmserver.c --- a/tools/merovingian/daemon/forkmserver.c +++ b/tools/merovingian/daemon/forkmserver.c @@ -723,7 +723,6 @@ forkMserver(const char *database, sabdb* (void) fcntl(pfdo[0], F_SETFD, FD_CLOEXEC); (void) fcntl(pfde[0], F_SETFD, FD_CLOEXEC); #endif - pthread_mutex_unlock(&_mero_topdp_lock); while (argv[freec] != NULL) { free(argv[freec++]); @@ -735,6 +734,8 @@ forkMserver(const char *database, sabdb* * and if it hangs, we're just doomed, with the drawback that we * completely kill the functionality of monetdbd too */ do { + pthread_mutex_unlock(&_mero_topdp_lock); + /* give the database a break */ sleep_ms(500); @@ -756,12 +757,7 @@ forkMserver(const char *database, sabdb* * waited for), the pid will have been set to -1, so check * that. */ pthread_mutex_lock(&_mero_topdp_lock); - if (dp->pid == -1) { - pthread_mutex_unlock(&_mero_topdp_lock); - break; - } - pthread_mutex_unlock(&_mero_topdp_lock); - } while ((*stats)->state != SABdbRunning); + } while (dp->pid != -1 && (*stats)->state != SABdbRunning); /* check if the SQL scenario was loaded */ if (dp->pid != -1 && (*stats)->state == SABdbRunning && @@ -777,14 +773,18 @@ forkMserver(const char *database, sabdb* if (scen == NULL) { /* we don't know what it's doing, but we don't like it * any case, so kill it */ - (void) terminateProcess(dp->dbname, dp->pid, MERODB); + pid_t pid = dp->pid; + pthread_mutex_unlock(&_mero_topdp_lock); + (void) terminateProcess(dp->dbname, pid, MERODB); msab_freeStatus(stats); pthread_mutex_unlock(&dp->fork_lock); return(newErr("database '%s' did not initialise the sql " "scenario", database)); } } else if (dp->pid != -1) { - (void) terminateProcess(dp->dbname, dp->pid, MERODB); + pid_t pid = dp->pid; + pthread_mutex_unlock(&_mero_topdp_lock); + (void) terminateProcess(dp->dbname, pid, MERODB); msab_freeStatus(stats); pthread_mutex_unlock(&dp->fork_lock); return(newErr( @@ -796,6 +796,7 @@ forkMserver(const char *database, sabdb* if (dp->pid == -1) { state = (*stats)->state; + pthread_mutex_unlock(&_mero_topdp_lock); pthread_mutex_unlock(&dp->fork_lock); /* starting failed */ @@ -837,6 +838,7 @@ forkMserver(const char *database, sabdb* } } + pthread_mutex_unlock(&_mero_topdp_lock); pthread_mutex_unlock(&dp->fork_lock); if ((*stats)->locked) { ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - A little cleanup.
Changeset: 36fea6dd2ea2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/36fea6dd2ea2 Modified Files: common/utils/msabaoth.c tools/merovingian/daemon/discoveryrunner.c tools/merovingian/daemon/forkmserver.c tools/merovingian/daemon/merovingian.h Branch: Dec2023 Log Message: A little cleanup. diffs (87 lines): diff --git a/common/utils/msabaoth.c b/common/utils/msabaoth.c --- a/common/utils/msabaoth.c +++ b/common/utils/msabaoth.c @@ -721,9 +721,15 @@ msab_getSingleStatus(const char *pathbuf }; /* store the database name */ - snprintf(buf, sizeof(buf), "%s/%s", pathbuf, dbname); + int dbnamestart; +#ifdef _MSC_VER + dbnamestart = snprintf(buf, sizeof(buf), "%s/", pathbuf); + snprintf(buf + dbnamestart, sizeof(buf) - dbnamestart, "%s", dbname); +#else + snprintf(buf, sizeof(buf), "%s/%n%s", pathbuf, &dbnamestart, dbname); +#endif sdb->path = strdup(buf); - sdb->dbname = sdb->path + strlen(sdb->path) - strlen(dbname); + sdb->dbname = sdb->path + dbnamestart; /* check the state of the server by looking at its gdk lock: diff --git a/tools/merovingian/daemon/discoveryrunner.c b/tools/merovingian/daemon/discoveryrunner.c --- a/tools/merovingian/daemon/discoveryrunner.c +++ b/tools/merovingian/daemon/discoveryrunner.c @@ -189,21 +189,21 @@ getRemoteDB(const char *database) } else { walk = stats = malloc(sizeof(sabdb)); } - walk->dbname = strdup(rdb->dbname); + *walk = (sabdb) { + .dbname = strdup(rdb->dbname), + .locked = false, + .state = SABdbRunning, + .pid = -1, + .scens = malloc(sizeof(sablist)), + .conns = malloc(sizeof(sablist)), + }; + *walk->scens = (sablist) { + .val = strdup("sql"), + }; + *walk->conns = (sablist) { + .val = strdup(rdb->conn), + }; walk->path = walk->dbname; /* only freed by sabaoth */ - walk->locked = false; - walk->state = SABdbRunning; - walk->pid = 0; - walk->scens = malloc(sizeof(sablist)); - walk->scens->val = strdup("sql"); - walk->scens->next = NULL; - walk->conns = malloc(sizeof(sablist)); - walk->conns->val = strdup(rdb->conn); - walk->conns->next = NULL; - walk->uri = NULL; - walk->secret = NULL; - walk->next = NULL; - walk->uplog = NULL; /* cut out first returned entry, put it down the list * later, as to implement a round-robin DNS-like diff --git a/tools/merovingian/daemon/forkmserver.c b/tools/merovingian/daemon/forkmserver.c --- a/tools/merovingian/daemon/forkmserver.c +++ b/tools/merovingian/daemon/forkmserver.c @@ -236,6 +236,10 @@ forkMserver(const char *database, sabdb* *dp = (struct _dpair) { .dbname = strdup(database), .fork_lock = PTHREAD_MUTEX_INITIALIZER, + .input[0].fd = -1, + .input[1].fd = -1, + .type = NODB, + .pid = -1, }; break; } diff --git a/tools/merovingian/daemon/merovingian.h b/tools/merovingian/daemon/merovingian.h --- a/tools/merovingian/daemon/merovingian.h +++ b/tools/merovingian/daemon/merovingian.h @@ -36,7 +36,8 @@ typedef char* err; #define NO_ERR (err)0 typedef enum _mtype { - MERO = 1, + NODB = 0, + MERO, MERODB, MEROFUN } mtype; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Dec2023 - Also print transaction start (ts) value for o...
Changeset: ba1c5677388d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ba1c5677388d Modified Files: sql/backends/monet5/sql_scenario.c Branch: Dec2023 Log Message: Also print transaction start (ts) value for open transactions. diffs (40 lines): diff --git a/sql/backends/monet5/sql_scenario.c b/sql/backends/monet5/sql_scenario.c --- a/sql/backends/monet5/sql_scenario.c +++ b/sql/backends/monet5/sql_scenario.c @@ -94,8 +94,9 @@ static void CLIENTprintinfo(void) { int nrun = 0, nfinish = 0, nblock = 0; - char buf[32]; - char tbuf[64]; + char mmbuf[64]; + char tmbuf[64]; + char trbuf[64]; struct tm tm; MT_lock_set(&mal_contextLock); @@ -105,15 +106,19 @@ CLIENTprintinfo(void) /* running */ nrun++; if (c->qryctx.maxmem) - snprintf(buf, sizeof(buf), " (max %"PRIu64")", (uint64_t) c->qryctx.maxmem); + snprintf(mmbuf, sizeof(mmbuf), " (max %"PRIu64")", (uint64_t) c->qryctx.maxmem); else - buf[0] = 0; + mmbuf[0] = 0; if (c->idle) { localtime_r(&c->idle, &tm); - strftime(tbuf, sizeof(tbuf), ", idle since %F %H:%M:%S%z", &tm); + strftime(tmbuf, sizeof(tmbuf), ", idle since %F %H:%M:%S%z", &tm); } else - tbuf[0] = 0; - printf("client %d, user %s, thread %s, using %"PRIu64" bytes of transient space%s%s%s\n", c->idx, c->username, c->mythread ? c->mythread : "?", (uint64_t) ATOMIC_GET(&c->qryctx.datasize), buf, tbuf, c->sqlcontext && ((backend *) c->sqlcontext)->mvc && ((backend *) c->sqlcontext)->mvc->session && ((backend *) c->sqlcontext)->mvc->session->tr && ((backend *) c->sqlcontext)->mvc->session->tr->active ? ", active transaction" : ""); + tmbuf[0] = 0; + if (c->sqlcontext && ((backend *) c->sqlcontext)->mvc && ((backend *) c->sqlcontext)->mvc->session && ((backend *) c->sqlcontext)->mvc->session->tr && ((backend *) c->sqlcontext)->mvc->session->tr->active) + snprintf(trbuf, sizeof(trbuf), ", active transaction, ts: "ULLFMT, ((backend *) c->sqlcontext)->mvc->session->tr->ts); + else + trbuf[0] = 0; + printf("client %d, user %s, thread %s, using %"PRIu64" bytes of transient space%s%s%s\n", c->idx, c->username, c->mythread ? c->mythread : "?", (uint64_t) ATOMIC_GET(&c->qryctx.datasize), mmbuf, tmbuf, trbuf); break; case FINISHCLIENT: /* finishing */ ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: nilmask - merged with default
Changeset: e8b7b2e5171a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e8b7b2e5171a Modified Files: clients/Tests/MAL-signatures.test clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_select.c monetdb5/optimizer/opt_emptybind.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_statement.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_table.c sql/storage/sql_storage.h sql/storage/store.c Branch: nilmask Log Message: merged with default diffs (truncated from 12057 to 300 lines): diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,34 +0,0 @@ -name: Bug report -about: Create a report to help us improve the sytem -title: '' -labels: '' -assignees: '' - - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Create a setting with minimal input for an external user to demonstrate the buggy behavior. -This includes the relevant part of the database schema description. -Performance trace of the rogue query (using the TRACE command) - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Software versions** - - MonetDB version number [a milestone label] - - OS and version: [e.g. Ubuntu 18.04] - - Installed from release package or self-installed and compiled - - -**Issue labeling ** -Make liberal use of the labels to characterise the issue topics. e.g. identify severity, version, etc.. - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,61 @@ +name: Bug report +description: Use this template to report bugs in MonetDB +labels: ["needs triage"] +body: + - type: textarea +id: summary +attributes: + label: Describe the bug + description: | +Clear and concise description of what the bug is. +validations: + required: true + - type: textarea +id: reproduction +attributes: + label: Reproduction steps + description: | +Create a setting with minimal input for an external user to demonstrate the buggy behavior. +This includes the relevant part of the database schema description. +Performance trace of the rogue query (using the TRACE command). +validations: + required: false + - type: textarea +id: expected +attributes: + label: Expected behavior + description: | +Clear and concise description of what you expected to happen. +validations: + required: false + - type: input +id: mdbversion +attributes: + label: MonetDB release + placeholder: e.g., Dec2023_SP1, 11.49.1 +validations: + required: true + - type: dropdown +id: binsource +attributes: + label: Executables source + options: +- "Release packages" +- "Self compiled and installed" +validations: + required: true + - type: input +id: osversion +attributes: + label: Operating System + placeholder: e.g., Fedora Linux 39 (Workstation Edition) +validations: + required: true + - type: textarea +id: additional +attributes: + label: Additional context + description: | +Add any other context or screenshots about the problem here. +validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,36 @@ +name: Feature request +description: Use this template for feature requests +labels: ["needs triage"] +body: + - type: textarea +id: problem +attributes: + label: Is your feature request related to a problem? Describe