Changeset: 674ef27d77e6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/674ef27d77e6
Modified Files:
        NT/monetdb_config.h.in
        configure.ag
        gdk/gdk_align.c
        gdk/gdk_batop.c
        gdk/gdk_logger.c
        gdk/gdk_private.h
        gdk/gdk_storage.c
        gdk/gdk_string.c
        gdk/gdk_utils.c
        monetdb5/modules/atoms/str.c
        sql/backends/monet5/sql.c
        sql/storage/bat/bat_storage.c
        sql/storage/store.c
Branch: Jun2020
Log Message:

Merge with Nov2019 branch.


diffs (44 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -2454,6 +2454,14 @@ mvc_result_set_wrap( Client cntxt, MalBl
        b = BATdescriptor(bid);
        if ( b == NULL)
                throw(MAL,"sql.resultset", SQLSTATE(HY005) "Cannot access 
column descriptor");
+       if (isVIEW(b)) {
+               BAT *bn = COLcopy(b, b->ttype, true, TRANSIENT);
+               BBPunfix(b->batCacheid);
+               if (bn == NULL)
+                       throw(MAL, "sql.resultset", GDK_EXCEPTION);
+               b = bn;
+               assert(!isVIEW(b));
+       }
        res = *res_id = mvc_result_table(m, mb->tag, pci->argc - (pci->retc + 
5), Q_TABLE, b);
        if (res < 0)
                msg = createException(SQL, "sql.resultSet", SQLSTATE(45000) 
"Result table construction failed");
@@ -2479,12 +2487,21 @@ mvc_result_set_wrap( Client cntxt, MalBl
                colname = BUNtvar(iteratr,o);
                tpename = BUNtvar(itertpe,o);
                b = BATdescriptor(bid);
-               if ( b == NULL)
+               if ( b == NULL) {
                        msg= 
createException(MAL,"sql.resultset",SQLSTATE(HY005) "Cannot access column 
descriptor ");
-               else if (mvc_result_column(m, tblname, colname, tpename, 
*digits++, *scaledigits++, b))
+                       break;
+               }
+               if (isVIEW(b)) {
+                       BAT *bn = COLcopy(b, b->ttype, true, TRANSIENT);
+                       BBPunfix(b->batCacheid);
+                       if (bn == NULL)
+                               throw(MAL, "sql.resultset", GDK_EXCEPTION);
+                       b = bn;
+                       assert(!isVIEW(b));
+               }
+               if (mvc_result_column(m, tblname, colname, tpename, *digits++, 
*scaledigits++, b))
                        msg = createException(SQL, "sql.resultset", 
SQLSTATE(42000) "Cannot access column descriptor %s.%s",tblname,colname);
-               if( b)
-                       BBPunfix(bid);
+               BBPunfix(b->batCacheid);
        }
        /* now send it to the channel cntxt->fdout */
        if (mvc_export_result(cntxt->sqlcontext, cntxt->fdout, res, true, 
mb->starttime, mb->optimize))
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to