Changeset: dd96080921be for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dd96080921be
Modified Files:
        sql/backends/monet5/sql.c
Branch: default
Log Message:

Merge with Jul2015 branch.


diffs (truncated from 597 to 300 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
@@ -483,7 +483,7 @@ table_has_updates(sql_trans *tr, sql_tab
                        return -1;
                cnt |= BATcount(b) > 0;
                if (isTable(t) && t->access != TABLE_READONLY && (t->base.flag 
!= TR_NEW /* alter */ ) &&
-                   t->persistence == SQL_PERSIST && !t->commit_action)
+                   t->persistence == SQL_PERSIST && !t->commit_action)
                        cnt |= store_funcs.count_col(tr, c, 0) > 0;
                BBPunfix(b->batCacheid);
        }
@@ -539,7 +539,7 @@ alter_table(mvc *sql, char *sname, sql_t
                        /* for non empty check for nulls */
                        if (c->null == 0) {
                                void *nilptr = 
ATOMnilptr(c->type.type->localtype);
-                               rids *nils = 
table_funcs.rids_select(sql->session->tr, nc, nilptr, NULL, NULL);  
+                               rids *nils = 
table_funcs.rids_select(sql->session->tr, nc, nilptr, NULL, NULL);
                                int has_nils = (table_funcs.rids_next(nils) != 
oid_nil);
 
                                table_funcs.rids_destroy(nils);
@@ -551,7 +551,7 @@ alter_table(mvc *sql, char *sname, sql_t
                        mvc_default(sql, nc, c->def);
 
                if (c->storage_type != nc->storage_type) {
-                       if (c->t->access == TABLE_WRITABLE)  
+                       if (c->t->access == TABLE_WRITABLE)
                                return sql_message("40002!ALTER TABLE: SET 
STORAGE for column %s.%s only allowed on READ or INSERT ONLY tables", 
c->t->base.name, c->base.name);
                        nc->base.rtime = nc->base.wtime = 
sql->session->tr->wtime;
                        mvc_storage(sql, nc, c->storage_type);
@@ -641,7 +641,7 @@ drop_table(mvc *sql, char *sname, char *
        }
 
        if (!drop_action && mvc_check_dependency(sql, t->base.id, 
TABLE_DEPENDENCY, NULL))
-                return sql_message("42000!DROP TABLE: unable to drop table %s 
(there are database objects which depend on it)\n", t->base.name);
+               return sql_message("42000!DROP TABLE: unable to drop table %s 
(there are database objects which depend on it)\n", t->base.name);
 
        mvc_drop_table(sql, s, t, drop_action);
        return MAL_SUCCEED;
@@ -692,7 +692,7 @@ drop_key(mvc *sql, char *sname, char *kn
        if ((key = mvc_bind_key(sql, ss, kname)) == NULL)
                return sql_message("42000!ALTER TABLE: no such constraint 
'%s'", kname);
        if (!drop_action && mvc_check_dependency(sql, key->base.id, 
KEY_DEPENDENCY, NULL))
-                return sql_message("42000!ALTER TABLE: cannot drop constraint 
'%s': there are database objects which depend on it", key->base.name);
+               return sql_message("42000!ALTER TABLE: cannot drop constraint 
'%s': there are database objects which depend on it", key->base.name);
        mvc_drop_key(sql, ss, key, drop_action);
        return MAL_SUCCEED;
 }
@@ -773,7 +773,7 @@ drop_seq(mvc *sql, char *sname, char *na
                return sql_message("42000!DROP SEQUENCE: insufficient 
privileges for '%s' in schema '%s'", stack_get_string(sql, "current_user"), 
s->base.name);
        }
        if (mvc_check_dependency(sql, seq->base.id, BEDROPPED_DEPENDENCY, NULL))
-                return sql_message("2B000!DROP SEQUENCE: unable to drop 
sequence %s (there are database objects which depend on it)\n", seq->base.name);
+               return sql_message("2B000!DROP SEQUENCE: unable to drop 
sequence %s (there are database objects which depend on it)\n", seq->base.name);
 
        sql_trans_drop_sequence(sql->session->tr, s, seq, 0);
        return NULL;
@@ -803,7 +803,7 @@ drop_func(mvc *sql, char *sname, char *n
                                return sql_message("DROP %s%s: access denied 
for %s to schema ;'%s'", KF, F, stack_get_string(sql, "current_user"), 
s->base.name);
                        }
                        if (!action && mvc_check_dependency(sql, func->base.id, 
!IS_PROC(func) ? FUNC_DEPENDENCY : PROC_DEPENDENCY, NULL))
-                                return sql_message("DROP %s%s: there are 
database objects dependent on %s%s %s;", KF, F, kf, f, func->base.name);
+                               return sql_message("DROP %s%s: there are 
database objects dependent on %s%s %s;", KF, F, kf, f, func->base.name);
 
                        mvc_drop_func(sql, s, func, action);
                }
@@ -887,7 +887,7 @@ UPGdrop_func(Client cntxt, MalBlkPtr mb,
                return msg;
 
        func = sql_trans_find_func(sql->session->tr, id);
-       if (func) 
+       if (func)
                mvc_drop_func(sql, func->s, func, 0);
        return msg;
 }
@@ -1026,25 +1026,25 @@ rel_check_tables(sql_table *nt, sql_tabl
 {
        node *n, *m;
 
-       if (cs_size(&nt->columns) != cs_size(&nnt->columns)) 
+       if (cs_size(&nt->columns) != cs_size(&nnt->columns))
                return sql_message("3F000!ALTER MERGE TABLE: to be added table 
doesn't match MERGE TABLE definition");
        for (n = nt->columns.set->h, m = nnt->columns.set->h; n && m; n = 
n->next, m = m->next) {
                sql_column *nc = n->data;
                sql_column *mc = m->data;
 
-               if (subtype_cmp(&nc->type, &mc->type) != 0) 
+               if (subtype_cmp(&nc->type, &mc->type) != 0)
                        return sql_message("3F000!ALTER MERGE TABLE: to be 
added table column type doesn't match MERGE TABLE definition");
        }
-       if (cs_size(&nt->idxs) != cs_size(&nnt->idxs)) 
+       if (cs_size(&nt->idxs) != cs_size(&nnt->idxs))
                return sql_message("3F000!ALTER MERGE TABLE: to be added table 
index doesn't match MERGE TABLE definition");
        if (cs_size(&nt->idxs))
-       for (n = nt->idxs.set->h, m = nnt->idxs.set->h; n && m; n = n->next, m 
= m->next) {
-               sql_idx *ni = n->data;
-               sql_idx *mi = m->data;
-
-               if (ni->type != mi->type) 
-                       return sql_message("3F000!ALTER MERGE TABLE: to be 
added table index type doesn't match MERGE TABLE definition");
-       }
+               for (n = nt->idxs.set->h, m = nnt->idxs.set->h; n && m; n = 
n->next, m = m->next) {
+                       sql_idx *ni = n->data;
+                       sql_idx *mi = m->data;
+
+                       if (ni->type != mi->type)
+                               return sql_message("3F000!ALTER MERGE TABLE: to 
be added table index type doesn't match MERGE TABLE definition");
+               }
        return MAL_SUCCEED;
 }
 
@@ -1052,7 +1052,7 @@ static char *
 alter_table_add_table(mvc *sql, char *msname, char *mtname, char *psname, char 
*ptname)
 {
        sql_schema *ms = mvc_bind_schema(sql, msname), *ps = 
mvc_bind_schema(sql, psname);
-       sql_table *mt = NULL, *pt = NULL; 
+       sql_table *mt = NULL, *pt = NULL;
 
        if (ms)
                mt = mvc_bind_table(sql, ms, mtname);
@@ -1061,7 +1061,7 @@ alter_table_add_table(mvc *sql, char *ms
        if (mt && pt) {
                char *msg;
                node *n = cs_find_id(&mt->tables, pt->base.id);
-                       
+
                if (n)
                        return sql_message("42S02!ALTER TABLE: table '%s.%s' is 
already part of the MERGE TABLE '%s.%s'", psname, ptname, msname, mtname);
                if ((msg = rel_check_tables(mt, pt)) != NULL)
@@ -1079,7 +1079,7 @@ static char *
 alter_table_del_table(mvc *sql, char *msname, char *mtname, char *psname, char 
*ptname, int drop_action)
 {
        sql_schema *ms = mvc_bind_schema(sql, msname), *ps = 
mvc_bind_schema(sql, psname);
-       sql_table *mt = NULL, *pt = NULL; 
+       sql_table *mt = NULL, *pt = NULL;
 
        if (ms)
                mt = mvc_bind_table(sql, ms, mtname);
@@ -1087,7 +1087,7 @@ alter_table_del_table(mvc *sql, char *ms
                pt = mvc_bind_table(sql, ps, ptname);
        if (mt && pt) {
                node *n = NULL;
-             
+
                if (!pt || (n = cs_find_id(&mt->tables, pt->base.id)) == NULL)
                        return sql_message("42S02!ALTER TABLE: table '%s.%s' 
isn't part of the MERGE TABLE '%s.%s'", psname, ptname, msname, mtname);
 
@@ -1104,7 +1104,7 @@ static char *
 alter_table_set_access(mvc *sql, char *sname, char *tname, int access)
 {
        sql_schema *s = mvc_bind_schema(sql, sname);
-       sql_table *t = NULL; 
+       sql_table *t = NULL;
 
        if (s)
                t = mvc_bind_table(sql, s, tname);
@@ -1112,7 +1112,7 @@ alter_table_set_access(mvc *sql, char *s
                if (t->type == tt_merge_table)
                        return sql_message("42S02!ALTER TABLE: read only MERGE 
TABLES are not supported");
                if (t->access != access) {
-                       if (access && table_has_updates(sql->session->tr, t)) 
+                       if (access && table_has_updates(sql->session->tr, t))
                                return sql_message("40000!ALTER TABLE: set READ 
or INSERT ONLY not possible with outstanding updates (wait until updates are 
flushed)\n");
 
                        mvc_access(sql, t, access);
@@ -1841,7 +1841,7 @@ mvc_bind_wrap(Client cntxt, MalBlkPtr mb
                                        throw(SQL,"sql.bind","Cannot access the 
insert column");
                                if (uv == NULL)
                                        throw(SQL,"sql.bind","Cannot access the 
update column");
-                               id = BATproject(b, ui); 
+                               id = BATproject(b, ui);
                                vl = BATproject(b, uv);
                                assert(BATcount(id) == BATcount(vl));
                                bat_destroy(ui);
@@ -1936,7 +1936,7 @@ mvc_bind_idxbat_wrap(Client cntxt, MalBl
                                        throw(SQL,"sql.bindidx","can not access 
index column");
                                if ( uv == NULL)
                                        throw(SQL,"sql.bindidx","can not access 
index column");
-                               id = BATproject(b, ui); 
+                               id = BATproject(b, ui);
                                vl = BATproject(b, uv);
                                assert(BATcount(id) == BATcount(vl));
                                bat_destroy(ui);
@@ -2669,8 +2669,7 @@ mvc_result_set_wrap( Client cntxt, MalBl
                b = BATdescriptor(bid);
                if ( b == NULL)
                        msg= createException(MAL,"sql.resultset","Failed to 
access result column");
-               else
-               if (mvc_result_column(m, tblname, colname, tpename, *digits++, 
*scaledigits++, b))
+               else if (mvc_result_column(m, tblname, colname, tpename, 
*digits++, *scaledigits++, b))
                        msg = createException(SQL, "sql.resultset", 
"mvc_result_column failed");
                if( b)
                        BBPunfix(bid);
@@ -2678,7 +2677,7 @@ mvc_result_set_wrap( Client cntxt, MalBl
        // now sent it to the channel cntxt->fdout
        if (mvc_export_result(cntxt->sqlcontext, cntxt->fdout, res))
                msg = createException(SQL, "sql.resultset", "failed");
-wrapup_result_set:
+  wrapup_result_set:
        if( tbl) BBPunfix(tblId);
        if( atr) BBPunfix(atrId);
        if( tpe) BBPunfix(tpeId);
@@ -2701,10 +2700,10 @@ mvc_export_table_wrap( Client cntxt, Mal
        str filename = *getArgReference_str(stk,pci,1);
        str format = *getArgReference_str(stk,pci,2);
        unsigned char *tsep = NULL, *rsep = NULL, *ssep = NULL, *ns = NULL;
-    unsigned char **T = (unsigned char **) getArgReference_str(stk, pci, 3);
-    unsigned char **R = (unsigned char **) getArgReference_str(stk, pci, 4);
-    unsigned char **S = (unsigned char **) getArgReference_str(stk, pci, 5);
-    unsigned char **N = (unsigned char **) getArgReference_str(stk, pci, 6);
+       unsigned char **T = (unsigned char **) getArgReference_str(stk, pci, 3);
+       unsigned char **R = (unsigned char **) getArgReference_str(stk, pci, 4);
+       unsigned char **S = (unsigned char **) getArgReference_str(stk, pci, 5);
+       unsigned char **N = (unsigned char **) getArgReference_str(stk, pci, 6);
 
        bat tblId= *getArgReference_bat(stk, pci,7);
        bat atrId= *getArgReference_bat(stk, pci,8);
@@ -2741,21 +2740,21 @@ mvc_export_table_wrap( Client cntxt, Mal
                goto wrapup_result_set1;
        }
 
-    l = strlen((char *) (*T));
-    GDKstrFromStr(tsep = GDKmalloc(l + 1), *T, l);
-    l = 0;
-    l = strlen((char *) (*R));
-    GDKstrFromStr(rsep = GDKmalloc(l + 1), *R, l);
-    l = 0;
-    l = strlen((char *) (*S));
-    GDKstrFromStr(ssep = GDKmalloc(l + 1), *S, l);
-    l = 0;
-    l = strlen((char *) (*N));
-    GDKstrFromStr(ns = GDKmalloc(l + 1), *N, l);
-    t->tsep = (char *) tsep;
-    t->rsep = (char *) rsep;
-    t->ssep = (char *) ssep;
-    t->ns = (char *) ns;
+       l = strlen((char *) (*T));
+       GDKstrFromStr(tsep = GDKmalloc(l + 1), *T, l);
+       l = 0;
+       l = strlen((char *) (*R));
+       GDKstrFromStr(rsep = GDKmalloc(l + 1), *R, l);
+       l = 0;
+       l = strlen((char *) (*S));
+       GDKstrFromStr(ssep = GDKmalloc(l + 1), *S, l);
+       l = 0;
+       l = strlen((char *) (*N));
+       GDKstrFromStr(ns = GDKmalloc(l + 1), *N, l);
+       t->tsep = (char *) tsep;
+       t->rsep = (char *) rsep;
+       t->ssep = (char *) ssep;
+       t->ns = (char *) ns;
 
        tbl = BATdescriptor(tblId);
        atr = BATdescriptor(atrId);
@@ -2779,29 +2778,27 @@ mvc_export_table_wrap( Client cntxt, Mal
                b = BATdescriptor(bid);
                if ( b == NULL)
                        msg= createException(MAL,"sql.resultset","Failed to 
access result column");
-               else
-               if (mvc_result_column(m, tblname, colname, tpename, *digits++, 
*scaledigits++, b))
+               else if (mvc_result_column(m, tblname, colname, tpename, 
*digits++, *scaledigits++, b))
                        msg = createException(SQL, "sql.resultset", 
"mvc_result_column failed");
                if( b)
                        BBPunfix(bid);
        }
        // now select the file channel
-    if ( strcmp(filename,"stdout") == 0 )
+       if ( strcmp(filename,"stdout") == 0 )
                s= cntxt->fdout;
-       else
-    if ( (s = open_wastream(filename)) == NULL || mnstr_errnr(s)) {
-        int errnr = mnstr_errnr(s);
-        if (s)
-            mnstr_destroy(s);
-        msg=  createException(IO, "streams.open", "could not open file '%s': 
%s",
-                filename?filename:"stdout", strerror(errnr));
+       else if ( (s = open_wastream(filename)) == NULL || mnstr_errnr(s)) {
+               int errnr = mnstr_errnr(s);
+               if (s)
+                       mnstr_destroy(s);
+               msg=  createException(IO, "streams.open", "could not open file 
'%s': %s",
+                                     filename?filename:"stdout", 
strerror(errnr));
                goto wrapup_result_set1;
-    } 
+       }
        if (mvc_export_result(cntxt->sqlcontext, s, res))
                msg = createException(SQL, "sql.resultset", "failed");
        if( s != cntxt->fdout)
                mnstr_close(s);
-wrapup_result_set1:
+  wrapup_result_set1:
        BBPunfix(order->batCacheid);
        if( tbl) BBPunfix(tblId);
        if( atr) BBPunfix(atrId);
@@ -2867,10 +2864,10 @@ mvc_row_result_wrap( Client cntxt, MalBl
        }
 //     *res_id = t->id;
        //if (*res_id < 0)
-               //msg = createException(SQL, "sql.resultSet", "failed");
+       //msg = createException(SQL, "sql.resultSet", "failed");
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to