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

Reply via email to