Changeset: ca240942cc9d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ca240942cc9d
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_statement.c
        sql/include/sql_catalog.h
        sql/storage/bat/bat_storage.c
Branch: dict
Log Message:

merged with default


diffs (truncated from 5196 to 300 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -71,9 +71,6 @@
 %bcond_without fits
 %endif
 
-%{!?__python3: %global __python3 /usr/bin/python3}
-%{!?python3_sitelib: %global python3_sitelib %(%{__python3} -c "from 
distutils.sysconfig import get_python_lib; print(get_python_lib())")}
-
 Name: %{name}
 Version: %{version}
 Release: %{release}
@@ -98,7 +95,7 @@ BuildRequires: hardlink
 BuildRequires: cmake3 >= 3.12
 BuildRequires: gcc
 BuildRequires: bison
-BuildRequires: /usr/bin/python3
+BuildRequires: python3-devel
 %if %{?rhel:1}%{!?rhel:0}
 # RH 7 (and for readline also 8)
 BuildRequires: bzip2-devel
@@ -682,7 +679,6 @@ package.  You probably don't need this, 
 Summary: MonetDB - Monet Database Management System
 Group: Applications/Databases
 Requires: %{name}-client-tests = %{version}-%{release}
-Requires: /usr/bin/python3
 BuildArch: noarch
 
 %description testing-python
@@ -842,6 +838,15 @@ else
     /usr/bin/hardlink -cv %{buildroot}%{_datadir}/selinux
 fi
 
+# update shebang lines for Python scripts
+%if %{?py3_shebang_fix:1}%{!?py3_shebang_fix:0}
+    # Fedora has py3_shebang_fix macro
+    %{py3_shebang_fix} %{buildroot}%{_bindir}/*.py
+%else
+    # EPEL does not, but we can use the script directly
+    /usr/bin/pathfix.py -pni "%{__python3} -s" %{buildroot}%{_bindir}/*.py
+%endif
+
 %changelog
 * Thu Sep 30 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.11-20210930
 - Rebuilt.
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
@@ -36,7 +36,7 @@ main(void)
                        monetdbe_column* rcol;
                        if ((err = monetdbe_result_fetch(result, &rcol, c)) != 
NULL)
                                error(err)
-                       switch (rcol->type) {
+                       switch (rcol->type.type) {
                                case monetdbe_int32_t: {
                                        monetdbe_column_int32_t * col = 
(monetdbe_column_int32_t *) rcol;
                                        if (col->data[r] == col->null_value) {
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
@@ -43,7 +43,7 @@ main(void)
                        monetdbe_column* rcol;
                        if ((err = monetdbe_result_fetch(result, &rcol, c)) != 
NULL)
                                error(err)
-                       switch (rcol->type) {
+                       switch (rcol->type.type) {
                                case monetdbe_bool: {
                                        monetdbe_column_bool * col = 
(monetdbe_column_bool *) rcol;
                                        if (col->data[r] == col->null_value) {
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
@@ -44,7 +44,7 @@ main(void)
                for (size_t c = 0; c < result->ncols; c++) {
                        if ((err = monetdbe_result_fetch(result, rcol+c, c)) != 
NULL)
                                error(err)
-                       switch (rcol[c]->type) {
+                       switch (rcol[c]->type.type) {
                                case monetdbe_int32_t: {
                                        monetdbe_column_int32_t * col = 
(monetdbe_column_int32_t *) rcol[c];
                                        if (col->data[r] == col->null_value) {
@@ -129,7 +129,7 @@ main(void)
                for (size_t c = 0; c < result->ncols; c++) {
                        if ((err = monetdbe_result_fetch(result, rcol+c, c)) != 
NULL)
                                error(err)
-                       switch (rcol[c]->type) {
+                       switch (rcol[c]->type.type) {
                                case monetdbe_int32_t: {
                                        monetdbe_column_int32_t * col = 
(monetdbe_column_int32_t *) rcol[c];
                                        if (col->data[r] == col->null_value) {
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
@@ -38,11 +38,11 @@ main(void)
        int32_t i1 = 42;
        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 };
+       monetdbe_column col0 = { .type.type = monetdbe_int32_t, .data = &ints, 
.count = 2 };
 
        // str
        char* dstr[2] = { "Hello", "World" };
-       monetdbe_column col1 = { .type = monetdbe_str, .data = &dstr, .count = 
2 };
+       monetdbe_column col1 = { .type.type = monetdbe_str, .data = &dstr, 
.count = 2 };
 
        // timestamp
        monetdbe_data_date dt = { .day = 2, .month = 3, .year = 2020 };
@@ -50,25 +50,25 @@ main(void)
        monetdbe_data_timestamp t1 = { .date = dt, .time = tm };
        monetdbe_data_timestamp t2 = 
*(monetdbe_data_timestamp*)monetdbe_null(mdbe, monetdbe_timestamp);
        monetdbe_data_timestamp tss[2] = { t1, t2 };
-       monetdbe_column col2 = { .type = monetdbe_timestamp, .data = &tss, 
.count = 2 };
+       monetdbe_column col2 = { .type.type = monetdbe_timestamp, .data = &tss, 
.count = 2 };
 
        // 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 };
-       monetdbe_column col3 = { .type = monetdbe_date, .data = &dts, .count = 
2 };
+       monetdbe_column col3 = { .type.type = monetdbe_date, .data = &dts, 
.count = 2 };
 
        // time
        monetdbe_data_time tm1 = tm;
        monetdbe_data_time tm2 = *(monetdbe_data_time*)monetdbe_null(mdbe, 
monetdbe_time);
        monetdbe_data_time tms[2] = { tm1, tm2 };
-       monetdbe_column col4 = { .type = monetdbe_time, .data = &tms, .count = 
2 };
+       monetdbe_column col4 = { .type.type = monetdbe_time, .data = &tms, 
.count = 2 };
 
        // blob
        monetdbe_data_blob b1 = { .size = 1, .data = "33" };
        monetdbe_data_blob b2 = *(monetdbe_data_blob*)monetdbe_null(mdbe, 
monetdbe_blob);
        monetdbe_data_blob bs[2] = { b1, b2 };
-       monetdbe_column col5 = { .type = monetdbe_blob, .data = &bs, .count = 2 
};
+       monetdbe_column col5 = { .type.type = monetdbe_blob, .data = &bs, 
.count = 2 };
 
        monetdbe_column* dcol[6] = { &col0, &col1, &col2, &col3, &col4, &col5 };
        if ((err = monetdbe_append(mdbe, "sys", "test", (monetdbe_column**) 
&dcol, 6)) != NULL)
@@ -76,7 +76,7 @@ main(void)
 
        // str with wrong utf8
        char* dstr2[2] = { "\xc3\x28", "\xe2\x28\xa1" };
-       monetdbe_column col12 = { .type = monetdbe_str, .data = &dstr2, .count 
= 2 };
+       monetdbe_column col12 = { .type.type = monetdbe_str, .data = &dstr2, 
.count = 2 };
        monetdbe_column* dcol2[6] = { &col0, &col12, &col2, &col3, &col4, &col5 
};
        if ((err = monetdbe_append(mdbe, "sys", "test", (monetdbe_column**) 
&dcol2, 6)) == NULL)
                error("Invalid UTF-8 string expected")
@@ -89,7 +89,7 @@ main(void)
                for (size_t c = 0; c < result->ncols; c++) {
                        if ((err = monetdbe_result_fetch(result, rcol+c, c)) != 
NULL)
                                error(err)
-                       switch (rcol[c]->type) {
+                       switch (rcol[c]->type.type) {
                                case monetdbe_int32_t: {
                                        monetdbe_column_int32_t * col = 
(monetdbe_column_int32_t *) rcol[c];
                                        if (col->data[r] == col->null_value) {
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
@@ -38,7 +38,7 @@ main(void)
                        monetdbe_column* rcol;
                        if ((err = monetdbe_result_fetch(result, &rcol, c)) != 
NULL)
                                error(err)
-                       switch (rcol->type) {
+                       switch (rcol->type.type) {
                                case monetdbe_blob: {
                                        monetdbe_column_blob * col = 
(monetdbe_column_blob *) rcol;
                                        if (!col->data[r].data) {
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
@@ -38,7 +38,7 @@ main(void)
                        monetdbe_column* rcol;
                        if ((err = monetdbe_result_fetch(result, &rcol, c)) != 
NULL)
                                error(err)
-                       switch (rcol->type) {
+                       switch (rcol->type.type) {
                                case monetdbe_int32_t: {
                                        monetdbe_column_int32_t * col = 
(monetdbe_column_int32_t *) rcol;
                                        if (col->data[r] == col->null_value) {
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
@@ -36,7 +36,7 @@ main(void)
                        monetdbe_column* rcol;
                        if ((err = monetdbe_result_fetch(result, &rcol, c)) != 
NULL)
                                error(err)
-                       switch (rcol->type) {
+                       switch (rcol->type.type) {
                                case monetdbe_bool: {
                                        monetdbe_column_bool * col = 
(monetdbe_column_bool *) rcol;
                                        if (col->data[r] == col->null_value) {
diff --git a/ctest/tools/monetdbe/example_proxy.c 
b/ctest/tools/monetdbe/example_proxy.c
--- a/ctest/tools/monetdbe/example_proxy.c
+++ b/ctest/tools/monetdbe/example_proxy.c
@@ -38,7 +38,7 @@ main(int argc, char** argv)
                        monetdbe_column* rcol;
                        if ((err = monetdbe_result_fetch(result, &rcol, c)) != 
NULL)
                                error(err)
-                       switch (rcol->type) {
+                       switch (rcol->type.type) {
                                case monetdbe_int32_t: {
                                        monetdbe_column_int32_t * col = 
(monetdbe_column_int32_t *) rcol;
                                        if (col->data[r] == col->null_value) {
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
@@ -39,7 +39,7 @@ main(void)
                        monetdbe_column* rcol;
                        if ((err = monetdbe_result_fetch(result, &rcol, c)) != 
NULL)
                                error(err)
-                       switch (rcol->type) {
+                       switch (rcol->type.type) {
                                case monetdbe_int32_t: {
                                        monetdbe_column_int32_t * col = 
(monetdbe_column_int32_t *) rcol;
                                        if (col->data[r] == col->null_value) {
diff --git a/ctest/tools/monetdbe/test_helper_template.h 
b/ctest/tools/monetdbe/test_helper_template.h
--- a/ctest/tools/monetdbe/test_helper_template.h
+++ b/ctest/tools/monetdbe/test_helper_template.h
@@ -29,7 +29,7 @@ bool CHECK_COLUMN_FUNC (
 
     const monetdbe_types expected_type = TPE_ENUM;
 
-    if (rcol->type != expected_type) {
+    if (rcol->type.type != expected_type) {
         printf("Actual column and expected column differ in type.\n");
         return false;
     }
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -835,7 +835,7 @@ BBPcheckbats(unsigned bbpversion)
                                }
                        }
 #else
-                       /* first check string offset heap without widht,
+                       /* first check string offset heap without width,
                         * then with */
 #ifdef GDKLIBRARY_TAILN
                        /* if bbpversion > GDKLIBRARY_TAILN, the offset heap can
diff --git a/gdk/gdk_calc.c b/gdk/gdk_calc.c
--- a/gdk/gdk_calc.c
+++ b/gdk/gdk_calc.c
@@ -16835,6 +16835,7 @@ VARconvert(ValPtr ret, const ValRecord *
                        nils = BUN_NONE;
                }
                ret->val.mval = tmp.val.btval;
+               ret->len = ATOMsize(TYPE_msk);
        } else if (v->vtype == TYPE_msk) {
                ValRecord tmp;
                tmp.vtype = TYPE_bit;
@@ -16845,9 +16846,11 @@ VARconvert(ValPtr ret, const ValRecord *
                if (v->vtype == TYPE_void ||
                    (*ATOMcompare(v->vtype))(VALptr(v),
                                             ATOMnilptr(v->vtype)) == 0) {
-                       ret->val.sval = GDKstrdup(str_nil);
+                       if (VALinit(ret, TYPE_str, str_nil) == NULL)
+                               return GDK_FAIL;
                } else if (BATatoms[v->vtype].atomToStr == 
BATatoms[TYPE_str].atomToStr) {
-                       ret->val.sval = GDKstrdup(v->val.sval);
+                       if (VALinit(ret, TYPE_str, v->val.sval) == NULL)
+                               return GDK_FAIL;
                } else {
                        ret->len = 0;
                        ret->val.sval = NULL;
@@ -16858,25 +16861,24 @@ VARconvert(ValPtr ret, const ValRecord *
                                GDKfree(ret->val.sval);
                                ret->val.sval = NULL;
                                ret->len = 0;
-                               nils = BUN_NONE;
-                       }
-               }
-               if (ret->val.sval == NULL)
-                       nils = BUN_NONE;
+                               return GDK_FAIL;
+                       }
+               }
        } else if (ret->vtype == TYPE_void) {
                if (abort_on_error &&
                    ATOMcmp(v->vtype, VALptr(v), ATOMnilptr(v->vtype)) != 0) {
                        GDKerror("22003!cannot convert non-nil to void.\n");
-                       nils = BUN_NONE;
+                       return GDK_FAIL;
                }
                ret->val.oval = oid_nil;
+               ret->len = ATOMsize(TYPE_void);
        } else if (v->vtype == TYPE_void) {
                if (VALinit(ret, ret->vtype, ATOMnilptr(ret->vtype)) == NULL)
-                       nils = BUN_NONE;
+                       return GDK_FAIL;
        } else if (v->vtype == TYPE_str) {
                if (strNil(v->val.sval)) {
                        if (VALinit(ret, ret->vtype, ATOMnilptr(ret->vtype)) == 
NULL)
-                               nils = BUN_NONE;
+                               return GDK_FAIL;
                } else if (ATOMstorage(ret->vtype) == TYPE_ptr) {
                        nils = BUN_NONE + 1;
                } else {
@@ -16912,7 +16914,7 @@ VARconvert(ValPtr ret, const ValRecord *
                                                 "to type %s failed.\n",
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to