Changeset: 55cd1907ad24 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=55cd1907ad24
Modified Files:
        monetdb5/modules/mal/tablet.c
        sql/backends/monet5/sql_upgrades.c
Branch: default
Log Message:

Merge with Dec2016 branch.


diffs (78 lines):

diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c
--- a/monetdb5/modules/mal/tablet.c
+++ b/monetdb5/modules/mal/tablet.c
@@ -959,6 +959,9 @@ SQLworker_column(READERtask *task, int c
        int i;
        Column *fmt = task->as->format;
 
+       if (fmt[col].c == NULL)
+               return 0;
+
        /* watch out for concurrent threads */
        MT_lock_set(&mal_copyLock);
        if (!fmt[col].skip && BATcapacity(fmt[col].c) < BATcount(fmt[col].c) + 
task->next) {
@@ -1617,6 +1620,7 @@ SQLload_file(Client cntxt, Tablet *as, b
        BUN cnt = 0, cntstart = 0, leftover = 0;
        int res = 0;            /* < 0: error, > 0: success, == 0: continue 
processing */
        int j;
+       BUN firstcol;
        BUN i, attr;
        READERtask *task = (READERtask *) GDKzalloc(sizeof(READERtask));
        READERtask ptask[MAXWORKERS];
@@ -1762,10 +1766,13 @@ SQLload_file(Client cntxt, Tablet *as, b
 #ifdef MLOCK_TST
        mlock(task->b->buf, task->b->size);
 #endif
+       for (firstcol = 0; firstcol < task->as->nr_attrs; firstcol++)
+               if (task->as->format[firstcol].c != NULL)
+                       break;
        while (res == 0 && cnt < task->maxrow) {
 
                // track how many elements are in the aggregated BATs
-               cntstart = BATcount(task->as->format[0].c);
+               cntstart = BATcount(task->as->format[firstcol].c);
                /* block until the producer has data available */
                MT_sema_down(&task->consumer);
                cnt += task->top[task->cur];
@@ -1857,9 +1864,9 @@ SQLload_file(Client cntxt, Tablet *as, b
 
 #ifdef _DEBUG_TABLET_
                mnstr_printf(GDKout, "#Trim bbest %d table size " BUNFMT " rows 
found so far " BUNFMT "\n",
-                                        best, BATcount(as->format[0].c), 
task->cnt);
+                                        best, 
BATcount(as->format[firstcol].c), task->cnt);
 #endif
-               if (best && BATcount(as->format[0].c)) {
+               if (best && BATcount(as->format[firstcol].c)) {
                        BUN limit;
                        int width;
 
@@ -1920,7 +1927,7 @@ SQLload_file(Client cntxt, Tablet *as, b
                                 task->ateof, res);
 #endif
 
-       cnt = BATcount(task->as->format[0].c);
+       cnt = BATcount(task->as->format[firstcol].c);
        if (GDKdebug & GRPalgorithms) {
                mnstr_printf(GDKout, "#COPY reader time " LLFMT " line break " 
LLFMT " io " LLFMT "\n",
                                         total, lio, iototal);
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -483,7 +483,7 @@ sql_update_geom(Client c, mvc *sql, int 
 }
 
 static str
-sql_update_default(Client c, mvc *sql)
+sql_update_dec2016(Client c, mvc *sql)
 {
        size_t bufsize = 12240, pos = 0;
        char *buf = GDKmalloc(bufsize), *err = NULL;
@@ -1284,7 +1284,7 @@ SQLupgrades(Client c, mvc *m)
 
        sql_find_subtype(&tp, "clob", 0, 0);
        if (!sql_bind_func3(m->sa, s, "createorderindex", &tp, &tp, &tp, 
F_PROC)) {
-               if ((err = sql_update_default(c, m)) != NULL) {
+               if ((err = sql_update_dec2016(c, m)) != NULL) {
                        fprintf(stderr, "!%s\n", err);
                        GDKfree(err);
                }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to