Changeset: c34045dafe06 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c34045dafe06 Modified Files: tools/merovingian/daemon/controlrunner.c tools/monetdbe/monetdbe.c Branch: default Log Message:
Merged with Oct2020 diffs (truncated from 25002 to 300 lines): diff --git a/Config.cmake.in b/Config.cmake.in --- a/Config.cmake.in +++ b/Config.cmake.in @@ -12,6 +12,7 @@ include("${CMAKE_CURRENT_LIST_DIR}/monet include("${CMAKE_CURRENT_LIST_DIR}/streamTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/mapiTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/matomicTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/mstringTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/gdkTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/monetdb5Targets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/sqlTargets.cmake") diff --git a/ctest/tools/monetdbe/example1.c b/ctest/tools/monetdbe/example1.c --- a/ctest/tools/monetdbe/example1.c +++ b/ctest/tools/monetdbe/example1.c @@ -48,7 +48,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example2.c b/ctest/tools/monetdbe/example2.c --- a/ctest/tools/monetdbe/example2.c +++ b/ctest/tools/monetdbe/example2.c @@ -120,7 +120,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example_append.c b/ctest/tools/monetdbe/example_append.c --- a/ctest/tools/monetdbe/example_append.c +++ b/ctest/tools/monetdbe/example_append.c @@ -56,7 +56,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol[c]; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); @@ -141,7 +141,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol[c]; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example_append_raw.c b/ctest/tools/monetdbe/example_append_raw.c --- a/ctest/tools/monetdbe/example_append_raw.c +++ b/ctest/tools/monetdbe/example_append_raw.c @@ -39,7 +39,7 @@ main(void) int32_t i2 = *(int32_t*)monetdbe_null(mdbe, monetdbe_int32_t); int32_t ints[2] = { i1, i2 }; monetdbe_column col0 = { .type = monetdbe_int32_t, .data = &ints, .count = 2 }; - + // str char* dstr[2] = { "Hello", "World" }; monetdbe_column col1 = { .type = monetdbe_str, .data = &dstr, .count = 2 }; @@ -52,7 +52,7 @@ main(void) monetdbe_data_timestamp tss[2] = { t1, t2 }; monetdbe_column col2 = { .type = monetdbe_timestamp, .data = &tss, .count = 2 }; - // date + // date monetdbe_data_date d1 = dt; monetdbe_data_date d2 = *(monetdbe_data_date*)monetdbe_null(mdbe, monetdbe_date); monetdbe_data_date dts[2] = { d1, d2 }; @@ -94,7 +94,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol[c]; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example_blob.c b/ctest/tools/monetdbe/example_blob.c --- a/ctest/tools/monetdbe/example_blob.c +++ b/ctest/tools/monetdbe/example_blob.c @@ -55,7 +55,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example_connections.c b/ctest/tools/monetdbe/example_connections.c --- a/ctest/tools/monetdbe/example_connections.c +++ b/ctest/tools/monetdbe/example_connections.c @@ -50,7 +50,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example_decimals.c b/ctest/tools/monetdbe/example_decimals.c --- a/ctest/tools/monetdbe/example_decimals.c +++ b/ctest/tools/monetdbe/example_decimals.c @@ -119,7 +119,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example_remote.c b/ctest/tools/monetdbe/example_remote.c --- a/ctest/tools/monetdbe/example_remote.c +++ b/ctest/tools/monetdbe/example_remote.c @@ -49,7 +49,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/ctest/tools/monetdbe/example_temporal.c b/ctest/tools/monetdbe/example_temporal.c --- a/ctest/tools/monetdbe/example_temporal.c +++ b/ctest/tools/monetdbe/example_temporal.c @@ -79,7 +79,7 @@ main(void) } case monetdbe_str: { monetdbe_column_str * col = (monetdbe_column_str *) rcol; - if (col->is_null(col->data[r])) { + if (col->is_null(col->data+r)) { printf("NULL"); } else { printf("%s", (char*) col->data[r]); diff --git a/documentation/source/build.rst b/documentation/source/build.rst --- a/documentation/source/build.rst +++ b/documentation/source/build.rst @@ -61,12 +61,15 @@ Evidently there are several options to c ``$SOURCE/cmake/monetdb-options.cmake`` The important once to choose from are ``-DCMAKE_BUILD_TYPE``, which -takes the value Release or Debug. The former creates the binary ready -for shipping, including all compiler optimizations that come with it. -The Debug mode is necessary if you plan to debug the binary and needs -access to the symbol tables. This build type also typically leads to a -slower execution time, because also all kinds of assertions are being -checked. +takes the value Release, Debug, RelWithDebInfo and MinSizeRel. The +first creates the binary ready for shipping, including all compiler +optimizations that come with it. The Debug mode is necessary if you +plan to debug the binary and needs access to the symbol tables. This +build type also typically leads to a slower execution time, because +also all kinds of assertions are being checked. The RelWithDebInfo +combines Release and Debug with both compiler optimizations and symbol +tables for debugging. Finally MinSizeRel is a Release build optimized +for binary size instead of speed. Other relevant properties are also ``-DASSERT=ON`` and ``-DSTRICT=ON``, used in combination with a Debug build, e.g.:: @@ -124,7 +127,7 @@ To compile MonetDB (as normal user):: mkdir build cd build cmake -G "Visual Studio 15 2017" -DCMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX=%HOME%\install -A x64 .. - cmake --build . --target ALL_BUILD + cmake --build . --target ALL_BUILD --config Release cmake --build . --target INSTALL set PATH=%HOME%\install\bin;%HOME%\install\lib;%HOME%\install\lib\monetdb5;\vcpkg\installed\x64-windows\bin;\vcpkg\installed\x64-windows\debug\bin;%PATH% cmake --build . --target RUN_TESTS @@ -133,5 +136,27 @@ To compile MonetDB (as normal user):: MacOS ===== +Using homebrew install at least current :: + + bison + openssl + +optional:: + + readline + +To compile MonetDB (as normal user):: + + hg clone http://dev.monetdb.org/hg/MonetDB/ + + cd MonetDB + mkdir build + cd build + PKG_CONFIG_PATH=/usr/local/opt/readline/lib/pkgconfig/ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$home\install -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl .. + cmake --build . + cmake --build . --target install + cmake --build . --target test + cmake --build . --target mtest + How to start ============ diff --git a/monetdb5/modules/mal/batcalc.c b/monetdb5/modules/mal/batcalc.c --- a/monetdb5/modules/mal/batcalc.c +++ b/monetdb5/modules/mal/batcalc.c @@ -1049,9 +1049,10 @@ CMDconvertbat(MalStkPtr stk, InstrPtr pc BBPunfix(b->batCacheid); throw(MAL, "batcalc.convert", SQLSTATE(HY002) RUNTIME_OBJECT_MISSING); } - if (ATOMtype(s->ttype) != TYPE_oid) { + if (s && ATOMtype(s->ttype) != TYPE_oid) { BBPunfix(b->batCacheid); - BBPunfix(s->batCacheid); + if (s) + BBPunfix(s->batCacheid); throw(MAL, "batcalc.convert", SQLSTATE(42000) ILLEGAL_ARGUMENT); } } diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c --- a/sql/common/sql_types.c +++ b/sql/common/sql_types.c @@ -1833,6 +1833,10 @@ sqltypeinit( sql_allocator *sa) sql_create_func(sa, "year", "mtime", "year", FALSE, FALSE, SCALE_NONE, 0, INT, 1, MONINT); sql_create_func(sa, "month", "mtime", "month", FALSE, FALSE, SCALE_NONE, 0, INT, 1, MONINT); sql_create_func(sa, "day", "mtime", "day", FALSE, FALSE, SCALE_NONE, 0, LNG, 1, DAYINT); + sql_create_func(sa, "hour", "mtime", "hours", FALSE, FALSE, SCALE_NONE, 0, INT, 1, DAYINT); + sql_create_func(sa, "minute", "mtime", "minutes", FALSE, FALSE, SCALE_NONE, 0, INT, 1, DAYINT); + sql_create_func(sa, "second", "mtime", "seconds", FALSE, FALSE, SCALE_NONE, 0, INT, 1, DAYINT); + sql_create_func(sa, "day", "mtime", "day", FALSE, FALSE, SCALE_NONE, 0, LNG, 1, SECINT); sql_create_func(sa, "hour", "mtime", "hours", FALSE, FALSE, SCALE_NONE, 0, INT, 1, SECINT); sql_create_func(sa, "minute", "mtime", "minutes", FALSE, FALSE, SCALE_NONE, 0, INT, 1, SECINT); sql_create_func(sa, "second", "mtime", "seconds", FALSE, FALSE, SCALE_NONE, 0, INT, 1, SECINT); 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 @@ -3530,770 +3530,782 @@ insert into sys.args values (37359, 922, insert into sys.args values (37360, 922, 'arg_1', 'day_interval', 4, 0, 1, 1); insert into sys.functions values (923, 'hour', 'hours', 'mtime', 0, 1, false, false, false, 2000, true, false); insert into sys.args values (37361, 923, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37362, 923, 'arg_1', 'sec_interval', 13, 0, 1, 1); +insert into sys.args values (37362, 923, 'arg_1', 'day_interval', 4, 0, 1, 1); insert into sys.functions values (924, 'minute', 'minutes', 'mtime', 0, 1, false, false, false, 2000, true, false); insert into sys.args values (37363, 924, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37364, 924, 'arg_1', 'sec_interval', 13, 0, 1, 1); +insert into sys.args values (37364, 924, 'arg_1', 'day_interval', 4, 0, 1, 1); insert into sys.functions values (925, 'second', 'seconds', 'mtime', 0, 1, false, false, false, 2000, true, false); insert into sys.args values (37365, 925, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37366, 925, 'arg_1', 'sec_interval', 13, 0, 1, 1); -insert into sys.functions values (926, 'next_value_for', 'next_value', 'sql', 0, 1, true, false, false, 2000, true, true); +insert into sys.args values (37366, 925, 'arg_1', 'day_interval', 4, 0, 1, 1); +insert into sys.functions values (926, 'day', 'day', 'mtime', 0, 1, false, false, false, 2000, true, false); insert into sys.args values (37367, 926, 'res_0', 'bigint', 64, 0, 0, 0); -insert into sys.args values (37368, 926, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37369, 926, 'arg_2', 'char', 0, 0, 1, 2); -insert into sys.functions values (927, 'get_value_for', 'get_value', 'sql', 0, 1, false, false, false, 2000, true, true); -insert into sys.args values (37370, 927, 'res_0', 'bigint', 64, 0, 0, 0); -insert into sys.args values (37371, 927, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37372, 927, 'arg_2', 'char', 0, 0, 1, 2); -insert into sys.functions values (928, 'restart', 'restart', 'sql', 0, 1, true, false, false, 2000, true, true); -insert into sys.args values (37373, 928, 'res_0', 'bigint', 64, 0, 0, 0); -insert into sys.args values (37374, 928, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37375, 928, 'arg_2', 'char', 0, 0, 1, 2); -insert into sys.args values (37376, 928, 'arg_3', 'bigint', 64, 0, 1, 3); -insert into sys.functions values (929, 'index', 'index', 'calc', 0, 1, false, false, false, 2000, true, true); -insert into sys.args values (37377, 929, 'res_0', 'tinyint', 8, 0, 0, 0); -insert into sys.args values (37378, 929, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37379, 929, 'arg_2', 'boolean', 1, 0, 1, 2); -insert into sys.functions values (930, 'index', 'index', 'calc', 0, 1, false, false, false, 2000, true, true); -insert into sys.args values (37380, 930, 'res_0', 'smallint', 16, 0, 0, 0); -insert into sys.args values (37381, 930, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37382, 930, 'arg_2', 'boolean', 1, 0, 1, 2); -insert into sys.functions values (931, 'index', 'index', 'calc', 0, 1, false, false, false, 2000, true, true); -insert into sys.args values (37383, 931, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37384, 931, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37385, 931, 'arg_2', 'boolean', 1, 0, 1, 2); -insert into sys.functions values (932, 'strings', 'strings', 'calc', 0, 1, false, false, false, 2000, true, false); -insert into sys.args values (37386, 932, 'res_0', 'char', 0, 0, 0, 0); -insert into sys.args values (37387, 932, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.functions values (933, 'locate', 'locate', 'str', 0, 1, false, false, false, 2000, true, false); -insert into sys.args values (37388, 933, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37389, 933, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37390, 933, 'arg_2', 'char', 0, 0, 1, 2); -insert into sys.functions values (934, 'locate', 'locate', 'str', 0, 1, false, false, false, 2000, true, false); -insert into sys.args values (37391, 934, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37392, 934, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37393, 934, 'arg_2', 'char', 0, 0, 1, 2); -insert into sys.args values (37394, 934, 'arg_3', 'int', 32, 0, 1, 3); -insert into sys.functions values (935, 'charindex', 'locate', 'str', 0, 1, false, false, false, 2000, true, false); -insert into sys.args values (37395, 935, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37396, 935, 'arg_1', 'char', 0, 0, 1, 1); -insert into sys.args values (37397, 935, 'arg_2', 'char', 0, 0, 1, 2); -insert into sys.functions values (936, 'charindex', 'locate', 'str', 0, 1, false, false, false, 2000, true, false); -insert into sys.args values (37398, 936, 'res_0', 'int', 32, 0, 0, 0); -insert into sys.args values (37399, 936, 'arg_1', 'char', 0, 0, 1, 1); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list